AWSのVPS、LightsailでWordpressを動かしてみた

AWSでついにVPSサービスLightsailがリリースされました。
いままではAWSで同等のことをしようとすると、EC2インスタンスを用いてセットアップする必要がありましたが、料金体系などを含めやや複雑となっていました。
今回のサービスでは、SSDディスク容量、メモリ、CPU、月間一定量の転送料+グローバルIPを込み込みのパッケージの仮想マシン環境として提供され、最低月額約570円(1時間単位だと約0.8円)からと、これまでのEC2に比べると格安で手軽に利用できるようになっています。




早速、用意されているテンプレートを利用してWordpress環境を作ってみました。

Visual Studio for mac登場

先日まさかの告知と、昨晩(11月17日未明)の Connect();//2016 で正式発表された Visual Studio for macが登場しました。(現在はまだプレビュー版)

あのVisual StudioがついにmacOSにも…!Microsoftが本当にノリノリ!と話題になっていました。
かつては自分もWindows環境を利用していた際にはVSを利用していたので、あのIDEの使いやすさ、素晴らしさはある程度知っているつもりです。
(業務用ではなく趣味レベルでの開発だったので、使いこなすほどでは無かったけど)

それが、macOSでも利用できるようになる…!
という訳ではなく、Windows版の移植ではなくXamarinベースのmac版用Visual Studioという感じでした。
実際にUIをみてみると、あぁ確かにXamarinっぽい。という印象を受けます。


Amazon Cloud Driveデスクトップアプリで日本語環境からAmazon.comアカウントでログインする

Amazon Cloud Driveのクライアントアプリを起動すると、現在利用しているOSの地域言語設定に基づき、その地域や言語向けのAmazonにログインするようになります。
こうなると、アメリカで生活しながら日本語環境を使用している場合、普段はAmazon.comを利用していてもAmazon.co.jpへログインするダイアログ表示となってしまって、Amazon.comのアカウントへはログインできません。
また、私のように日本にいながら、Amazon.comで先駆けてスタートしていた「Unlimited Storageプラン(無制限プラン)」に登録していた場合、Amazon.comのサービスにログインすることができなくなります。

この問題を回避する方法を紹介します。

iPhone7はApple Payでゲーム系ICカードとしても使えるか?

先日発売されたiPhone7をはじめiPhone6以降の機種で、日本でもようやく、Apple Payが使えるようになりました。
iPhone7は長年ユーザーが待ち望んできた防水対応もさることながら、日本向けiPhone7/7 Plusでは、NFCだけでなくFeliCaを搭載し、Apple PayではJR東日本のモバイルSuicaやEdyが使える、というのが今回の注目にもなりました。
Apple Payが始まることで、こちらも日本のユーザーが待ち望んでいたモバイルSuicaをはじめとする、国内の様々な場所で使われている非接触IC系サービスの恩恵を受けられるようになります。


Pay

ということは、非接触系ICカードを利用している場所の一つである、ゲームセンター。ここにある数々のゲーム筐体、最近では非接触ICカードリーダーが備え付けられていて、独自の電子マネー機能を持ち合わせたり、カード情報を読み取ってプレイヤーのプレイデータを読み込むのに使用されたりしています。これらは果たしてiPhone7でも使えるのか…。

検証


まず、現在国内で主流の非接触IC系ゲームプレイカード(以下、プレイカード)は下記の種類があります。

※これ以外にもあるかもしれませんが、自分が主に音ゲーを好んでやるため、音ゲー機種が出ているサービスのみを対象にしています。

これらのサービスに対応する機種でiPhone7のApple Payが使えるか検証してみます。

意外と知られていない?1つのGmailアカウントで複数メールアドレスを使用する方法

Gmailはもう皆さんご存じの通り、フリーでありがなら高性能に使えるフリーメールですが、ひとつのアカウントで複数のメールアドレスのパターンが使えるのはあまり知られていないかも知れません。

他のウェブサービスを利用する際に、複数アカウント作りたい!だけどメールアドレスを増やすのは管理が面倒…。という人には向いているかもしれません。

そこで、そんなGmailの変わった使い方、下記の三点を紹介します。
  1. +記号に任意の文字列を付けたアドレス
  2. .(ピリオド)記号を付け加える
  3. @gmail.com を @googlemail.com に変える

