急遽サーバを移転することになりました、AWSのS3に移転することで低コストで堅牢なWebサーバの運用が可能になりました。
サーバ不調、移転やむなし!
オフィス内にMac OS X Lion Serverを配備しWebサーバとして運用していたが、急にサーバダウン(Mac OS X のServer App)を繰り返すようになり移転することにした。 作業時間は約1時間、ドメイン情報が行き渡り移転完了までに24時間で完了した。Amazon S3へ移転可能かどうかを判断するポイントは3つ:
HPデータ構造
静的HTMLか否か
DNS
DNSをAmazon Route53へ移転可能か
費用
Amazon Route53を運用すると月々の運営費用が発生する
静的HTMLか否か
DNS
DNSをAmazon Route53へ移転可能か
費用
Amazon Route53を運用すると月々の運営費用が発生する
Amazon S3へ移転時のポイント
1.ホームページデータの構造
Amazon AWSへ移行するにあたりWebサイトの構造がどのように作られているかを考える必要がある。
例えば、WordPressで作られている場合、Amazon EC2+RDSを設定することになる。
今回のケースではBiND+Liveというアプリケーションでつくられていたため、静的HTML構成となるためAmazon S3へ容易に移転可能だ。
2.ドメイン名の取得と管理状態
次にドメイン名をどのように取得したかということを確認する。 レジストラとDNSをどこで運用しているか確認する。
ドメイン名の登録情報に関しては頻繁にアクセスすることがない場合、レジストラのIDやパスワードを忘れてしまったということがおこりえる。
Amazon S3でデフォルトドメイン(ここの場合、sumisada.comがデフォルトドメイン)を使うかどうかにもよるが、デフォルトドメインを使う場合にはDNSにAmazon Route53が必要だ。
3.運用の費用
Amazon S3 + Route53で運用する場合、すくなともドメイン1つにつき0.5ドル、S3のストレージ費用、転送料が運営費用として必要となる。 小規模のサイトで月額1000円程度からスタートと考えて奥とよいだろう。
移転方法の確認
Webサービスだけであれば非常に簡単だが、DNSを移転する場合にはメール等の情報も移転する必要があるためレコードを確認する。
Office365やMicrosoft Live、Google Apps for Businessなどを使ってメールサーバを運用しているような場合には、TXT、MX、SRV等のレコード情報も合わせて移転が必要となる。
その場合、メール等のサービスが切れないように移転を計画必要だ。
気をつけたい事は、DNSを移転した場合最大で72時間程ドメイン情報が行き渡るまでの時間がかかると想定しておくとよい。
メール/ウェブサービスの転送ステップ
- メールサービスの移転
- Amazon Route53にゾーン情報を作成
- メールサービスの情報(TXT,MX,SRV)を読み込むかコピペ
- レジストラのDNS情報を更新(アップデートが遅いことがある)
- サービス管理で動作を確認
- メール送受信を確認
- Webサービスの移転
- S3にバケット作成
- アクセス権設定
- Webサービス設定
- Route53にCNAMEとAliasを設定
- アクセスを確認
実際の移動
DNSをAmazon Route53へ変更
Amazon Route53の基本的な設定方法は、Office365を設定した時と同じ手順となる。
ステップをおさらいすると:
- Amazon Route53上にゾーンを作成
- 作成したゾーン情報(ドメインのこと)にTXT、MX、SRVレコード追加
- ドメイン名を登録したレジストラのDNSの情報を更新
現実的には、10分~20分程度でレジストラの情報が更新される。
ドメインの各情報が行き渡るまでには国内で12時間~24時間ほどで完了可能であろう。
Webデータ移転
- Amazon S3にバケットを作成
Amazon S3にバケット(フォルダ)を作成。
<注意点>
ホームページで使うURLをそのままバケット名にする。
例:www.sumisada.com
実際にホームページデータを入れるバケット
例:
www.sumisada.com:ホームページデータをコピーする
sumisada.com:デフォルトドメイン用のダミーバケット
英文のドキュメントで、デフォルトドメイン名(sumisada.com)にデータを入れてwww.sumisada.comをリダイレクト(転送)に設定する記述あるが、URLをどのようにしたいかでデータを入れるバケット名を決める。
バケット名は、一意名でありAmazon S3上に他者が作成していた場合には作成できない。 バケットが作成可能かどうかのチェックも最初に行う。
- アクセス権の設定方法
アクセス権はサンプルをそのまま流用する。下記のbucket部分を実際に作成したバケット名に変更する。 (sampleをクリックするとドキュメントが開くので「Granting Permission to an Anonymous User」の下をコピペ)
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::bucket/*"
]
}
]
}
- Webサービスを設定
「enable website hosting」をクリックし、インデックスファイル名(index.htmlなど)とエラーファイル名(あれば)設定する。
- データをコピー
Uploadをクリックし、ローカルPC内のホームページデータをドラッグ。
StartUploadをクリックすると転送が開始される。
転送が完了後
www.バケット名.com.s3-website-ap-northeast-1.amazonaws.com で表示を確認する。
デフォルトドメインのバケット(sumisada.com)はRedirect all requests to another hostを選択してSaveする。
最後にRoute53で、レコードを追加してAliasを作れば完了。
注意したいこと
Amazon S3を使う場合には、同じアカウントのRoute53でなければデフォルトドメインでアクセスの設定ができない。 Amazon S3とAmazon Route53は同じアカウントで設定する。
Amazon S3内でアカウント移転するような場合にはバケット名を削除した後に再度作成することになるが、すぐには作成できないので注意(1時間前後の待ちが必要)。
まとめ
最短で30分あれば移転可能なケースもある、数日必要なケースもある。
再確認すると、ステップは下記4つ
1)Amazon Route53設定
2)メールレコード移転
3)Amazon S3設定
4)ドメイン・レコード・アップデート