Amazon S3 でWebサイトを公開する
概要
Amaon S3に、静的HTMLのWebサイトを設置する。
S3(Amazon Simple Storage Service)はストレージで、アプリを置く場所ではないのですが、動的なものでなかったら置いて参照するのは問題ありません。
何かのモックアップとか、デモサイトとか、サーバーサイドの処理がないWebページ、画像やスクリプト、CMSで作ってありながらほとんど更新されていないサイトなど、置いておきたいだけのものって結構あるんじゃないかと思います。
S3上に、気軽にホイホイ場所(buckets バケツ)を作り、ドメインはCNAMEで簡単に設定。転送量がなければ、課金はほぼタダ同然。
そんな素敵な Amazon S3でWebサイトの手順。
1. amazon web service のアカウントを作る
こちらにて http://aws.amazon.com/jp/
2. さっそくS3の利用開始
S3は、特に手続きなしにすぐ使える状態になっている(無料利用枠もあるとのこと)。
さっそくAWS マネジメントコンソールの、S3(Amazon Simple Storage Service)のコンソールへ。
3. バケツを作る
buckets(バケツ)を作れとのことなので、作る。
Create Bucket → 名前入力、地域選択 → Create
Webサイトを置くつもりなので先に言っておくと、割り当てる予定のドメイン名とバケツの名前を同じにすること。
Example
www.example.com で公開するつもりなら、bucketsの名前も www.example.com にする。
4. バケツにファイルをアップロードする
FTPソフトのような、S3の対応のクライアントソフトがあるようだが、Javaが利用可能な状況なら特にソフトはなくてもよいと思う。ベータ版のブラウザからのアップローダーでフォルダ丸ごとアップロードなどができるので、アップロードも簡単。
5. パーミッションをWebサイト仕様にする
「誰でも見てよいですよ」の状態にする。これをしないと、Not Found や Forbidden のエラーになる。
・バケツ名を右クリック → Properties → Websiteタブ をクリック → Enabledにチェックを入れて、Index Documentはindex.htmlなどに。
・バケツ名を右クリック → Properties → Permissionsタブ → Edit bucket policy をクリック → ダイアログのテキストエリアに以下のような記述を入れて → Save。細かい設定はマニュアル参照。
{ "Version": "2008-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::(Bucketsの名前)/*" } ] }
6. ここで表示確認
パーミッションが適切に設定されていれば
バケツ名を右クリック → Properties → Websiteタブ → EndPoint のURLを見に行くとWebサイトが見えるはず。
7. URLを独自ドメインにする
バケツ名を右クリック → Properties → Websiteタブ → EndPoint の ドメイン部分を、独自ドメインのCNAMEにする。
Endpointが http://www.example.com.s3-website-ap-northeast-1.amazonaws.com/ だったら、
DNSの設定で、www.example.com のCNAMEに www.example.com.s3-website-ap-northeast-1.amazonaws.com を設定をする。
以上で、www.example.comのURLで、S3に置いたコンテンツが見えるようになる。
Webサイトの公開を、S3のみで済ませようとする場合は、HTML吐き出し系のシステムが合いそうですね。
コメント