2018年を振り返って

データ活用 Advent Calendar 2018で記事を書いています。
テーマがデータ活用ですが、折角なのでデータ活用以外のことも振り返ってみたいと思います。

2018年 主にやったこと

1.サイボウズkintoneを導入した

Excelで出力している帳票など、アナログな業務処理はまだまだ一杯あります。
作業の効率化を図るために何がよいか?と長年考えてようやく導入しました。
しかし、実際にはアレが出来ないコレが出来ないなど、色々と課題も出てきて
思ったより導入が進まず。。

2.Dockerコンテナを本番運用した(Amazon ECS+AuroraMySQL)

社内の様々なインフラを管理するなかで、Infrastructure as Codeの概念を追求していくことでミスを減らしたり、自動化出来たりメリットがあると考えています。(要するにインフラ管理を楽にしたい・・)
その他、ソフトウェア開発のやり方も変えられそうなので、今後さらに利用を深めていこうと思います。

3.会社のシステム部門の組織体制を変える(ための前準備をした)

IT業界の大先輩に及川卓也さんという方がいらっしゃいます。
日本企業の「デジタル化周回遅れ」挽回に必要な人材とは
この記事ではないですが、去年の11月頃に別の及川卓也さんインタビュー記事を
みて衝撃を受けました。
旧態依然でSIerさんにお任せしているような体質から、少しずつでも脱却していく必要があると感じました。
そのため、今年は経営層にもそのことを説明し、来年1月からシステム部門の体制を変えることになりました。
ようやく新たな第一歩を踏み出すことが出来ました。実は、これが今年一番大きな出来事でした^^;

完全にデータ活用のテーマと全然関係ない振り返りになってます(笑)
でも、システム開発、データ分析、何をやるにも主体性をもってリードする人の存在は重要だと思います。
私一人で全てをこなしていくのは不可能ですので、やりたいこと、実現したいことをチームで実現できる場にしていきたいと思います。
 


Windows10ノートPC+iPhoneのUSBテザリングが突然出来なくなった話

事の始まり

外出先などでノートPCをインターネットに接続する時、iPhoneでUSBテザリングをしていましたが、ある日突然USBテザリングで接続できなくなりました。
さて、どうしたものかとWindows Updateなどを試してみますが解決せず・・

Wi-Fi経由でのテザリングは接続できるが、接続速度やiPhoneの電池が急激に減ることなどから、Wi-Fiテザリングはなんか好きになれない。

原因調査

そう思って調べていたところ、以下の記事がヒットしました。

この記事の中にある「iTunesをWindowsPCにインストールしていない」というのに、あ!と気づきました。

厳密に言えば、iTunesはインストールされていたはずだったのです。(USBテザリングにiTunes必須ということは知っていたのです。)
しかし、先日UWP版iTunesが提供されるとの記事をみて、UWP版アプリを導入しました。

UWP版アプリとは

従来のデスクトップ版のWindowsアプリとは異なりマイクロソフトの審査を通ったアプリのみがWindowsストアからインストール出来るアプリです。
アプリの更新を自動的に行なってくれることなどのメリットがあります。

で、それがどのように影響したかというとUWP版iTunesを導入した場合は、デスクトップ版iTunesはアンインストールされるとのこと。
その影響で接続できなくなったのだなと納得できました。

解決方法は?

どのように解決したかというと、UWP版iTunesを立ち上げてみただけ。
私の場合は、それだけで治りました。

デバイスマネージャーに、多分これまで表示されていなかった「Apple Mobile Device USB Compatible Device」というのが表示されました。
Device_Manager

Router

【注意】バッファロー製ルータに搭載の「NortonConnectSafe」終了に伴い設定OFFが必要

バッファロー製ルータに搭載されているWebフィルタリング機能「NortonConnectSafe」がサービス終了します。
それに伴い、2018年11月12日までに「NortonConnectSafe」をOFFにしないとインターネットに接続出来なくなるとのことです。

バッファロー製ルータは、コスパがよく多くの家庭で使用されているものと思います。
たまたまバッファローのサイトをみたらお知らせが出ていたので気付きましたが、気づかず設定変更しないままインターネットがつながらなくなる・・という人も多いのではないでしょうか。
バッファローさんには、多くの手段でユーザーに対して周知を行ってほしいと思います。(ただ、購入・セットアップした時に連絡先等を登録した記憶がありませんが・・)

