S3をWebサーバーにして静的コンテンツを公開する方法を紹介します。
手順
バケットの作成
まずはバケットを作成しましょう。
マネジメントコンソールでS3のページを開きます。
バケットを作成をクリックします。
バケットの名前を入れて、リージョンを選択します。
バケット名は世界中のS3で一意である必要があります。
「バケットのブロックパブリックアクセス設定」はデフォルトのすべてブロックで問題ありません。
これでバケット作成は完了です。
HTMLの格納
作成したバケットを選択します。
そして、HTMLファイルをドラッグアンドドロップします。
設定が色々ありますが、画面最下部のアップロードを実行します。
複数ファイルやフォルダーまるごとアップロードすることも可能です。
CloudFrontの設定
まず、マネジメントコンソールでCloudFrontの画面を開きます。
そして、「Create Distoribution」をクリックします。
「Get Started」をクリックします。
「Origin Domain Name」のところに、S3のバケット名を入れると、候補が表示されるので、「--- Amazon S3 Buckets ---」のセクション内にある、バケットを選択します。
設定項目は、以下のように設定しました。
項目 | 設定内容 | 説明 |
---|---|---|
Restrict Bucket Access | Yes | ユーザーが常にAmazonS3URLではなくCloudFrontURLを使用してAmazonS3コンテンツにアクセスすることを要求する場合は、[はい]をクリックします。これは、署名付きURLまたは署名付きCookieを使用してコンテンツへのアクセスを制限する場合に役立ちます。ヘルプで、「CloudFrontを介したプライベートコンテンツの提供」を参照してください。 |
Origin Access Identify | Create a New Identity | ユーザーが常にCloudFrontURLを使用してAmazonS3コンテンツにアクセスすることを要求するには、特別なCloudFrontユーザー(オリジンアクセスID)をオリジンに割り当てます。新しいオリジンアクセスIDを作成するか、既存のIDを再利用できます(一般的な使用例では、既存のIDを再利用することをお勧めします)。追加の構成が必要です。ヘルプで、「CloudFrontを介したプライベートコンテンツの提供」を参照してください。 |
Grant Read Permissions on Bucket | Yes, Update Bucket Policy | ディストリビューションの作成時にCloudFrontがオリジンアクセスIDに読み取りアクセス許可を自動的に付与して、CloudFrontがAmazon S3バケット内のオブジェクトにアクセスできるようにする場合は、[はい、マイバケットアクセス許可を更新します]をクリックします。どちらのオプションを選択する場合でも、バケットの権限を確認する必要があります。 |
設定したら画面最下部の「Create Distribution」をクリックします。
5分ほど待つと、ステータスが「In Progress」から「Deployed」に変わります。
ディストリビューションの一覧から、作成したものを選ぶと、CloudFrontが発行したドメイン名がわかります。
今回の例では、
http://d168j73yp42rht.cloudfront.net/index.html
にアクセスすると、S3に配置したコンテンツが確認できます。
CloudFront経由でS3にアクセスさせることで、HTTPS接続を強制させたり、独自ドメインを適用したりできるようになります。