SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

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吐き出し系のシステムが合いそうですね。

関連するメモ

コメント