iPhoneの通信をパケットキャプチャで傍受する

既に同様の話題は他のブログで既出ですがメモとして。

パケットキャプチャは定番のWireSharkを使います。
また、クライアントはMacを想定しています。Windowsの場合は別途代替方法が必要になります。

まず、iPhoneをUSB LightningケーブルでPCと接続します。

次に、iPhoneのUUIDを調べます。
Xcodeを使用する場合

Xcodeを起動 → Window → Devices でDevicesウィンドウを表示。左側のリストから接続されているiPhoneデバイスを選択します。
Device Information内のIdentifierの値をクリックして選択でコピー。



Xcodeを使用しない場合
iTunesでも同様の情報を表示できます。
iTunesを起動 → 接続デバイス画面で端末を選択し、概要画面を表示します。
ここで、「シリアル番号」と記載されている部分をクリックすると表示が変わり、UUIDが表示されます。
この状態で右クリックすると、コンテキストメニューで「コピー」と表示されるのでそれをクリックすると、値がクリップボードにコピーされます。


で、UUIDをコピーしたら適当なターミナルを起動して、下記のコマンドを実行します。

rvictl -s <UUID>

<UUID>の部分にはさっきコピーしたUUIDを貼り付けます。

実行して「Starting device xxxxxxxxxxx [SUCCEEDED]」と表示されればOKです。


続いて、WireSharkを起動します。



メニューの Capture から、 Interfaces を選択します。または、ショートカットでControl+Iでも良いです。


続いて表示されるダイアログから、「rvi0」というインターフェースを選び、チェックを付け、Startボタンをクリックするとキャプチャが開始されます。



あとはキャプチャ中はiPhoneを操作しながらキャプチャ結果を確認していきます。
HTTP通信について見たい場合は、Filterに「http」と入力し、「Apply」ボタンを押すことでより見やすくなります。

ほどほどにキャプチャ出来たら、赤い四角の停止ボタンを押してキャプチャを終了します。

最後に、下記のコマンドを実行して、先ほど作ったiPhoneとの接続インタフェースを停止します。

rvictl -X <UUI>

<UUID>の部分には先ほどのUUIDを貼り付けます。

実行して「Stopping device xxxxxxxxxxx [SUCCEEDED] with interface rvi0」と表示されれば切断完了です。



このような簡単な手順で、iPhoneの通信内容の傍受は簡単に行えます。
なので、iPhoneアプリを作る際は、設計の際に通信内容は傍受されても困らない形で設計する必要があります。

サイトをHTTP/2に対応させました

もっと早い段階で進めたかったのですが、前段階のSSLの設定とnginxのコンパイルをミスり続けていてなかなか実現出来ていませんでした。

nginxがHTTP2対応し出したため、早速対応させつつ、昨今のSSL関連セキュリティ事情の設定を見直し、SSLv3の対応を切ったり、暗号化スイートの設定を最適化させたりといったことを行っていたところ、なかなかどうして上手く動いてくれない状態が続いてしまっていました。

で、ようやく動いたこともあってメモ代わりにと。


現在、このブログをはじめ、anoncom.netドメインやその他いくつかの開発・管理サイトは1台の同一VPS環境上で稼働させており、全てnginxで稼働しています。

そのため、全てのドメイン上でそれぞれSSL関連の記述を書くと、それぞれでまた長くなるため、共通化出来るものについては1つにまとめ、includeで読み込むようにしています。
必要があればその時はincludeせずそれぞれのサイトで個別に記述すればいいし。

そんなわけで、各サイトは基本的に下記の様に設定しています。設定は全てnginx用です。


また、SSLで共通化出来る部分については ssl_common.conf という感じのファイルに記述し、これを各サイトの server{~}内で includeさせています。


ここまでの設定の通り、HTTP2対応するにも、SSL(というかTLS)が必要で、そうなると必然的にSSL証明書の準備をしなければなりません。
メインドメインの anoncom.net については先日キャンペーンを行っていたさくらのSSLでRapidSSLを購入して設定しました。
その他のドメインについては、無料で1年間使えるで有名なStartSSLや、以前に最大3年間、100ドメイン分無料で取得出来ると紹介されていた WoSign Free SSLを使ったりをしていました。
またつい最近ではLet's Encryptもようやくはじまり、一部(というか上記で取得しなかった残り分)はそちらを使ったりとして、何だかんだほとんどのページをHTTP2に対応させました。