この記事で気付いて、設定OFFにしたという人がいれば幸いです。

Google App Engineのサーバ証明書更新が自動化された。(もちろん無料)

以前の記事でLet’s Encryptを使った無料のSSLサーバ証明書更新の方法を記事にしました。

しかしLet’s Encryptは有効期限が3ヶ月の上、Google App EngineではCronでの自動更新も出来なかったため、かなり手間でした。

現時点ではベータ版ながら、Googleがサーバ証明書を管理、自動更新してくれる機能が発表されました。

コマンドを使った更新方法や、他社のサーバ証明書をアップロードする方法などの記載もありますが、管理コンソールからGoogleの管理を有効にする方法がオススメです。

・「設定」⇒「カスタムドメイン」タブを選択します。
証明書更新画面

・対象ドメインにチェックを付けて、「マネージドセキュリティを有効にする」ボタンを押します。
証明書更新画面
※新規にドメインを設定する場合は、「カスタムドメインを追加」よりドメインを登録してください。
 また、新規のドメイン取得は以下URLより。
【早い者勝ち!】 .com/.net/.jp ドメイン取るならお名前.com

・確認画面が表示されるため、OKを押す。
証明書更新確認画面

・暫く待つとサーバ証明書が更新されます。
更新後の証明書

以上の作業でとても簡単です。
とても簡単な上に、有効期限が近くなるとGoogleが勝手に更新してくれるらしいです。

サーバ証明書は、ドメインが増えてくると地味に更新が手間になります。
このように作業を自動化してくれるサービスは、とても助かりますね。

logo_GoogleDrive

Google Driveを社内のファイルサーバとして活用できる日はくるか?

Google社が提供している法人向けのサービス「G Suite」が急激に進化しています。

「Team Drives」の発表

2016年9月には、複数のユーザーが共有ドライブとして使える「Team Drives」が発表されていた。
今年のGoogle Cloud Next 2017で正式発表された。
これまでもGoogle Driveでファイルの共有はできたが、「Team Drives」では共有設定しなくてもデフォルトで組織内で共有できる。
ファイルがチームに所属するため、退職者が出てもファイルが消えたり、引き継ぐ必要もない。
但し、現時点で使用できるエディションは「G Suite Business」「G Suite for Education」「G Suite Enterprise」であるため、「G Suite Basic」では使用できない(泣)
Team Drivesについては「2018 年1月1日以降は、すべての G Suite ユーザーに対してチームドライブの作成が自動的に有効になる予定」との記載がありました。
これが、「G Suite Basic」でも使えるようになることを意味するかわかりませんが、期待しています!

ローカル上にダウンロードや同期が不要な「Drive File Stream」の発表

ファイルをストリーミングとして利用できる機能であり、ローカル上にダウンロードしなくてもファイル編集が可能。
Dropboxでは「Smart Sync」という名称で同様のサービスがある。
これまた現時点で使用できるエディションは「G Suite Business」「G Suite for Education」「G Suite Enterprise」であり、「G Suite Basic」では使用できない(泣)

今後どうなっていくか?

企業内にあるファイルサーバ(共有フォルダ)をクラウドに移行できないか?という試みは色々とありましたが、大抵が失敗に終わっています。
なんだかんだCIFSによるファイル共有の使い勝手やActive Directoryによる管理のしやすさに勝てるサービスが無く、未だ社内にファイルサーバを構築している or IaasでWindowsServerを構築し、ファイルサーバ化している企業が多いのではないかと思います。
Googleは、ご存知の通りGmailやGoogleカレンダーを中心としたG Suiteで利用企業数は300万社を超えていると言われている。
これに、ファイルサーバもセットになれば、かなり強力なビジネスツールになると思う。
ライバルのOffice 365やDropbox、BOXなどに、差をつけられるか今後が楽しみです。

Let's Encryptロゴ

Google App Engine(独自ドメイン運用)にSSL/TLS証明書「Let’s Encrypt」を導入する。

Let’s Encryptとは

