先日、「Amazon Web Services(AWS) + WordPress高速化 ハンズオンセミナー in 仙台」に参加してきました。そこで実際にAWSのEC2上にサーバー(インスタンス)を作り、網元を使ってWordPressを立ち上げるところまでやりました。
せっかくの機会だったので、AWS上にブログを移転しドメイン割り当てまで行いましたので、その手順をメモしておきます。
目次
AWS(Amazon Web Services)コンソールにログインする
既にいろいろな方がAWSやアカウント取得方法について書かれているので、割愛します。
Amazon EC2(仮想サーバー)やAmazon S3(クラウドストレージサービス)はAWS 無料利用枠の対象となっていますので、アカウント取得から1年間は(条件はありますが)無料で使用できます。
アカウントの取得やコンソールへのログインはAWSのトップページから行えます。
http://aws.amazon.com/jp/
右上の「AWS Management Console」を選択するとID、パスワードの入力画面を経てコンソールへログインできます。
コーンソールトップはこんな感じです。
黒いバーの部分の「Edit」をクリックすると、バー部分に各サービスへのショートカットを作成できます。
EC2でインスタンスを作成する
コンソールトップからEC2を選択し、EC2のコンソールに入ります。
1. Region(リージョン)選択
始めにコンソール右上の「Region」からRegion(リージョン)を選択します。
選んだリージョンにあるデーターセンターに、サーバーインスタンスを作ることになります。
デフォルトはUS East(N.Virginia)です。自サイトへのアクセスが多い地域から選択してください。(日本からのアクセスが多ければ「Asia Pacific (Tokyo)」)
以下、サーバーを立ち上げるための設定が続きますが、これらは全てリージョン毎に設定をする事になるので始めにリージョンを決めておきましょう。
2. Key Pairの作成
AWSはでは基本的にユーザーIDとパスワードによるサーバーへのログインを許可していません(がんばって設定すればできるらしいですが)。公開鍵と秘密鍵とを使って認証します。
左メニューから「Key Pair」を選択し、「Create Key Pair」で公開鍵を作成します。
「Key Pair Name」は任意の名前を入れてください。「Create」で秘密鍵(.pemファイル)がダウンロードされます。
サーバーにアクセス(SSHやSFTP)する際に必要になるので、ダウンロードした秘密鍵は絶対に公開しないでください。
ローカルマシンがMacやUNIXであれば、秘密鍵のパーミッションを600に変更しておいてください。(Mac OS XならFinder上でもできます)
3. Security Groupsの作成
このままではインスタンス(サーバー)を立ち上げても、外部から見ることができないのでポートを開けてHTTPやSSHでアクセスできるようにしてあげます。
左メニューから「Security Groups」を選択し、「Create Security Group」でセキュリティーグループを作成します。「Name」「Description」は任意のものを入力し、「noVPC」のままOKです。「Yes, Create」でグループが作成されます。
次に作成されたグループを選択し、「Inbound」タブで許可するポート(通信)を選択します。
「Create a new rule」のプルダウンから「HTTP」「SSH」(状況に合わせてSMTPなど)を選択します。「Source」では許可するIPアドレスを入力します。SSHは自宅からのみアクセスする、といった場合はIPアドレスを入力してください。「Add Rule」をクリックすると、右側に許可するポートの一覧が作成されます。
最後に必ず「Apply Rule Change」をクリックして保存します。
4. サーバーインスタンスを立ち上げる
いよいよサーバーインスタンスを作ります。ここで「網元」の登場です。
「網元」はサーバーOSやPHP、データベースなどを最新版のWordPressで構成されており、これを元にサーバーインスタンスを作ることで、あっという間にWordPressのインストールまで完了します。
「網元」はAWSの堀内さん方曰く「WordPressに特化してカリッカリッにチューニングされている」ので、WordPressを運用するのであれば、これを使いましょう。
まずは「網元」のホームページにアクセスします。
http://ja.amimoto-ami.com/
トップにある「超高速 AMI 網元を今すぐ使う!」をクリックします。
すると、AWSのEC2のコンソールに移動し、リージョンも「Asia Pacific (Tokyo)」が選択された状態でインスタンス作成ウィザードが起動しますので「Continue」を押します。(他のリージョンの場合は上記ホームページの「AMI 一覧」よりリージョンを選べます)。
「INSTANCE DETAILS」の「Instance Type」で「Ti Micro(t1.micro)」を選択します(★が付いているのがAWS無料枠の対象となります)。「Number of Instances」は立ち上げるインスタンスの数です。他は写真の通り、デフォルトでOKです。
「Advanced Instance Options」でオプションの設定となりますが、基本的にはデフォルトのままでOKですが、「Termination Protection」にチェックを入れるとサーバーインスタンスを消去できなくなります(事故防止)。
※サーバーインスタンスの停止には一時停止の「stop」と完全に削除する「termination」の2種類があります。
「Storage Device Configuration」で容量を確認します。2012年11月現在10GBの容量がありますが変更する場合はここで行ってください。
次にサーバーインスタンスのタグ付けを行います。「Name」の「Value」に任意の名前を入力してください。
「CREATE KEY PAIR」ではサーバーインスタンスとKey Pairsをプルダウンから選択して紐づけます。
「CONFIGURE FIREWALL」ではサーバーインスタンスとセキュリティグループを選択して紐づけます。
確認画面で「Launch」をクリックすると、サーバーインスタンスが起動します。
数分かかりますが、左メニューの「Instances」でサーバーインスタンスの一覧表示し「Status Checks」が「2/2 checks pass」になれば起動完了です。
ここでサーバーインスタンスを選択すると下部に情報が表示されます。
写真は既にグローバルIPアドレスを割り当てたのでそれが表示されていますが、起動したばかりだと ec2-example.ap-foo-hoge.compute.amazonaws.com というPublic DNS のアドレスが表示されます。このアドレスにブラウザからアクセスすれば、見慣れたWordPressのセットアップ画面が表示されます。
ここまで来ればサーバインスタンスの設定は終わりです。
5. サーバーインスタンスにグローバルIPアドレスを紐付けする
最終的に独自ドメインで運用するのであればグローバルIPアドレスが必要なので、それをサーバーインスタンスに紐付けします。
左メニューから「Elastic IPs」を選択し、「Allocate Address」をクリックします。デフォルトのままで「Yes, Allocate」をクリックするとIPアドレスが付与されます。
一覧から付与されたIPアドレスを選択し「Associate New Address」をクリックして、プルダウンからサーバーインスタンスを選択し「Yes, Associate」で紐付けます。
※Elastic IPsで取得したIPアドレスはサーバーインスタンスに紐付けないと課金されます(月5$)。
ここまででAWSのコンソール上での作業は終わりです。
ここまでの参考サイト
- AWS + 網元で、超高速 WordPress を手に入れよう、そうしよう | 8bitodyssey.com.
WordPressデータの引越まで書いてあります
独自ドメインで運用する
ネームサーバー(DNS)のAレコードにドメインと先ほど取得したIPアドレスを定義します。
言葉で書くと分かりづらいのですが、大抵のドメイン取得業者ではコントロールパネルで設定可能です。
このドメイン(gatespace.jp)はムームードメインで管理しているので、こちらのページを参考に設定しました。
余談ですが、ムームーDNSでの注意点です。
- ムームーDNSではワイルドカードを使えないので、マルチサイトでサブドメイン方式にしたい方など注意です。
- ムームーDNSではTTLをユーザーが変更できません。とはいえ、私がやってみたところ速ければ数分、遅くても数時間程度でAWSの方を見にいきました。
もっとも、ムームードメインのままで他のDNSサービスを使うことも可能です(ムームードメインのプライマリDNSとセカンダリDNSを変えればOK)。
独自ドメインでAWSに作ったサーバー(インスタンス)にアクセスできたら、いよいよWordPressをインストールしてください。
※その後、ネームサーバーをAWSのRoute53に移行しました。
「Amazon Route53 のメモ書き(黒い画面が苦手な人向け)」
網元を使ったWordPressのおすすめプラグイン
網元を使って構築したWordPressサイトにははじめからおすすめのプラグインがインストールされています。
必要に応じて有効化すればいいのですが、「Nginx Cache Controller」は有効化しておいた方が良いです。というのもキャッシュが強力すぎて投稿やコメントがあっても表示が変わって見えないことがあるようです。
プラグインを有効化するとキャッシュの有効時間や自動削除のフックの設定が行えます。
※AWSで網元を使った場合はダッシュボードでの設定のみでOKです。
データの移行
以前のブログはWordPress.comでしたので、ツールの「エクスポート」でxmlファイルを書き出し、AWSに設置したWordPressでインポートしました。
添付ファイルも同時にインポートしたので、現状特に問題はありませんが、内部リンクなどでWordPress.comになっているものがあったり、WordPress.comで使えていたショートコード等が使えなくなったので、これは直す必要があります。
データベースやwp-content等を丸ごと引っ越される場合は、先に紹介した「AWS + 網元で、超高速 WordPress を手に入れよう、そうしよう」を参考にしてみてください。
黒い画面が苦手な方へ
SFTPクライアントソフト(MacであればTransmitなど)があれば、GUIでファイル転送も可能です。ダウンロードした秘密鍵を使います。
サーバー名:IPアドレス または ドメイン名
ユーザー名:網元で作った場合は root
パスワード:Transmitの場合は鍵マークをクリックしてダウンロードした秘密鍵を選択
パス:/var/www/vhosts/{インスタンス名}
ポート:22
接続に成功すると見慣れたファイル一覧が出てきます。
一度セミナーを受け参考ページを見ながら作業しましたが、ブラウザのみで簡単にサーバーを構築、WordPressのインストール完了までおよそ1時間程度でした(独自ドメインの設定は除く)。
AWSではサーバーインスタンスのバックアップや再起動などもコンソール画面から行えるようです。
WordCamp Tokyo 2012以降、日本各地でこういったハンズオンが行われていますし、新規にアカウントを取得すれば (条件にもよりますが)1年間は無料ですので、ぜひお試しください。