AWS S3をWEBサイトホスティングとして構築する
AWSのS3でWEBサイトホスティングを行うのはとても簡単で、以下の作業の3つです。
・コンテンツを保存するS3バケットを作成する
・作成したS3バケットをWebサイト用に設定する
・S3のWEB公開ポリシーを設定する
コンテンツを保存するS3バケットの作成
・
AWS Management Consoleにアクセス
AWS Management ConsoleにログインしAmazon S3 タブを開きます。
https://console.aws.amazon.com/s3
・
「Create Bucket」ボタンをクリック
左上の「Create Bucket」ボタンをクリックします。
・
「Bucket」情報の入力
Bucket名とリージョンを指定 し、「Create」クリックします。
「Bucket Name」は、Amazon S3内に存在する全てのBucket名に対してユニークでなければなりません。
独自ドメイン名でS3のWEBサイトホスティングする場合、Bucket名をドメイン名(FQDN)と一致させる必要があります。
(例えば、s3web01.amz.cross-searching.netというFQDNで運用したい場合、Bucket名をs3web01.amz.cross-searching.netとする必要があります。)のでご注意ください。また、一度作成したBucketは、Bucket名を変更することができません。
「Region」は S3 をホストするサーバーの場所です。速度では Tokyo が有利ですが、価格は少々割高です。
「Set up Logging」は、このバケット内のファイルへのWEBからのスタティックアクセスのログを行うための設定です。後から設定可能なため、ここで割愛します。
・
新規「Bucket」作成完了
以上でBucketの作成は完了です。非常に簡単ですね。
・
S3にファイルをアップ
S3にファイルをアップができるか、確認します。
またここでアップしたファイルは、後ほど設定するWEBサイトホスティングの確認用ファイルとして利用します。
「S3FoxS3」、「CloudBerry Explorer」など、S3にファイルをアップロードするツールが多数存在しますが、今回は 「AWS Management Console」からファイルをアップロードする手順を示します。
上記画像のBucketを選択すると、まだファイルがありません。
適当な場所で右クリックし、メニューから「Upload」を選択する。
「Upload -Select Files」ダイアログで、「Add Files」をクリックする。
ローカルのディスクから、index.htmlを選択し、S3へアップロードする。
「Start Upload」ボタンをクリックする。
作成したS3バケットをWebサイト用に設定する
■
S3のWEBサイトホスティング化
AWS S3の基本は、ストレージであるため、デフォルトではWEBサイトホスティングは無効となっています。 ・AWS Management ConsoleのS3のトップ管理画面に戻ります。(左上のパンくず「All Buckets」をクリック)
・WEB公開したいBucketを選択し、右上の「Properties」ボタンをクリックします。
・右側フィールドの「Static Website Hosting」を展開する。
・「Enable Website hosting」選択し、「Index Document」,「Error Document」を記述し、「Save」をクリック
例:Index Document->index.html
Error Document->404.html
※EndpointがこのS3のWEBサイトホスティングのFQDNとなります。
Buckets名でアクセスさせたい場合、このEndpoint名をCnameに使います。
S3のWEB公開ポリーを適用する
上記のWEBサイトホスティングを有効化することで公開はできますが、アクセス権限がないため一般ユーザからのアクセスは拒否されます。
そのため一般ユーザからのアクセスを許可する設定が必要になります。
アクセスを許可するいは各ファイルごとに許可する設定も可能ですが、ファイル数が多くなると負荷が高まります。
また公開ポリシーをBucket自身に適用することで、個々のファイル権限を変更する手間が省けます。
・AWS Management ConsoleのS3のトップ管理画面に戻ります。(左上のパンくず「All Buckets」をクリック)
・WEB公開したいBucketを選択し、右上の「Properties」ボタンをクリックします。
・右側フィールドの「Permissios」を展開し、「Add Bucket Policy」をクリックします。
※既にBucket Policyを作成済みの場合「Add Bucket Policy」が「Edit Bucket Policy」となります。
・以下のバケットポリシーをコピーし、Bucket Policy Editor内に貼り付け、「Save」ボタンをクリックする。
Webサイトホスティングを一般公開するためのアクセスポリシー
※"Resource"の[s3web01.cross-searching.net]の部分を対象のBucket名に置き換えてください。
{
"Version":"2008-10-17",
"Statement":[{
"Sid":"PublicReadForGetBucketObjects",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::s3web01.amz.cross-searching.net/*"
]
}
]
}
開発環境などあえてS3のWebサイトホスティングにIPアクセス制限をかけたいはこちらへ
※AWS S3のWebサイトホスティングでは「.htaccess」が利用できません。またベーシック認証もできないので注意が必要です。
その他、【
AWS S3のWebサイトホスティングにおけるアクセス制限】の記事もご覧ください。
利用
AWS EC2/S3 構築手順【目次】
・
AWS S3をWEBホスティングとして利用【基本設定】
・
AWS S3をWEBホスティングとして利用【リダイレクト設定】
・
AWS S3をWEBホスティングとして利用【アクセス制限】
・
AWS S3のおすすめ書籍
日本の
VPS(仮想専用ホスティングサービス)を徹底比較や
専用・共用・VPSのホスティングサービスを徹底比較の 記事もご覧ください。
[0回]