無料で利用できるSSL/TLS証明書です。
サイトのhttps化は、もう既に必須と言っても過言ではありません。
しかし、https化にはSSL/TLS証明書が必要であり、Symantecなどが販売している従来のSSL/TLS証明書は高価なものです。
当サイトのような個人が運営するサイトで導入するには、かなりハードルの高いものでした。
そこで最低限必要な機能のみに絞ったSSL/TLS証明書が出てきました。
Let’s Encryptは、電子フロンティア財団(EFF)が中心となった電子証明書無料配布プロジェクトです。

Let’s Encryptで出来ること、出来ないこと

SSL/TLSサーバ証明書には「ドメイン認証」「企業実在認証」「Extended Validation(EV)」の3種類が存在します。
Let’s Encryptは「ドメイン認証」の証明書です。
証明書を発行する際に、サイト内へチャレンジコードを設置する必要があるため、ドメインを所有している人しか証明書を取得できません。
その為、Let’s Encryptを利用することにより、サイト運営者がドメインを所有していることが証明されることになります。

「企業実在認証」や「Extended Validation(EV)」は、電話での所在確認や必要書類の提出など、厳格な審査が行われるため企業の物理的な存在が証明されます。

その他、サイト内にシールを表示する必要がある場合は、有料のSSL/TLS証明書を取得する必要があります。
また、Let’s Encryptの有効期限は90日であるため、有料のSSL/TLS証明書に比べて有効期限が短いです。
通常のLinuxサーバなどでしたら、Cronを利用し自動更新する設定が可能です。
※2017年1月現在、Google App Engineでは都度の手動更新が必要です。

詳細は、グローバルサイン社のブログをご参照ください。
SSL/TLS証明書無料化は進むか? ~Let’s Encryptに見る無料SSL/TLS証明書の台頭とその注意点~

Let’s Encryptの導入方法

こちらのブログを参考にさせて頂きました。
GAEでSSLの設定(Let’s Encrypt の導入備忘録)

個人的な備忘録として以下に纏めました。
1.Cloud Shwllを起動し、チャレンジ・レスポンス確認モードでコマンドを実行する。

cd certbot
sudo ./certbot-auto -a manual certonly

2.証明書を発行するFQDNを入力する。

3.メッセージが表示されるが、まだEnterは押さない。

4.チャレンジコードを含むURLとレスポンスコードが表示されるため、以下のURLにファイルを置く。(GAEではapp.yamlを使って設定する。)
http://独自ドメイン/.well-known/acme-challenge/チャレンジコード

※app.yamlでの設定方法
・app.yamlに以下を記述する。

- url: /.well-known/acme-challenge/?(.{5}).*
  static_files: static/letsencrypt/\1.txt
  upload: static/letsencrypt/(.+)
  mime_type: text/plain

・static/letsencrypt/にチャレンジコードの頭五桁をファイル名としたテキストファイルを設置する。

・テキストファイル内にレスポンスコードを記載する。

5.先程のメッセージ表示を確認の上、Enterキーを押す。

6.以下のディレクトリに公開鍵証明書が作成されているため確認する。
/etc/letsencrypt/archive/hiromeru.net/fullchain.pem

7.確認したキーの内容をCloud Consoleの「設定」→「SSL証明書」→「新しい証明書をアップロード」に貼り付ける。

8.以下のディレクトリにRSA秘密鍵が作成されているため、以下のコマンドで内容を確認する。

sudo openssl rsa -inform pem -in /etc/letsencrypt/archive/独自ドメイン/privkey.pem -outform pem | less

9.上記7で表示しているアップロード画面に貼り付ける。

10.アップロードしたSSL証明書のリンクをクリックし「次のカスタム ドメインに対して SSL を有効にします」の項目で設定したいドメインにチェックを入れて、保存ボタンを押します。

Google Cloud Platformが東京に上陸?GAEでAsiaリージョンが選択可能に!

2016年10月31日時点で発表はありませんが、ほぼ間違いないようです。
Google Cloud Platformが東京に上陸しました。

GoogleCloud・東京に上陸??
GoogleCloud・東京に上陸??

そしてGoogle Cloud Platformのサービスのうち、GAE(Google App Engine)も「ASIA-NORTHEAST」が選択可能になっています。
適当にデプロイしてみたところ、問題なく稼働しました!