それぞれの作成方法や設定方法などは既に他のブログなどで紹介されてるのでここでは割愛。

とまぁそんな感じでようやくにしてサイトをHTTP2に対応させることが出来ました。

Google Appsドメインでメール設定を自動化する

どうも、自分でも自分のブログの存在を忘れていたようなブログです。

最近のメーラーはメールアドレス(≒アカウント名)とパスワードを入れるだけで、メールサーバの設定は内部で自動で行ってくれたりするようになったりもしてるのですが、あれの設定どうやるんだろうって去年くらいに調べてました。

もっとも、Google Appsなんかの場合は最近の製品の場合、アカウント設定時にGmailアカウントとして選択することでそのまま設定出来たりするので必要なかったりもするのですが……。
もちろんこれはGoogle Appsなどの製品以外でもこれは応用出来るので、自前のサーバーで他者にアカウント提供する場合でも便利になります。


さて本題ですが、これを実現するには Autodiscover というMicrosoftがMicrosoft Exchangeで実現するために作った規格を使うみたいです。
https://technet.microsoft.com/ja-jp/library/bb124251(v=exchg.150).aspx


設定についてはとても簡単で、HTTPS接続出来る場所に、XMLで記述された設定ファイルを特定のパスに配置するだけです。

設置する設定ファイルは下記のように記述します。

Google Appsを使っている場合はこれをコピーして autodiscover.xml という名前で保存すればOKです。

このファイルを、メールで利用するドメイン名を利用したURLに設置する必要があります。
例えば、 your-name@mail.example.net というアカウントのメールを発行するのであれば、 https://mail.example.net/autodiscover/autodiscover.xml というURLでアクセス出来るようにする必要があります。
もしくは、 https://autodiscover.mail.example.net/autodiscover/autodiscover.xml というように、autodiscover. というサブドメインを設定し、その下に配置すると言うことも可能です。

後者については、例えば your-name@example.com というメールアドレスを利用していて、 https://example.com はサービス用URLであり、ドキュメントルート以降のパスは全てサービスURLとして自由に生成可能な状態としていた場合、 https://example.com/autodiscover というネーム空間を汚染してしまうため、そのような状態を回避することができるようになります。


既に例に挙げているとおり、これらの設定には基本的にはhttpsでアクセス出来るようにする必要がありますので、各自でメールドメイン毎にSSL証明書を用意する必要があります。
(SSL環境をどうしても用意出来ない場合は http://autodiscover.<メールドメイン>/autodiscover/autodiscover.xml のURLでも可能なようです)

StartSSLで1年間無償で使えるSSL証明書を取得するのもいいですし、DNSにCloud Flareを使っている場合、HTTPリクエスト時にCloud Flareを通過する設定にしていればSSL機能を無償で提供してくれますので、それで代替も出来ます。

また、最近はLet's EncryptプロジェクトでSSL証明書を無償で発行することも可能ですので、それらを利用してみるのもいいでしょう。


今回はGoogle Appsの設定をするものとして記述しましたが、冒頭でも触れていたとおり、autodiscoverは自前のサーバ設定にも有効です。 autodiscover.xml の<Protocol>内の各項目をそれぞれの環境に添った設定にしておけば
それが反映されます。


また、DNSのSRVレコードを設定出来る環境の場合、ゾーンファイルに下記の様にSRVレコードを設定することで、その設定を検出させることも可能なようです。

_imap._tcp 300 IN SRV 0   1 993 imap.gmail.com.
_pop._tcp 300 IN SRV 0   1 995 pop.gmail.com.
_smtp._tcp 300 IN SRV 0   1 465 smtp.gmail.com.
;;_autodiscover._tcp 300 IN SRV 0   0 443 autodiscover.example.com.

最近作ったアプリの話

先日、コナミ社の提供している コナステ のダウンロードコンテンツゲームを1クリックで起動できるアプリを作り、公開した。 Ks Game Launcher  ( Github ) 作った理由として、インストール時に作成されたショートカットをクリックするとブラウザが起動し、ログインし...