パフォーマンスの詳細は以下のブログが参考になります。

Google Cloud Platformに東京リージョンが追加されたようです
http://dev.classmethod.jp/cloud/google-cloud-platform-tokyo/

さぁ、これでGCPが日本で活躍する土俵が出来ました。
今後どのように広まるのか楽しみです。

ほぼ無料で稼働できるGoogle App Engineを試しています。

Google Cloud Platform(GCP)の一員となったGoogle App Engine(GAE)を試しています。
ようやくこのブログもGAEに移行しました。

https://cloud.google.com/appengine/?hl=ja&utm_source=google&utm_medium=cpc&utm_campaign=2015-q1-cloud-japac-jp-gae-bkws-freetrial-jap&utm_term=google%20app%20engine&gclid=CjwKEAjw1qHABRDU9qaXs4rtiS0SJADNzJis7aewDfgq7kpxhCCTGaCJSeHlIlCLsAJgZ0iVTAfnkhoC2dDw_wcB

App Engine  |  Google Cloud Platform

■GAEに移行した経緯

元々、このブログはさくらVPSで動いていました。
しかし、IOPS規制(ハードディスクへのアクセス規制)に頻繁に引っかかり、サーバがハングすることが多発しました。
移転先を考えたときに以下の記事を見つけました。

Google App Engineを無料で運用する方法(2016年版)

GAEは、今のところアジアにリージョンがなく「us-central」が最も近いロケーションとなり、レイテンシーが気になりましたが、この弱小サイトが遅くても誰も困らないということもあり、、ほぼ無料で使えるならば移行しない手はないということで即実行しました。

結局、Wordpressを稼働させるデータベースが必要なためGoogle Cloud SQLというサービスの契約が必要で、完全無料とはいきませんが、最小でひと月あたり千円ぐらいで運用が可能です。
GCPはあのPokemon GOも動いているらしいです。

■移行作業

とてつもなく大変でした。。
普通のLinuxサーバにデプロイするのとはわけが違いました。。

このへんは、また機会があれば詳細を書きたいと思います。
とりあえず、WordPressを動かすための手順をGoogleが公開していますので参考にしてみてください。
GoogleCloudPlatform/appengine-php-wordpress-starter-project · GitHub

■今後について

このGoogle Cloud Platform(GCP)ですが、2016年度中に東京リージョンが出来るとのことです。
Google Cloud Platform adds two new regions, 10 more to come
AmazonのAWSや、MicrosoftのAzureに押され気味のGoogleですが、2017年にかけて10以上の新リージョンを追加するとのこと。
AWSを抜くのは無理にしても、Azureぐらい超えてほしいですね。
何しろ、日本語の情報が少なすぎる・・利用者が増えて日本語の情報が増えてほしいです。

格安Simを検討してるなら「Y!mobile」がおすすめ!

ワイモバイル

携帯大手3キャリア(Docomo,au、SoftBank)を利用しているが、料金が高いから乗り換えたい・・と考えられている方は多いのではないかと思います。
しかし、得体の知れない格安Simは不安にも思います。

そんな中間的な存在といえるのがソフトバンクグループの「Y!mobile(ワイモバイル)」ではないかと思います。

■Y!mobile(ワイモバイル)とは

ソフトバンク株式会社が展開しているMVNOサービス。
ソフトバンク株式会社は、従来の「SoftBank」ブランドと併存してサービス提供しています。

■MVNOとは

他社のインフラを借りて音声通信やデータ通信のサービスを提供する事業者のことを指しますが、Y!mobileは、SoftBankの回線を利用しサービスを提供しています。

■Y!mobile(ワイモバイル)の良い点

・料金プランが安く、かつわかりやすい。(スマホプランS/M/Lなど)

私が携帯大手3キャリアをやめたかった最も大きな理由としては、コスト面でした。
ライフスタイルで携帯はそれほど使わないため、高額な料金を支払うのに不満がありました。
Y!mobileは、スマホプランSが月額2,980円~スマホプランLが月額5,980円と大手携帯キャリアより安い料金体系となっています。
また、基本使用料にパケット定額や通話無料サービス(10分以内の国内通話が月300回まで)を含めたパック料金となっていますので、料金体系が非常にわかりやすくなっています。

・携帯大手3キャリアの電波と変わらない。

前述のとおり、SoftBankの回線を利用していることから、実際に使ってみても繋がりにくいなどの実感はありません。
(埼玉在住のため、主に埼玉県内と東京都内で使用した感想です。)

・キャリアメール(携帯アドレス)もある。

「@yahoo.ne.jp」というメールアドレスが与えられます。
LINEやFacebookメッセージなどの普及により、携帯アドレスを使用する機会も少なくなりましたが、友達にガラケーユーザーがいる、古い友人などでLINEアカウントなどを知らないなどのケースもありますので、全く無いというのは、まだ困る気がします。
また、私の場合は仕事の関係により、携帯アドレスへの緊急通知もありますため、これは必須でした。

・緊急速報メールもある。(対応機種に限る)

気象庁が配信する「緊急地震速報」「津波警報」「特別警報」、国や地方公共団体が配信する「災害・避難情報」を受信できるものです。
普段は気になりませんが、イザという時には無いと不安です。
対応機種出ない場合は、Yahoo!が提供している「防災速報アプリ」をインストールする手段があります。

・格安Simを展開している他MVNOサービスに比べ、良い機種が選べる。

楽○モバイルや、I○J mioなど通信サービスとあわせてSIMフリースマホを提供していますが、どれも機種が微妙に感じます。
Y!mobileは、SIMフリースマホではありませんが、例えばappleのiPhone 5sや、GoogleのNexus5Xなど比較的最新で高機能な機種が選べます。
(2016年3月現在。機種の良し悪しは個人的な感想です。)

■Y!mobile(ワイモバイル)の微妙な点

・ソフトバンクWi-Fiスポットがつながらない。

あまり期待はしてませんでしたが、案の定つながりませんでした。
ソフトバンクが提供しているWi-Fiスポットですが、オプション等の契約はなく利用できます。
しかし、利用ユーザー数が多いためか殆どつながりません。auは知りませんが、昔利用していた「docomo Wi-Fi」も全くつながりませんでしたので期待はしてませんでしたが、プランS(月額2,980円)で契約して、外出先ではソフトバンクWi-Fiスポットを利用しよう!と考えられている方は考えなおしたほうがよいかもしれません。

色々と考えてみましたが、悪い点は上記1点のみでした。

■申込方法

以下のURLからシンプルな手続きで申込みできます。
Y!mobileオンラインストア

店頭で順番を待つ必要もありませんので、オンラインストアでの申し込みが便利です。
また、免許証などの本人確認書類が必要になりますが、スマートフォンやデジカメ等で撮影しアップロードするだけなので郵送する必要がありません。(FAXでも受付可能なようです。)
他社からのりかえ(MNP)でも、商品が届いた3日後に切替となるため、使用出来ない時間帯が発生することはありません。

但し、ソフトバンクモバイルからの番号移行などオンラインストアで申し込みできない場合もあるようですので、詳細は「ご利用ガイド」をご確認ください。
Y!mobileご利用ガイド

・Y!mobileでiphone 5sを購入するなら

・端末代金を抑えたいなら「アウトレット」

・Googleの携帯も

それでは、良いMVNOライフを!

WebサイトにSSLサーバ証明書を導入する(CentOS6編)

■SSL導入について
CMSツールの発展などにより、個人でも簡単にコミュニケーションが可能なホームページを公開できるようになりました。
そういったサイトの運営者はSSL導入を検討する必要があります。

SSLとは、Secure Socket Layerの略でサーバ⇔クライアントPC間での個人情報やクレジットカード情報といった機密性の高い情報を安全にやり取りできます。 SSLを導入することにより、「なりすまし」「改ざん」「盗聴」などを防ぐことができます。

■SSLサーバ証明書とは?
例えば、ショッピングカートでクレジットカード情報を入力するようなページがあった場合、見た目は同じでも似たようなURLで偽装されたページである可能性もあります。
そういった偽サイトにクレジットカード情報を入力してしまうと、悪者はカード情報を盗んでしまいます。
SSLサーバ証明書は、ウェブサイトの所有者を明らかにすることで、そういった偽サイトではないこと、また、通信が暗号化されていることも証明します。
そういった証明により、Webサイトの信頼性を向上することにもつながり、個人のサイト運営者でも導入が広まりつつあります。

■SSLの導入は、SEO対策にも効果的?
以下の記事にもある通り、Googleはランキングアルゴリズム(検索順位決定のアルゴリズム)に組み込むことを発表しています。

Google、SSL/HTTPSをランキングアルゴリズムに採用することを決定

Google、SSL/HTTPSをランキングアルゴリズムに採用することを決定

但し、上記記事内にもありますが検索順位を決定する要因はかなり沢山あると言われており、現時点でSSLの導入しているかはそれほど影響力は無いようです。
しかし、アルゴリズムは常に変化しており、今後影響力が強くなる可能性もあります。(少なくとも、SSL化でマイナスになることは無いものと思われます。)
今後影響力が強くなるのが遠い将来なのか、近い将来なのかは誰もわかりませんが、SSL導入の必要性は高まっています。

■どうやって設定する?
まずはSSLサーバ証明書を購入しましょう。(サイトの構築は完了している前提とさせていただきます。)

格安SSL証明書サービス、SSLボックス

色々種類がありますが、機能的にはEV証明(ブラウザのURL表示部分が緑色のヤツ)やドメイン認証、携帯に対応しているかなどによって値段が変わります。
法人で信頼性を必要とするサイトであれば、サイバートラストやシマンテック(旧ベリサイン)のEV対応の証明書をおススメします。
個人であればラピッドSSLやジオトラストで十分でしょう。

■導入手順

以下のサイトを参考にさせて頂きました。
さくらのVPS(CentOS 5.5)に RapidSSL をインストールするまでのメモ

1.mod_sslをインストールする。

# yum install mod_ssl

2.「/etc/pki/tls/certs/」ディレクトリへ移動し、RSA秘密鍵を生成する。


# cd /etc/pki/tls/certs/
# openssl genrsa -des3 -out server.key 2048
...........................................+++
...+++
e is 65537 (0x10001)
Enter pass phrase for server.key: (←パスフレーズを入力)
Verifying - Enter pass phrase for server.key: (←パスフレーズを再入力)

3.秘密鍵からCSRを生成する。

# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key: (←パスフレーズを入力)

<中略>

-----
Country Name (2 letter code) [GB]:JP (←国名を入力)
State or Province Name (full name) [Berkshire]:Aichi (←都道府県を入力)
Locality Name (eg, city) [Newbury]:Nagoya (←市区町村を入力)
Organization Name (eg, company) [My Company Ltd]:Company Name (←会社、団体名を入力)
Organizational Unit Name (eg, section) []: (←空エンター)
Common Name (eg, your name or your server's hostname) []:www.example.com (←ドメイン名を入力)
Email Address []:webmaster@example.com (←メールアドレスを入力)
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: (←空エンター)
An optional company name []: (←空エンター)

4.CSRの内容を確認する。

# cat server.csr

5.CSRの内容をサーバ証明書発行会社のサイトへ入力する。

6.メールアドレスの認証を経て、SSLサーバー証明書がメールで送られてきます。

7.メールで送られてきたSSLサーバ証明書をサーバに反映する。

# vi server.crt

8.パスフレーズを削除する。

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: (←パスフレーズを入力)
writing RSA key

9.SSL.confを編集する。

# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
DocumentRoot "/var/www/html"
ServerName www.example.com:443

10.Apacheを再起動する。

# /etc/rc.d/init.d/httpd restart

11.「中間証明書」を作成する。

# vi /etc/pki/tls/certs/rapidssl-chain.crt
-----BEGIN CERTIFICATE-----
(英数字の羅列)
-----END CERTIFICATE-----

12.ssl.confを編集する。

# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateChainFile /etc/pki/tls/certs/rapidssl-chain.crt

13.Apacheを再起動する。

# /etc/rc.d/init.d/httpd restart

以上です。

サーバ証明書を導入して、サイトの信頼性を向上させましょう!
サイトの信頼性が向上することで、申し込み率のUPやお問い合わせ件数の増加など、コンバージョン率の改善につながるかもしれません。