

# 静的ウェブサイトのチュートリアル
<a name="static-website-tutorials"></a>

以下のチュートリアルまたはウォークスルーでは、静的ウェブサイトホスティングおよびオンデマンド動画ストリーミングのホスティング用に Amazon S3 汎用バケットを作成および設定する詳細な手順を示します。これらのチュートリアルの目的は、一般的なガイダンスを提供することです。これらのチュートリアルはラボ型環境向けであり、バケット名やユーザー名などの例を使用しています。お客様の組織環境に固有のニーズを満たすかどうかの十分な確認や調整をすることなく、本番環境で直接使用するためのものではありません。
+ [Amazon S3、Amazon CloudFront、Amazon Route 53 を使用したオンデマンドストリーミング動画のホスティング](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tutorial-s3-cloudfront-route53-video-streaming) – Amazon S3 を Amazon CloudFront と共に使用すると、安全でスケーラブルな方法でオンデマンド視聴用に動画をホストできます。ビデオを適切な形式に変換した後、サーバーまたは S3 汎用バケットに保存したら、ビューワーのリクエストに応じて CloudFront で配信できます。このチュートリアルでは、配信に CloudFront を使用し、ドメインネームシステム (DNS) およびカスタムドメイン管理に Amazon Route 53 を使用して、オンデマンド動画ストリーミングをホストするように汎用バケットを設定する方法について説明します。CloudFront はキャッシュから動画を提供し、まだキャッシュされていない場合にのみ、汎用バケットから動画を取得します。管理機能のキャッシュにより、低レイテンシー、高スループット、高速転送速度で、世界中のビューワーに動画を配信できます。CloudFront キャッシュ管理の詳細については、*Amazon CloudFront デベロッパーガイド*の[キャッシュの最適化と可用性](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ConfiguringCaching.html)を参照してください。
+ [静的ウェブサイトの設定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html) – ウェブサイトのように機能するように汎用バケットを設定できます。このチュートリアルでは、バケットの作成、S3 コンソールでの静的ウェブサイトホスティングの有効化、インデックスドキュメントの作成、エラードキュメントの作成など、Amazon S3 でウェブサイトをホストする手順について説明します。詳細については、「[Amazon S3 を使用して静的ウェブサイトをホスティングする](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html)」を参照してください。
+ [Route 53 に登録されたカスタムドメインを使用した静的ウェブサイトの設定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html) – 静的ウェブサイトをホストする汎用バケットを作成および設定し、Amazon Route 53 に登録されたカスタムドメイン名を持つウェブサイトの S3 へのリダイレクトを作成できます。Route 53 を使用してドメインを登録し、ドメインのインターネットトラフィックをルーティングする先を定義します。このチュートリアルでは、ドメインおよびサブドメインのトラフィックを、HTML ファイルが含まれている汎用バケットにルーティングする Route 53 のエイリアスレコードを作成する方法を説明します。詳細については、「Amazon Route 53 デベロッパーガイド」の「[Use your domain for a static website in an Amazon S3 bucket](https://docs.aws.amazon.com//Route53/latest/DeveloperGuide/getting-started-s3.html)」を参照してください。**このチュートリアルが完了したら、CloudFront を使ってウェブサイトのパフォーマンスを向上させることも可能です。詳細については、「[Amazon CloudFront によるウェブサイトの高速化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-cloudfront-walkthrough.html)」を参照してください。
+ [S3 汎用バケットから AWS Amplify ホスティングへの静的ウェブサイトのデプロイ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-amplify) – S3 に保存されている静的ウェブサイトのコンテンツをホストするには、[AWS Amplify ホスティング](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html)を使用することをお勧めします。Amplify ホスティングは、Amazon CloudFront を利用したグローバルに利用可能なコンテンツ配信ネットワーク (CDN) にウェブサイトを簡単にデプロイできるフルマネージドサービスです。これにより、大規模なセットアップなしで安全な静的ウェブサイトホスティングが可能になります。AWS Amplify ホスティングを使用すると、汎用バケット内のオブジェクトの場所を選択して、コンテンツをマネージド CDN にデプロイし、ウェブサイトのパブリック HTTPS URL を生成してどこからでもアクセス可能にすることができます。詳細については、「*AWS Amplify ホスティングユーザーガイド*」の「[Amplify コンソールを使用して S3 から静的ウェブサイトをデプロイする](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html)」を参照してください。

# チュートリアル: Amazon S3、Amazon CloudFront、Amazon Route 53 を使用したオンデマンドストリーミング動画のホスティング。
<a name="tutorial-s3-cloudfront-route53-video-streaming"></a>

Amazon S3 を Amazon CloudFront とともに使用すると、セキュリティとスケーラビリティを備えたオンデマンド視聴用に動画をホストできます。オンデマンド動画 (VOD) ストリーミングの場合、動画コンテンツはサーバーに保存され、ビューワーはいつでも視聴できます。

CloudFront は、高速で安全性が高く、プログラム可能なコンテンツ配信ネットワーク (CDN) サービスです。CloudFront は、CloudFront のすべてのエッジロケーションから HTTPS 経由でコンテンツを安全に配信できます。CloudFront の詳細については、**「Amazon CloudFront デベロッパーガイド」の「[Amazon CloudFront とは](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html)」を参照してください。

CloudFront のキャッシングは、オリジンサーバーが直接応答するリクエストの数を減らします。ビューワー (エンドユーザー) が CloudFront で配信する動画をリクエストすると、リクエストはビューワーの場所により近いエッジロケーションにルーティングされます。CloudFront はキャッシュから動画を提供し、まだキャッシュされていない場合にのみ、S3 バケットから動画を取得します。管理機能のキャッシュにより、低レイテンシー、高スループット、高速転送速度で、世界中のビューワーに動画を配信できます。CloudFront キャッシュ管理の詳細については、*Amazon CloudFront デベロッパーガイド*の[キャッシュの最適化と可用性](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ConfiguringCaching.html)を参照してください。

![\[CloudFront キャッシュメカニズムの仕組みを説明する図\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/cf-example-image-global.png)


**目的**  
このチュートリアルでは、配信に CloudFront を使用し、ドメインネームシステム (DNS) およびカスタムドメイン管理に Amazon Route 53 を使用して、オンデマンド動画ストリーミングをホストするように S3 バケットを設定します。

**Topics**
+ [前提条件: カスタムドメインを Route 53 に登録し、設定する。](#cf-s3-prerequisites)
+ [ステップ 1: S3 バケットを作成する。](#cf-s3-step1)
+ [ステップ 2: S3 バケットに動画をアップロードする。](#cf-s3-step2)
+ [ステップ 3: CloudFront オリジンアクセスアイデンティティを作成する。](#cf-s3-step3)
+ [ステップ 4: CloudFront ディストリビューションを作成する。](#cf-s3-step4)
+ [ステップ 5: CloudFront ディストリビューション経由で動画にアクセスする。](#cf-s3-step5)
+ [ステップ 6: カスタムドメイン名を使用するように CloudFront ディストリビューションを設定する。](#cf-s3-step6)
+ [ステップ 7: カスタムドメイン名を使用して CloudFront ディストリビューションを介して S3 動画にアクセスする。](#cf-s3-step7)
+ [(オプション)ステップ 8: CloudFront ディストリビューションが受信したリクエストに関するデータを表示する](#cf-s3-step8)
+ [ステップ 9: クリーンアップする。](#cf-s3-step9)
+ [次のステップ](#cf-s3-next-steps)

## 前提条件: カスタムドメインを Route 53 に登録し、設定する。
<a name="cf-s3-prerequisites"></a>

このチュートリアルを開始する前に、Route 53 により、後でカスタムドメイン名を使用するように CloudFront ディストリビューションを設定するために、カスタムドメイン (例、**example.com**) を登録し、設定する必要があります 。

カスタムドメイン名がなければ、S3 動画はパブリックにアクセスでき、CloudFront 経由でホストされる URL は、次のようになります。

```
https://CloudFront distribution domain name/Path to an S3 video
```

例えば、**https://d111111abcdef8.cloudfront.net/sample.mp4**。

Route 53 で設定されたカスタムドメイン名を使用するように CloudFront ディストリビューションを設定すると、S3 ビデオはパブリックにアクセス可能になり、CloudFront を介して次のような URL でホストされます。

```
https://CloudFront distribution alternate domain name/Path to an S3 video
```

例えば、**https://www.example.com/sample.mp4**。カスタムドメイン名は、ビューワーが使用するのに簡単で直感的です。

****  
カスタムドメインの登録については、*Amazon Route 53 デベロッパーガイド* の「[Route 53 を使用して新しいドメインを登録する](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html)」を参照してください。

Route 53 にドメイン名を登録すると、Route 53 によってホストゾーンが作成されます。このホストゾーンは、このチュートリアルの後半で使用します。このホストゾーンは、ドメインのトラフィックを、例えば Amazon EC2 インスタンスや CloudFront ディストリビューションにルーティングする方法についての情報を保存する場所です。

ドメイン登録、ホストゾーン、ドメインが受信した DNS クエリに関連する料金が発生します。詳細については、「[Amazon Route 53 料金表](https://aws.amazon.com/route53/pricing/)」を参照してください。

**注記**  
ドメインを登録すると、すぐに費用がかかり、元に戻せません。ドメインを自動更新しないことは選択できますが、前払いしてその年の所有権を取得することになります。詳細については、**「Amazon Route 53 デベロッパーガイド」の「[新しいドメインの登録](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html)」を参照してください。

## ステップ 1: S3 バケットを作成する。
<a name="cf-s3-step1"></a>

ストリーミングする元の動画を保存するには、バケットを作成します。

**バケットを作成するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ページ上部にあるナビゲーションバーで、現在表示されている AWS リージョン の名前をクリックします。次に、バケットを作成するリージョンを選択します。
**注記**  
レイテンシーとコストを最小化するため、さらに規制条件に対応するために、最寄りのリージョンを選択します。明示的に別のリージョンに移動する場合を除き、特定のリージョンに保管されたオブジェクトは、そのリージョンから移動されることはありません。Amazon S3 AWS リージョン のリストについては、**「Amazon Web Services 全般のリファレンス」の「[AWS のサービス エンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)」を参照してください。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. [**Create bucket (バケットの作成)**] を選択します。**[バケットの作成]** ページが開きます。

1. [**バケット名** ] に、バケットの名前 (例: **tutorial-bucket**) を入力します。

   Amazon S3 のバケット命名規則の詳細については、「[汎用バケットの命名規則](bucketnamingrules.md)」を参照してください。

1. **[リージョン]** で、バケットを保存する AWS リージョンを選択します。

   可能であれば、ほとんどのビューワーに最も近いリージョンを選択します。バケットのリージョンの詳細については、「[汎用バケットの概要](UsingBucket.md)」を参照してください。

1. [**このバケットのパブリックアクセス設定をブロック**] で、デフォルト設定 (**ブロック*すべて*パブリックアクセス**が有効) のままであることを確認します。

   ***すべて*のパブリックアクセスをブロック** を有効にしても、ビューワーは CloudFront 経由でアップロードされた動画にアクセスできます。この機能は、CloudFront を使用して S3 に保存された動画をホストすることの大きな利点です。

   ユースケースでオフにする必要のある設定が 1 つ以上あることがわかっている場合を除き、すべての設定を有効にしておくことをお勧めします。パブリックアクセスのブロックの詳細については、[Amazon S3 ストレージへのパブリックアクセスのブロック](access-control-block-public-access.md) を参照してください。

1. 残りの設定はデフォルトのままにしておきます。

   (オプション) 特定のユースケースに追加のバケット設定を設定する場合は、「[汎用バケットの作成](create-bucket-overview.md)」を参照してください。

1. [**バケットの作成**] を選択します。

## ステップ 2: S3 バケットに動画をアップロードする。
<a name="cf-s3-step2"></a>

次の手順では、コンソールを使用して S3 バケットに動画ファイルをアップロードする方法を示します。S3 に動画ファイルをアップロードするときは、[Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration) を使用して、高速かつ安全なファイル転送を設定します。転送アクセラレーションを使用すると、S3 バケットへの動画のアップロードを高速化して、大きな動画の長距離転送を行うことができます。詳細については、「[Amazon S3 Transfer Acceleration を使用した高速かつ安全なファイル転送の設定](transfer-acceleration.md)」を参照してください。

**バケットにファイルをアップロードするには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. **[汎用バケット]** リストで、[ステップ 1](#cf-s3-step1) で作成したバケットの名前を選択し (**tutorial-bucket** など)、ファイルをアップロードします。

1. バケットの **[オブジェクト]** タブで、**[アップロード]** を選択します。

1. [**アップロード**] ページの [**ファイルとフォルダ**] の下で、[**ファイルを追加**] を選択します。

1. アップロードするファイルを選択し、続いて **[オープン]** を選択します。

   例えば、`sample.mp4` という名前の動画ファイルをアップロードできます。

1. **アップロード** を選択します。

## ステップ 3: CloudFront オリジンアクセスアイデンティティを作成する。
<a name="cf-s3-step3"></a>

S3 バケットからの動画への直接アクセスを制限するには、オリジンアクセスアイデンティティ (OAI) という特別な CloudFront ユーザーを作成します。このチュートリアルの後半で OAI をディストリビューションに関連付けます。OAI を使用すると、ビューワーは CloudFront をバイパスして、S3 バケットから直接ビデオを取得できません。CloudFront OAI だけが S3 バケット内のファイルにアクセスできます。詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[Amazon S3 オリジンへのアクセスを制限する](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)」を参照してください。



**重要**  
静的ウェブサイトのホストに使用しているバケットが AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS) を使用して暗号化されている場合は、オリジンアクセスアイデンティティ (OAI) の代わりにオリジンアクセスコントロール (OAC) を使用してオリジンを保護する必要があります。OAI は SSE-KMS をサポートしていないため、代わりに OAC を使用する必要があります。OAC の詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[Amazon S3 オリジンへのアクセスを制限する](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)」を参照してください。

**CloudFront OAI を作成するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで、**[セキュリティ]** セクションの **[オリジンアクセス]** を選択します。

1. **[アイデンティティ]** タブで、**[オリジンアクセスアイデンティティを作成]** を選択します。

1. 新しいオリジンアクセスアイデンティティとして、名前 (例えば、**S3-OAI**) を入力します。

1. **[作成]** を選択します。

## ステップ 4: CloudFront ディストリビューションを作成する。
<a name="cf-s3-step4"></a>

CloudFront を使用して S3 バケットで動画を提供および配信するには、CloudFront ディストリビューションを作成する必要があります。

**Topics**
+ [CloudFront ディストリビューションを作成する](#cf-s3-step4-create-cloudfront)
+ [バケットポリシーの確認](#cf-s3-step4-review-bucket-policy)

### CloudFront ディストリビューションを作成する
<a name="cf-s3-step4-create-cloudfront"></a>

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで、**ディストリビューション** を選択します。

1. **[ディストリビューションの作成]** を選択します。

1. [**オリジン**] の [**オリジンドメイン**] で、[ステップ 1](#cf-s3-step1) で作成した S3 バケットの名前から始まる、S3 オリジンのドメイン名 (例えば、**tutorial-bucket**) を選択します。

1. **[オリジンアクセス]**では、**[レガシーアクセスアイデンティティ]** を選択します。

1. [**オリジンアクセスアイデンティティ**] で、[ステップ 3](#cf-s3-step3) で作成したオリジンアクセスアイデンティティを選択します (例えば、**S3-OAI**)。

1. [**バケットポリシー**] で、[**はい、バケットポリシーを更新します**] を選択します。

1. [**ビューワープロトコルポリシー**] の [**デフォルトのキャッシュ動作** ] セクションで、[**HTTP から HTTPS へリダイレクト**] を選択します。

   この機能を選択する際は、HTTP リクエストは HTTPS に自動的にリダイレクトされ、ウェブサイトを保護し、ビューワーのデータを保護します。

1. [**Default Cache Behavior(キャッシュ動作のデフォルト)**] セクションの他の設定については、デフォルト値を使用します。

   (オプション) CloudFront が別のリクエストをオリジンに転送するまでにファイルを CloudFront キャッシュに保持する期間をコントロールできます。この期間を短くすると、動的なコンテンツを供給できます。この期間を長くすると、ユーザー側のパフォーマンスは向上します。ファイルがエッジキャッシュから直接返される可能性が高くなるためです。期間を長くすると、オリジンの負荷も軽減されます。詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[コンテンツがエッジキャッシュに保持される期間の管理 (有効期限)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html)」を参照してください。

1. その他のセクションでは、残りの設定はデフォルトのままにしておきます。

   異なる設定オプションの詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[ディストリビューションを作成または更新する場合に指定する値](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html)」を参照してください。

1. ページの最下部で、[**ディストリビューションの作成**] を選択します。

1. CloudFront ディストリビューションの **[全般]** タブの **[詳細]** で、ディストリビューションの **[最終変更]** 列の値が **[デプロイ]** からディストリビューションが最後に変更されたタイムスタンプに変更されます。これには通常数分かかります。

### バケットポリシーの確認
<a name="cf-s3-step4-review-bucket-policy"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[バケット]** を選択します。

1. [**バケット**] リストで、CloudFront ディストリビューションのオリジンとして上記で使用したバケットの名前を選択します (例えば、**tutorial-bucket**)。

1. **[アクセス許可]** タブを選択します。

1. [**バケットポリシー**] セクションのバケットポリシーテキストで、次のようなステートメントが表示されることを確認します。

   ```
   {
       "Version": "2008-10-17",		 	 	 
       "Id": "PolicyForCloudFrontPrivateContent",
       "Statement": [
           {
               "Sid": "1",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC"
               },
               "Action": "s3:GetObject",
               "Resource": "arn:aws:s3:::tutorial-bucket/*"
           }
       ]
   }
   ```

   これは、上記の [**はい、バケットポリシーを更新します**] を選択した際に、CloudFront ディストリビューションがバケットポリシーに追加したステートメントです。

   このバケットポリシーの更新は、S3 バケットへのアクセスを制限するように CloudFront ディストリビューションを正常に構成したことを示します。この制限のため、バケット内のオブジェクトには CloudFront ディストリビューションからのみアクセスできます。

## ステップ 5: CloudFront ディストリビューション経由で動画にアクセスする。
<a name="cf-s3-step5"></a>

これで、CloudFront は S3 バケットに保存された動画を提供できます。CloudFront 経由で動画にアクセスするには、CloudFront ディストリビューションのドメイン名を S3 バケット内の動画へのパスの中に含めます。

**CloudFront ディストリビューションドメイン名を使用して S3 動画の URL を作成するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで、[**ディストリビューション**] を選択します。

1. ディストリビューションのドメイン名を取得するには、次の手順を実行します。

   1. [**オリジン**] 列で、[ステップ 1](#cf-s3-step1) で作成した S3 バケットで始まるオリジン名を見つけて、CloudFront ディストリビューションを識別します (例えば、**tutorial-bucket**)。

   1. リストからディストリビューションを見つけたら、**[ドメイン名]** 列を広げて、CloudFront ディストリビューションのドメイン名の値をコピーします。

1. 新しいブラウザタブで、上記でコピーしたディストリビューションドメイン名を貼り付けます。

1. 前のブラウザタブに戻り、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) にある S3 コンソールを開きます。

1. 左側のナビゲーションペインで、**[バケット]** を選択します。

1. [**バケット**] リストで、[ステップ 1](#cf-s3-step1) で作成したバケットの名前を選択します (例えば、**tutorial-bucket**)。

1. [**オブジェクト**] リストで、[ステップ 2](#cf-s3-step2) でアップロードした動画の名前を選択します (例えば、`sample.mp4`)。

1. オブジェクト詳細ページで、**オブジェクトの概要** セクションで、[**キー**] の値をコピーします。この値は、S3 バケット内でアップロードされたビデオオブジェクトへのパスです。

1. 以前にディストリビューションのドメイン名を貼り付けたブラウザタブに戻り、スラッシュ (**/**) を配信ドメイン名の後に入力し、前にコピーした動画へのパスを貼り付けます (例: `sample.mp4`)。

   これで、S3 動画はパブリックにアクセスでき、CloudFront 経由でホストされた URL は、次のようになります。

   ```
   https://CloudFront distribution domain name/Path to the S3 video
   ```

   *CloudFront ディストリビューションドメイン名* および *S3 動画へのパス* を適切な値で置き換えます。URL の例は **https://d111111abcdef8.cloudfront.net/sample.mp4** です。

## ステップ 6: カスタムドメイン名を使用するように CloudFront ディストリビューションを設定する。
<a name="cf-s3-step6"></a>

URL で CloudFront ドメイン名の代わりに独自のドメイン名を使用して S3 動画にアクセスするには、代替ドメイン名を CloudFront ディストリビューションに追加する必要があります。

**Topics**
+ [SSL 証明書をリクエストする。](#cf-s3-step6-create-SSL)
+ [CloudFront ディストリビューションに代替ドメイン名を追加します。](#cf-s3-step6-custom-domain)
+ [代替ドメイン名のトラフィックを CloudFront ディストリビューションのドメイン名にルーティングする DNS レコードを作成する。](#cf-s3-step6-DNS-record)
+ [ディストリビューションに対して IPv6 が有効になっているかどうかを確認し、必要に応じて別の DNS レコードを作成します。](#s3-step6-ipv6)

### SSL 証明書をリクエストする。
<a name="cf-s3-step6-create-SSL"></a>

ビューワーが動画ストリーミングの URL で HTTPS とカスタムドメイン名を使用できるようにするには、AWS Certificate Manager (ACM) を使用して、Secure Sockets Layer (SSL) 証明書を要求します。SSL 証明書は、ウェブサイトへの暗号化されたネットワーク接続を確立します。

1. AWS マネジメントコンソール にサインインして、ACM コンソール ([https://console.aws.amazon.com/acm/home](https://console.aws.amazon.com/acm/)) を開きます。

1. 入門者向けページが表示されたら、[**証明書のプロビジョニング**] で [**開始**] を選択します。

1. [**証明書のリクエスト**] ページで、[**パブリック証明書のリクエスト**] を選択し、[**証明書のリクエスト**] を選択して続行します。

1. [**ドメイン名の追加**] ページで、SSL/TLS 証明書を使用して保護するサイトの完全修飾ドメイン名を入力します。アスタリスク (`*`) を使用して、同じドメイン内の複数のサイトを保護するワイルドカード証明書をリクエストします。このチュートリアルでは、**\$1** および [[前提条件]](#cf-s3-prerequisites) で設定したカスタムドメイン名を入力します。例えば、**\$1.example.com** を使用し、[**Next (次へ)**] を選択します。

   詳細については、*AWS Certificate Managerユーザーガイド*の「[ACM パブリック証明書をリクエストする (コンソール)](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html#request-public-console)」を参照してください。

1. [**検証方法の選択**] ページで、[**DNS での検証**] を選択します。その後、**[Next]** を選択します。

   DNS 設定を編集できる場合は、E メール検証ではなく DNS ドメイン検証を使用することをお勧めします。DNS 検証には E メール検証と比べていくつかの利点があります。詳細については、*AWS Certificate Managerユーザーガイド*の[オプション 1: DNS 検証](https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html)を参照してください。

1. (オプション) [**タグの追加**] ページで、メタデータを用いて証明書にタグを付けることができます。

1. **[Review]** (レビュー) を選択します。

1. [**確認**] ページで、**ドメイン名**および**検証方法**にある情報が正しいことを確認します。次に、[**確認してリクエストする**] を選択します。

   [**検証**] ページには、リクエストが処理中で、証明書ドメインが検証中であることが示されます。検証を待機している証明書は、**検証保留中**状態にあります。

1. [**検証**] ページで、カスタムドメイン名の左側にある下向き矢印を選択し、[**Route 53 でレコードを作成する**] を選択して、DNS によるドメインの所有権を検証します。

   これは、AWS Certificate Manager によって DNS 設定に提供される CNAME レコードを追加します。

1. [**Route 53 でレコードを作成する**] ダイアログボックスで、[**作成**] を選択します。

   これで、[**検証**] ページの一番下に、[**成功**] のステータス通知が表示されるようになりました。

1. [**続行**] を選択して、[**証明書**] リストページを表示します。

   新しい証明書の**ステータス**は、30 分以内に [**検証保留中**] から [**発行済み**] に変わります。

### CloudFront ディストリビューションに代替ドメイン名を追加します。
<a name="cf-s3-step6-custom-domain"></a>

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで、[**ディストリビューション**] を選択します。

1. [ステップ 4](#cf-s3-step3) で作成したディストリビューションの ID を選択します。

1.  [**全般**] タブで、**設定**セクションに移動し、**編集**を選択します。

1. **[編集設定]** ページの **[代替ドメイン名 (CNAME) - *オプション*]** で、**[項目を追加]** を選択して、この CloudFront ディストリビューションによって提供される S3 動画の URL で使用するカスタムドメイン名を追加します。

   このチュートリアルでは、例えば、`www.example.com` などのサブドメインのトラフィックをルーティングする場合、サブドメイン名 (`www`) とドメイン名 (`example.com`) を入力します。具体的には、**www.example.com** を入力します。
**注記**  
追加する代替ドメイン名 (CNAME) は、CloudFront ディストリビューションに以前アタッチした SSL 証明書の対象である必要があります。

1. **カスタム SSL 証明書 - *オプション*** で、上記でリクエストした SSL 証明書を選択します (例えば、**\$1.example.com**)。
**注記**  
SSL 証明書をリクエストした直後に SSL 証明書が表示されない場合は、SSL 証明書を選択できるようになるまで 30 分間待機してから一覧を更新できます。

1. 残りの設定はデフォルト値のままにしておきます。[**Save changes** (変更を保存)] を選択します。

1. ディストリビューションの [**全般**] タブで、ディストリビューションの [**最終変更**] の値が [**デプロイ**] からディストリビューションが最後に変更されたタイムスタンプに変更されるまで待機します。

### 代替ドメイン名のトラフィックを CloudFront ディストリビューションのドメイン名にルーティングする DNS レコードを作成する。
<a name="cf-s3-step6-DNS-record"></a>

1. AWS マネジメントコンソール にサインインし、Route 53 コンソール ([https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)) を開きます。

1. 左のナビゲーションペインで **[ホストゾーン]** を選択します。

1. **ホストゾーン** ページの [前提条件](#cf-s3-prerequisites) で Route 53 が作成したホストゾーンの名前を選択します (例えば、**example.com**)。

1. **レコードを作成する**を選択し、**レコードのクイック作成**方法を使用します。

1. [**レコード名**] で、レコード名の値を、上記で追加した CloudFront ディストリビューションの代替ドメイン名と同じにします。

   このチュートリアルでは、`www.example.com` などのサブドメインにトラフィックをルーティングするには、ドメイン名なしでサブドメイン名を入力します。例えば、カスタムドメイン名の前にあるテキストフィールドに「**www**」を入力します。

1. [**レコードタイプ**] で、[**A - IPv4 アドレスと一部の AWS リソースにトラフィックをルーティング**] を選択します。

1. [**値**] で、エイリアスリソースを有効にするには、**エイリアス**切り替えを選択します。

1. **[トラフィックのルーティング先]** で、**[CloudFront ディストリビューションへのエイリアス]** を選択します。

1. [**ディストリビューションの選択**] という検索ボックスで、[ステップ 4](#cf-s3-step4) で作成した CloudFront ディストリビューションのドメイン名を選択します。

   CloudFront ディストリビューションのドメイン名を検索するには、以下の手順を実行します。

   1. 新しいブラウザタブで、AWS マネジメントコンソール にサインインし、[https://console.aws.amazon.com/cloudfront/v3/home](https://console.aws.amazon.com/cloudfront/v3/home) で CloudFront コンソールを開きます。

   1. 左のナビゲーションペインで、[**ディストリビューション**] を選択します。

   1. [**オリジン**] 列で、[ステップ 1](#cf-s3-step1) で作成した S3 バケットで始まるオリジン名を見つけて、CloudFront ディストリビューションを識別します (例えば、**tutorial-bucket**)。

   1. リストからディストリビューションを見つけたら、**ドメイン名** 列を広げて、CloudFront ディストリビューションのドメイン名の値を確認します。

1. Route 53 コンソールの [**レコードを作成する**] ページで、残りの設定はデフォルトのままにしておきます。

1. **[レコードを作成]** を選択します。

### ディストリビューションに対して IPv6 が有効になっているかどうかを確認し、必要に応じて別の DNS レコードを作成します。
<a name="s3-step6-ipv6"></a>

ディストリビューションに対して IPv6 が有効になっている場合は、別の DNS レコードを作成する必要があります。

1. ディストリビューションに対して IPv6 が有効になっているかどうかを確認するには、次の手順を実行します。

   1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

   1. 左のナビゲーションペインで、[**ディストリビューション**] を選択します。

   1. [ステップ 4](#cf-s3-step4) で作成した CloudFront ディストリビューションの ID を選択します。

   1. [**全般**] タブの [**設定**] で、**IPv6** が**有効**になっているか確認します。

      ディストリビューションに対して IPv6 が有効になっている場合は、別の DNS レコードを作成する必要があります。

1. ディストリビューションに対して IPv6 が有効になっている場合は、以下を実行して DNS レコードを作成する必要があります。

   1. AWS マネジメントコンソール にサインインし、Route 53 コンソール ([https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)) を開きます。

   1. 左のナビゲーションペインで **[ホストゾーン]** を選択します。

   1. **ホストゾーン** ページの [前提条件](#cf-s3-prerequisites) で Route 53 が作成したホストゾーンの名前を選択します (例えば、**example.com**)。

   1. **レコードを作成する**を選択し、**レコードのクイック作成**方法を使用します。

   1. [**レコード名**] で、カスタムドメイン名の前のテキストフィールドに、上記の IPv4 DNS レコードを作成したときに入力したのと同じ値を入力します。例えば、このチュートリアルでは、サブドメイン `www.example.com` のトラフィックをルーティングするには、**www** のみを入力します。

   1. [**レコードタイプ**] で、[**AAAA ‐ IPv6 アドレスと一部の AWS リソースにトラフィックをルーティング**] を選択します。

   1. [**値**] で、エイリアスリソースを有効にするには、**エイリアス**切り替えを選択します。

   1. **[トラフィックのルーティング先]** で、**[CloudFront ディストリビューションへのエイリアス]** を選択します。

   1. [**ディストリビューションの選択**] という検索ボックスで、[ステップ 4](#cf-s3-step4) で作成した CloudFront ディストリビューションのドメイン名を選択します。

   1. 残りの設定はデフォルトのままにしておきます。

   1. **[レコードを作成]** を選択します。

## ステップ 7: カスタムドメイン名を使用して CloudFront ディストリビューションを介して S3 動画にアクセスする。
<a name="cf-s3-step7"></a>

カスタム URL を使用して S3 動画にアクセスするには、代替ドメイン名と S3 バケット内の動画へのパスを組み合わせる必要があります。

**CloudFront ディストリビューションを介して S3 動画にアクセスするためのカスタム URL を作成するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで、[**ディストリビューション**] を選択します。

1. CloudFront ディストリビューションの代替ドメイン名を取得するには、以下を実行します。

   1. [**オリジン**] 列で、[ステップ 1](#cf-s3-step1) で作成した S3 バケットのバケット名で始まるオリジン名を見つけて、CloudFront ディストリビューションを識別します (例えば、**tutorial-bucket**)。

   1. リストからディストリビューションを見つけたら、**代替ドメイン名** 列を広げて、CloudFront ディストリビューションの代替ドメイン名の値をコピーします。

1. 新しいブラウザタブに、CloudFront ディストリビューションの代替ドメイン名を貼り付けます。

1. 前のブラウザタブに戻り、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) にある Amazon S3 コンソールを開きます。

1. [ステップ 5](#cf-s3-step5) で説明した S3 動画へのパスを見つけます。

1. 以前に代替ドメイン名を貼り付けたブラウザタブに戻り、スラッシュ (**/**) を入力し、S3 動画へのパスを貼り付けます (例えば、`sample.mp4`)。

   これで、S3 動画はパブリックにアクセス可能になり、CloudFront を介して次のようなカスタム URL でホストされます。

   ```
   https://CloudFront distribution alternate domain name/Path to the S3 video
   ```

   *CloudFront ディストリビューションの代替ドメイン名*および* S3 動画へのパスを*適切な値で置き換えます。URL の例は **https://www.example.com/sample.mp4** です。

## (オプション)ステップ 8: CloudFront ディストリビューションが受信したリクエストに関するデータを表示する
<a name="cf-s3-step8"></a>

**CloudFront ディストリビューションが受信したリクエストに関するデータを表示するには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. CloudFront コンソールの左側のナビゲーションペインで、[**レポートと分析**] で、コンソールから、**キャッシュ統計**、**人気のあるオブジェクト**、**上位リファラー**、**使用状況**、**ビューワーなど**のレポートを選択します。

   各レポートダッシュボードをフィルタリングできます。詳細については、[Amazon CloudFront デベロッパーガイド](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/reports.html)の「*コンソール内の CloudFront レポート*」セクションを参照してください。

1. データをフィルタリングするには、[ステップ 4](#cf-s3-step4) で作成した CloudFront ディストリビューションの ID を選択します。

## ステップ 9: クリーンアップする。
<a name="cf-s3-step9"></a>

学習演習としてのみ、CloudFront と Route 53 を使用して S3 ストリーミング動画をホストした場合は、割り当てた AWS リソースを削除して、料金が発生しないようにします。

**注記**  
ドメインを登録すると、すぐに費用がかかり、元に戻せません。ドメインを自動更新しないことは選択できますが、前払いしてその年の所有権を取得することになります。詳細については、**「Amazon Route 53 デベロッパーガイド」の「[新しいドメインの登録](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html)」を参照してください。

**Topics**
+ [CloudFront ディストリビューションの削除](#cf-s3-step9-delete-cf)
+ [DNS レコードの削除](#cf-s3-step9-delete-dns)
+ [カスタムドメインのパブリックホストゾーンの削除](#cf-s3-step9-delete-hosted-zone)
+ [Route 53 からカスタムドメイン名を削除します。](#cf-s3-step9-delete-domain)
+ [S3 ソースバケットの元の動画を削除する。](#cf-s3-step9-delete-video)
+ [S3 ソースバケットを削除する](#cf-s3-step9-delete-bucket)

### CloudFront ディストリビューションの削除
<a name="cf-s3-step9-delete-cf"></a>

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) で CloudFront コンソールを開きます。

1. 左のナビゲーションペインで、[**ディストリビューション**] を選択します。

1. [**オリジン**] 列で、[ステップ 1](#cf-s3-step1) で作成した S3 バケットのバケット名で始まるオリジン名を見つけて、CloudFront ディストリビューションを識別します (例えば、**tutorial-bucket**)。

1. CloudFront ディストリビューションを削除するには、まずディストリビューションを無効にする必要があります。
   + [**ステータス**] 列の値が [**有効**] で、[**最終変更**] の値がディストリビューションが最後に変更されたときのタイムスタンプである場合は、ディストリビューションを無効にしてから削除してください。
   + **[ステータス]** の値が **[有効]** で、**[最終変更]** の値が **[デプロイ]** の場合、**[ステータス]** がディストリビューションが最後に変更されたタイムスタンプに変わるまで待ちます。次に、ディストリビューションを無効にしてから、ディストリビューションを削除します。

1. CloudFront ディストリビューションを無効にするには、次の手順を実行します。

   1. **ディストリビューション**リストで、削除するディストリビューションの ID の横にあるチェックボックスをオンにします。

   1. ディストリビューションを無効にするには、[**無効**] を選択し、[**無効**] を選択して確定します。

      代替ドメイン名が関連付けられているディストリビューションを無効にすると、CloudFront は、別のディストリビューションに同じドメイン (`*.example.com` など) と一致するワイルドカード(`*`) 付きの代替ドメイン名がある場合でも、このドメイン名 (`www.example.com` など) へのトラフィックの受信を停止します。

   1. [**状態**] 列の値が直ちに [**無効**] に変わります。[**最終変更**] の値が [**デプロイ**] からディストリビューションが最後に変更されたタイムスタンプに変更されるまで待機します。

      CloudFront はこの変更をすべてのエッジロケーションに伝達する必要があるため、この更新が完了してディストリビューションを**削除**できるようになるまでに数分かかることがあります。

1. 無効になっているディストリビューションを削除するには、次の手順を実行します。

   1. 削除するディストリビューションの ID の横にあるチェックボックスをオンにします。

   1. **削除** を選択し、**削除** を選択して確認します。

### DNS レコードの削除
<a name="cf-s3-step9-delete-dns"></a>

ドメインのパブリックホストゾーン (DNS レコードを含む) を削除する場合は、*Amazon Route 53 デベロッパーガイド*の [カスタムドメインのパブリックホストゾーンの削除](#cf-s3-step9-delete-hosted-zone) を参照してください。　 [ステップ 6](#cf-s3-step6) で作成された DNS レコードを削除するだけの場合は、次の操作を行います。

1. AWS マネジメントコンソール にサインインし、Route 53 コンソール ([https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)) を開きます。

1. 左のナビゲーションペインで **[ホストゾーン]** を選択します。

1. **ホストゾーン** ページの [前提条件](#cf-s3-prerequisites) で Route 53 が作成したホストゾーンの名前を 選択します (例えば、**example.com**)。

1. レコードのリストで、削除するレコード ([ステップ 6](#cf-s3-step6) で作成したレコード) の横にあるチェックボックスをオンにします。
**注記**  
[**タイプ**] の値が [**NS**] または [**SOA**] のレコードを削除することはできません。

1. [**レコードセットの削除**] を選択します。

1. 削除を確認するには、**[削除]** を選択します。

   レコードの変更が Route 53 DNS サーバーに伝達されるまでにしばらく時間がかかります。現在、変更が反映されたことを確認するには、[GetChange](https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html) API アクションを使用する方法しかありません。通常、変更は 60 秒以内にすべての Route 53 ネームサーバーに伝播されます。

### カスタムドメインのパブリックホストゾーンの削除
<a name="cf-s3-step9-delete-hosted-zone"></a>

**警告**  
ドメイン登録は維持するものの、ウェブサイトやウェブアプリケーションへのインターネットトラフィックのルーティングを停止する場合、ホストゾーンを削除する代わりに、ホストゾーン (上記) 内のレコードを削除することをお勧めします。  
さらに、ホストゾーンを削除すると、他のユーザーがお客様のドメイン名を使用してドメインを使って自分のリソースにトラフィックをルーティングする可能性があります。  
さらに、ホストゾーンを削除した場合、復元することはできません。新しいホストゾーンを作成して、ドメイン登録のネームサーバーを更新する必要があります。更新が有効になるには、最大 48 時間かかることがあります。  
ドメインをインターネット上で利用できなくするには、DNS サービスを無料の DNS サービスに移行し、Route 53 のホストゾーンを削除することをお勧めします。これにより、今後 DNS クエリが誤ってルーティングされることを防ぐことができます。  
ドメインが Route 53 に登録されている場合に、Route 53 ネームサーバーを新しい DNS サービスのネームサーバーで置き換える情報については、*Amazon Route 53 デベロッパーガイド*で、[ドメインのネームサーバーとグルーレコードの追加または変更](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-name-servers-glue-records.html)を参照してください。
ドメインが他のレジストラに登録されている場合、レジストラが提供する方法を使用してドメインのネームサーバーを変更します。
サブドメイン (`www.example.com`) のホストゾーンを削除する場合は、ドメイン (`example.com`) のネームサーバーを変更する必要はありません。

1. AWS マネジメントコンソール にサインインし、Route 53 コンソール ([https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)) を開きます。

1. 左のナビゲーションペインで **[ホストゾーン]** を選択します。

1. [**ホストゾーン**] ページで、削除するホストゾーンの名前を選択します。

1. ホストゾーンの [**レコード**] タブで、削除するホストゾーンに **NS** レコードと **SOA** レコードのみが含まれていることを確認します。

   他のレコードが含まれている場合は、それらを削除します。

   ホストゾーンでサブドメインの NS レコードを作成した場合は、それらのレコードも削除します。

1. ホストゾーンの **DNSSEC 署名** タブで、DNSSEC 署名が有効になっている場合は無効にします。詳細については、「*Amazon Route 53 デベロッパーガイド*」の「[DNSSEC 署名の無効](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-disable.html)」を参照してください。

1. ホストゾーンの詳細ページの上部で、[**ゾーンを削除**] を選択します。

1. **delete** と入力して削除を確認し、[**Delete (削除)**] を選択します。

### Route 53 からカスタムドメイン名を削除します。
<a name="cf-s3-step9-delete-domain"></a>

最上位ドメイン (TLD) では、必要がなくなった登録を削除できます。登録が期限切れになる前に Route 53 からドメイン名登録を削除した場合でも、登録料は AWS から払い戻しされません。詳細については、*Amazon Route 53 デベロッパーガイド*の「[ドメイン名の登録を削除する](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-delete.html)」を参照してください。

**重要**  
AWS アカウント 間でドメインを移管する場合や、他のレジストラにドメインを移管する場合は、ドメインを削除せずにすぐに登録が予測されます。代わりに、「*Amazon Route 53 デベロッパーガイド*」で該当するドキュメントを参照してください。  
[異なる AWS アカウント へのドメインの移管](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-between-aws-accounts.html)
[Amazon Route 53 から別のレジストラへのドメインの移行](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-from-route-53.html)

### S3 ソースバケットの元の動画を削除する。
<a name="cf-s3-step9-delete-video"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[バケット]** を選択します。

1. [**バケット名**] リストで、[ステップ 2](#cf-s3-step2) で動画をアップロードしたバケットの名前を選択します (例えば、**tutorial-bucket**)。

1. **オブジェクト** タブで、削除するオブジェクトの名前の左にあるチェックボックスをオンにします (例えば、`sample.mp4`)。

1. **[削除]** を選択します。

1. [**オブジェクトを完全に削除しますか?**] で、**permanently delete** と入力し、このオブジェクトを削除することを確定します。

1. **オブジェクトの削除** を選択します。

### S3 ソースバケットを削除する
<a name="cf-s3-step9-delete-bucket"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[バケット]** を選択します。

1. [**バケット**] リストで、[ステップ 1](#cf-s3-step1) で作成したバケットの名前の横にあるオプションボタンを選択します (例えば、**tutorial-bucket**)。

1. **[削除]** を選択します。

1. **[バケットの削除]** ページで、テキストフィールドにバケット名を入力することでバケットを削除することを確認し、**[バケットを削除]** を選択します。

## 次のステップ
<a name="cf-s3-next-steps"></a>

このチュートリアルを完了すると、次の関連するユースケースをさらに調べることができます。
+ CloudFront ディストリビューションでこれらの動画をホストする前に、特定のテレビや接続されたデバイスで必要なストリーミング形式に S3 動画をトランスコードします。

  Amazon S3 バッチオペレーション、AWS Lambda、および AWS Elemental MediaConvert を使用して、動画のコレクションをさまざまな出力メディア形式にバッチトランスコードする方法の詳細については、「[チュートリアル: S3 バッチオペレーションを使用した動画のバッチトランスコーディング](tutorial-s3-batchops-lambda-mediaconvert-video.md)」を参照してください。
+ CloudFront と Route 53 を使用して、画像、オーディオ、モーショングラフィックス、スタイルシート、HTML、JavaScript、React アプリなど、S3 に保存されている他のオブジェクトをホストします。

  例については、「[チュートリアル: Route 53 に登録されたカスタムドメインを使用した静的ウェブサイトの設定](website-hosting-custom-domain-walkthrough.md)」および「[Amazon CloudFront によるウェブサイトの高速化](website-hosting-cloudfront-walkthrough.md)」を参照してください。
+ [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration) を使用して、高速かつ安全なファイル転送を設定します。転送アクセラレーションを使用すると、S3 バケットへの動画のアップロードを高速化して、大きな動画の長距離転送を行うことができます。Transfer Acceleration は、CloudFront のグローバルに分散したエッジロケーションや AWS バックボーンネットワークを経由してトラフィックをルーティングすることで、転送パフォーマンスを向上させます。また、ネットワークプロトコルの最適化も利用します。詳細については、「[Amazon S3 Transfer Acceleration を使用した高速かつ安全なファイル転送の設定](transfer-acceleration.md)」を参照してください。

# チュートリアル: Amazon S3 での静的ウェブサイトの設定
<a name="HostingWebsiteOnS3Setup"></a>

**重要**  
Amazon S3 では、Amazon S3 内のすべてのバケットの基本レベルの暗号化として、Amazon S3 が管理するキー (SSE-S3) によるサーバー側の暗号化が適用されるようになりました。2023 年 1 月 5 日以降、Amazon S3 にアップロードされるすべての新しいオブジェクトは、追加費用なしで、パフォーマンスに影響を与えずに自動的に暗号化されます。S3 バケットのデフォルト暗号化設定と新しいオブジェクトのアップロードのための自動暗号化ステータスは、CloudTrail ログ、S3 インベントリ、S3 ストレージレンズ、Amazon S3 コンソール、および AWS CLI と AWS SDK の追加の Amazon S3 API レスポンスヘッダーとして利用できるようになりました。詳細については、「[デフォルト暗号化に関するよくある質問](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html)」を参照してください。

Amazon S3 バケットは、ウェブサイトと同じように機能するように設定できます。この例では、Amazon S3 上でウェブサイトをホスティングするステップを説明します。

**重要**  
次のチュートリアルでは、[パブリックアクセスをブロック] を無効にする必要があります。[パブリックアクセスをブロック] 設定は、有効にしておくことをお勧めします。4 つすべての [パブリックアクセスをブロック] 設定を有効にしたまま、静的ウェブサイトをホストする場合は、Amazon CloudFront のオリジンアクセスコントロール (OAC) を使用できます。Amazon CloudFront は、セキュアな静的ウェブサイトをセットアップするために必要な機能を提供します。Amazon S3 静的ウェブサイトは、HTTP エンドポイントのみをサポートしています。Amazon CloudFront は、耐久性に優れた Amazon S3 のあるストレージを使用し、HTTPS などの、追加のセキュリティヘッダーを提供します。HTTPS では、通常の HTTP リクエストを暗号化し、一般的なサイバー攻撃から保護することで、セキュリティが強化されます。詳細については、**「Amazon CloudFront デベロッパーガイド」の「[安全な静的ウェブサイトの使用開始](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html)」を参照してください。

**Topics**
+ [ステップ 1: バケットを作成する](#step1-create-bucket-config-as-website)
+ [ステップ 2: 静的ウェブサイトホスティングを有効にする](#step2-create-bucket-config-as-website)
+ [ステップ 3: パブリックアクセスブロック設定を編集する](#step3-edit-block-public-access)
+ [ステップ 4: バケットの内容の公開を許可するバケットポリシーを追加する](#step4-add-bucket-policy-make-content-public)
+ [ステップ 5: インデックスドキュメントを設定する](#step5-upload-index-doc)
+ [ステップ 6: エラードキュメントの設定](#step6-upload-error-doc)
+ [ステップ 7: ウェブサイトエンドポイントをテストする](#step7-test-web-site)
+ [ステップ 8: クリーンアップする](#getting-started-cleanup-s3-website-overview)

## ステップ 1: バケットを作成する
<a name="step1-create-bucket-config-as-website"></a>

以下の手順では、ウェブサイトホスティングにバケットを作成する方法の概要を説明します。バケットの作成に関するステップバイステップの方法は、「[汎用バケットの作成](create-bucket-overview.md)」を参照してください。

**バケットを作成するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. [**Create bucket**] (バケットの作成) をクリックします。

1. [**バケット名**] (**example.com** など) を入力します。

1. バケットを作成するリージョンを選択します。

   レイテンシーとコストを最小限に抑えるため、または規制要件に対処するために、最寄りのリージョンを選択します。選択したリージョンによって、Amazon S3 ウェブサイトエンドポイントが決まります。詳細については、「[ウェブサイトエンドポイント](WebsiteEndpoints.md)」を参照してください。

1. デフォルト設定をそのまま使用してバケットを作成するには、[**作成**] を選択します。

## ステップ 2: 静的ウェブサイトホスティングを有効にする
<a name="step2-create-bucket-config-as-website"></a>

バケットを作成したら、バケットの静的ウェブサイトホスティングを有効にできます。新しいバケットを作成することも、既存のバケットを使用することもできます。

**静的ウェブサイトホスティングを有効にするには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、静的ウェブサイトホスティングを有効にするバケットの名前を選択します。

1. **[プロパティ]** を選択します。

1. [**静的ウェブサイトホスティング**] で [**編集**] を選択します。

1. [**このバケットを使用してウェブサイトをホストする**] を選択します。

1. [**静的ウェブサイトホスティング**] で [**有効化**] を選択します。

1. **[インデックスドキュメント]** に、インデックスドキュメントのファイル名 (通常は `index.html`) を入力します。

   インデックスドキュメント名の大文字と小文字は区別されます。この名前は、S3 バケットにアップロードする HTML インデックスドキュメントのファイル名と正確に一致する必要があります。バケットをウェブサイトホスティング用に設定するときは、インデックスドキュメントを指定する必要があります。Amazon S3 からこのインデックスドキュメントが返されるのは、ルートドメインまたはサブフォルダに対するリクエストが行われたときです。詳細については、「[インデックスドキュメントの設定](IndexDocumentSupport.md)」を参照してください。

1. 4XX クラスエラーに関する独自のカスタムエラードキュメントを指定する場合は、[**エラードキュメント**] にカスタムエラードキュメントのファイル名を入力します。

   エラードキュメント名の大文字と小文字は区別されます。この名前は、S3 バケットにアップロードする HTML エラードキュメントのファイル名と正確に一致する必要があります。カスタムエラードキュメントを指定しない場合、エラーが発生すると、Amazon S3 からデフォルトの HTML エラードキュメントが返されます。詳細については、「[カスタムエラードキュメントの設定](CustomErrorDocSupport.md)」を参照してください。

1. (オプション) 高度なリダイレクトツールを指定する場合は、**[Rredirection rules]** (リダイレクトルール) に、JSON を入力してルールを記述します。

   例えば、条件に応じてリクエストのルーティング先を変えることができます。この条件として使用できるのは、リクエストの中の特定のオブジェクトキー名またはプレフィックスです。詳細については、「[高度な条件付きリダイレクトを使用するようにリダイレクトルールを設定する](how-to-page-redirect.md#advanced-conditional-redirects)」を参照してください。

1. [**Save changes**] (変更の保存) をクリックします。

   Amazon S3 では、バケットの静的ウェブサイトホスティングを有効にします。ページの下部の [**静的ウェブサイトホスティング**] の下に、バケットのウェブサイトエンドポイントが表示されます。

1. [**静的 ウェブサイトホスティング**] の下の**エンドポイント**を書き留めます。

   [**Endpoint (エンドポイント)**] は、バケットの Amazon S3 ウェブサイトエンドポイントです。バケットを静的ウェブサイトとして設定すると、このエンドポイントを使用してウェブサイトをテストできます。

## ステップ 3: パブリックアクセスブロック設定を編集する
<a name="step3-edit-block-public-access"></a>

デフォルトでは、Amazon S3 はアカウントとバケットへのパブリックアクセスをブロックします。バケットを使用して静的ウェブサイトをホストする場合は、以下のステップを使用して、パブリックアクセスブロック設定を編集できます。

**警告**  
このステップを完了する前に「[Amazon S3 ストレージへのパブリックアクセスのブロック](access-control-block-public-access.md)」を読んで、パブリックアクセスを許可することに伴うリスクを理解し、了承してください。パブリックアクセスブロック設定をオフにしてバケットをパブリックにすると、インターネット上のだれでもバケットにアクセスできるようになります。バケットへのすべてのパブリックアクセスをブロックすることをお勧めします。

1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. 静的ウェブサイトとして設定されたバケットの名前を選択します。

1. [**Permissions (アクセス許可)**] を選択します。

1. **[ブロックパブリックアクセス (バケット設定)]** で **[編集]** を選択します。

1. [**Block *all* public access (すべてのパブリックアクセスをブロックする)**] をクリアし、[**Save changes (変更の保存)**] を選択します。  
![\[バケットのブロックパブリックアクセス設定を示す Amazon S3 コンソール。\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   Amazon S3 で、バケットのブロックパブリックアクセス設定がオフになります。パブリックな静的ウェブサイトを作成するには、バケットポリシーを追加する前に、アカウントの[ブロックパブリックアクセス設定を編集する](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html)必要があります。アカウントのブロックパブリックアクセス設定が現在有効になっている場合は、**[ブロックパブリックアクセス (バケット設定)]** の下にメモが表示されます。

## ステップ 4: バケットの内容の公開を許可するバケットポリシーを追加する
<a name="step4-add-bucket-policy-make-content-public"></a>

S3 のパブリックアクセスブロック設定を編集した後で、バケットへのパブリック読み取りアクセスを許可するバケットポリシーを追加できます。パブリック読み取りアクセスを許可すると、インターネット上のだれでもバケットにアクセスできるようになります。

**重要**  
次のポリシーは、単なる例として、バケットのコンテンツへのフルアクセスを許可します。このステップに進む前に、「[Amazon S3 バケット内のファイルを保護するにはどうすればよいですか?](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/)」を確認して、S3 バケット内のファイルを保護するためのベストプラクティスと、パブリックアクセスの許可に伴うリスクを理解してください。

1. [**バケット**] で、バケットの名前を選択します。

1. [**Permissions (アクセス許可)**] を選択します。

1. [**Bucket Policy (バケットポリシー)**] で [**編集**] を選択します。

1. ウェブサイトのパブリック読み取りアクセスを許可するには、次のバケットポリシーをコピーし、[**Bucket policy editor (バケットポリシーエディター)**] に貼り付けます。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PublicReadGetObject",
               "Effect": "Allow",
               "Principal": "*",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::Bucket-Name/*"
               ]
           }
       ]
   }
   ```

1. `Resource` をバケット名に更新します。

   前述のバケットポリシーの例では、*Bucket-Name* はバケット名のプレースホルダーです。このバケットポリシーを独自のバケットで使用するには、バケット名に合わせてこの名前を更新する必要があります。

1. [**Save changes**] (変更の保存) をクリックします。

   バケットポリシーが正常に追加されたことを示すメッセージが表示されます。

   `Policy has invalid resource` というエラーが表示された場合は、バケットポリシー内のバケット名がバケット名と一致していることを確認します。バケットポリシーの追加については、「[S3 バケットポリシーを追加する方法](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)」を参照してください。

   エラーメッセージが表示され、バケットポリシーを保存できない場合は、アカウントとバケットの [パブリックアクセスをブロックする] 設定をチェックして、バケットへのパブリックアクセスを許可していることを確認します。

## ステップ 5: インデックスドキュメントを設定する
<a name="step5-upload-index-doc"></a>

バケットに対して静的ウェブサイトホスティングを有効にする場合は、インデックスドキュメントの名前 (**index.html** など) を入力します。バケットに対して静的ウェブサイトホスティングを有効にした後、インデックスドキュメント名を含む HTML ファイルをバケットにアップロードします。

**インデックスドキュメントを設定するには**

1. `index.html` ファイルを作成します。

   `index.html` ファイルがない場合は、以下の HTML を使用して作成できます。

   ```
   <html xmlns="http://www.w3.org/1999/xhtml" >
   <head>
       <title>My Website Home Page</title>
   </head>
   <body>
     <h1>Welcome to my website</h1>
     <p>Now hosted on Amazon S3!</p>
   </body>
   </html>
   ```

1. インデックスファイルをローカルに保存します。

   インデックスドキュメントファイル名は、[**静的ウェブサイトホスティング**] ダイアログボックスで入力したインデックスドキュメント名と正確に一致する必要があります。インデックスドキュメント名では、大文字と小文字が区別されます。例えば、**[静的ウェブサイトホスティング]** ダイアログボックスの **[インデックスドキュメント]** 名に「`index.html`」と入力する場合、インデックスドキュメントファイル名も `Index.html` ではなく `index.html` である必要があります。

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、静的ウェブサイトホスティングに使用するバケットの名前を選択します。

1. バケットに対して静的ウェブサイトホスティングを有効にし、インデックスドキュメントの正確な名前 (`index.html` など) を入力します。詳細については、「[ウェブサイトのホスティングの有効化](EnableWebsiteHosting.md)」を参照してください。

   静的ウェブサイトホスティングを有効にしたら、ステップ 6 に進みます。

1. インデックスドキュメントをバケットにアップロードするには、以下のいずれかを実行します。
   + インデックスファイルをコンソールバケットのリストにドラッグアンドドロップします。
   + [**Upload**] を選択し、プロンプトに従ってインデックスファイルを選択してアップロードします。

   手順については、「[オブジェクトのアップロード](upload-objects.md)」を参照してください。

1. (オプション) 他のウェブサイトコンテンツをバケットにアップロードします。

## ステップ 6: エラードキュメントの設定
<a name="step6-upload-error-doc"></a>

バケットに対して静的ウェブサイトホスティングを有効にするときは、エラードキュメントの名前 (例: **404.html**) を入力します。バケットに対して静的ウェブサイトホスティングを有効にしたら、エラードキュメント名を含む HTML ファイルをバケットにアップロードします。

**エラードキュメントを設定するには**

1. エラードキュメント (例: `404.html`) を作成します。

1. エラードキュメントのファイルをローカルに保存します。

   エラードキュメントの名前は、大文字と小文字を区別し、静的ウェブサイトホスティングを有効にする際に入力した名前と厳密に一致している必要があります。たとえば、[**Static website hosting**] (静的ウェブサイトホスティング) ダイアログボックスの [**Error document**] (エラードキュメント) 名に `404.html` と入力する場合、エラードキュメントのファイル名も `404.html` である必要があります。

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、静的ウェブサイトホスティングに使用するバケットの名前を選択します。

1. バケットに対して静的ウェブサイトホスティングを有効にし、エラードキュメントの正確な名前 (例: `404.html`) を入力します。詳細については、「[ウェブサイトのホスティングの有効化](EnableWebsiteHosting.md)」および「[カスタムエラードキュメントの設定](CustomErrorDocSupport.md)」を参照してください。

   静的ウェブサイトホスティングを有効にしたら、ステップ 6 に進みます。

1. エラードキュメントをバケットにアップロードするには、以下のいずれかを実行します。
   + エラードキュメントファイルをコンソールバケットのリストにドラッグアンドドロップします。
   + [**Upload**] を選択し、プロンプトに従ってインデックスファイルを選択してアップロードします。

   手順については、「[オブジェクトのアップロード](upload-objects.md)」を参照してください。

## ステップ 7: ウェブサイトエンドポイントをテストする
<a name="step7-test-web-site"></a>

バケットに静的ウェブサイトホスティングを設定したら、ウェブサイトエンドポイントをテストできます。

**注記**  
Amazon S3 は、ウェブサイトへの HTTPS アクセスをサポートしていません。HTTPS を使用する場合は、Amazon CloudFront を使用して Amazon S3 でホストされている静的ウェブサイトを提供できます。  
詳細については、「[CloudFront を使用して、Amazon S3 でホストされた静的ウェブサイトを公開するにはどうすればよいですか?](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/)」と「[ビューワーと CloudFront との通信で HTTPS を必須にする](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html)」を参照してください。

1. [**バケット**] で、バケットの名前を選択します。

1. [**プロパティ**] を選択します。

1. ページの下部の [**静的ウェブサイトホスティング**] で、[**Bucket website endpoint (バケットウェブサイトエンドポイント)**] を選択します。

   インデックスドキュメントが別のブラウザウィンドウで開きます。

これで、Amazon S3 でウェブサイトがホスティングされるようになりました。このウェブサイトには、Amazon S3 ウェブサイトエンドポイントの URL を指定してアクセスできます。ただし、作成したウェブサイトのコンテンツを配信するのに、`example.com` などのドメインを使用することもできます。また、Amazon S3 のルートドメインサポートを利用すると、`http://www.example.com` と `http://example.com` のどちらのリクエストでも処理できるようになります。このようにするには、追加のステップが必要です。例については、「[チュートリアル: Route 53 に登録されたカスタムドメインを使用した静的ウェブサイトの設定](website-hosting-custom-domain-walkthrough.md)」を参照してください。

## ステップ 8: クリーンアップする
<a name="getting-started-cleanup-s3-website-overview"></a>

学習のためだけに静的ウェブサイトを作成した場合は、割り当てた AWS リソースを削除して、料金が発生しないようにします。AWS リソースを削除すると、ウェブサイトは使用できなくなります。詳細については、「[汎用バケットの削除](delete-bucket.md)」を参照してください。

# チュートリアル: Route 53 に登録されたカスタムドメインを使用した静的ウェブサイトの設定
<a name="website-hosting-custom-domain-walkthrough"></a>

Amazon S3 で静的ウェブサイトをホスティングするとします。ドメインは Amazon Route 53 で登録済みであり (例: `example.com`)、`http://www.example.com` と `http://example.com` へのリクエストに対しては Amazon S3 からコンテンツを配信するようにします。このチュートリアルでは、静的ウェブサイトをホスティングし、Route 53 に登録されているカスタムドメイン名を持つウェブサイトのリダイレクトを Amazon S3 で作成する方法について説明します。Amazon S3 でホストしようとしている既存のウェブサイトを使ってもよいですし、このチュートリアルで一から始めることもできます。

チュートリアルが完了したら、Amazon CloudFront を使ってウェブサイトのパフォーマンスを向上させることも可能です。詳細については、「[Amazon CloudFront によるウェブサイトの高速化](website-hosting-cloudfront-walkthrough.md)」を参照してください。

**注記**  
Amazon S3 ウェブサイトエンドポイントは HTTPS またはアクセスポイントをサポートしていません。HTTPS を使用する場合は、Amazon CloudFront を使用して Amazon S3 でホストされている静的ウェブサイトを提供できます。  
CloudFront と Amazon S3 でコンテンツを安全にホストする方法のチュートリアルについては、「[チュートリアル: Amazon S3、Amazon CloudFront、Amazon Route 53 を使用したオンデマンドストリーミング動画のホスティング。](tutorial-s3-cloudfront-route53-video-streaming.md)」を参照してください。詳細については、「[CloudFront を使用して、Amazon S3 でホストされた静的ウェブサイトを公開するにはどうすればよいですか?](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/)」と「[ビューワーと CloudFrontとの通信で HTTPS を必須にする](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html)」を参照してください。

**CloudFormation テンプレートを使用した静的ウェブサイトの設定の自動化**  
CloudFormation テンプレートを使用すると、静的ウェブサイトの設定を自動化することができます。CloudFormation テンプレートによって安全な静的ウェブサイトをホストするために必要なコンポーネントが設定されるため、コンポーネントの設定よりもウェブサイトのコンテンツに注力できるようになります。

CloudFormation テンプレートには、以下のコンポーネントが含まれています。
+ Amazon S3 - 静的ウェブサイトをホストする Amazon S3 バケットを作成します。
+ CloudFront - 静的ウェブサイトを高速化するために、CloudFront ディストリビューションを作成します。
+ Lambda@Edge ‐ [Lambda@Edge](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html) を使用して、サーバーのすべてのレスポンスにセキュリティヘッダーを追加します。セキュリティヘッダーは、ウェブサーバーレスポンス内のヘッダーのグループであり、追加のセキュリティ対策を講じるようにウェブブラウザに指示します。詳細については、ブログ記事「[Adding HTTP security headers using Lambda@Edge and Amazon CloudFront](https://aws.amazon.com/blogs/networking-and-content-delivery/adding-http-security-headers-using-lambdaedge-and-amazon-cloudfront/)」を参照してください。

この CloudFormation テンプレートは、ダウンロードして使用することができます。詳細および手順については、*Amazon CloudFront デベロッパーガイド*の「[安全な静的ウェブサイトの使用開始](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html)」を参照してください。

**Topics**
+ [開始する前に](#root-domain-walkthrough-before-you-begin)
+ [ステップ 1: カスタムドメインを Route 53 に登録する](#website-hosting-custom-domain-walkthrough-domain-registry)
+ [ステップ 2: バケットを 2 つ作成する](#root-domain-walkthrough-create-buckets)
+ [ステップ 3: ウェブサイトホスティング用にルートドメインのバケットを設定する](#root-domain-walkthrough-configure-bucket-aswebsite)
+ [ステップ 4: ウェブサイトのリダイレクト用にサブドメインのバケットを設定する](#root-domain-walkthrough-configure-redirect)
+ [ステップ 5: ウェブサイトトラフィックのログ記録を設定する](#root-domain-walkthrough-configure-logging)
+ [ステップ 6: インデックスとウェブサイトのコンテンツをアップロードする](#upload-website-content)
+ [ステップ 7: エラードキュメントのアップロード](#configure-error-document-root-domain)
+ [ステップ 8: S3 のパブリックアクセスのブロック設定を編集する](#root-domain-walkthrough-configure-bucket-permissions)
+ [ステップ 9: バケットポリシーをアタッチする](#add-bucket-policy-root-domain)
+ [ステップ 10: ドメインエンドポイントをテストする](#root-domain-walkthrough-test-website)
+ [ステップ 11: ドメインとサブドメインのエイリアスレコードを追加する](#root-domain-walkthrough-add-record-to-hostedzone)
+ [ステップ 12: ウェブサイトをテストする](#root-domain-testing)
+ [Amazon CloudFront によるウェブサイトの高速化](website-hosting-cloudfront-walkthrough.md)
+ [サンプルリソースのクリーンアップ](getting-started-cleanup.md)

## 開始する前に
<a name="root-domain-walkthrough-before-you-begin"></a>

この例で実行するステップでは、以下のサービスを使用します。

**Amazon Route 53** - Route 53 では、ドメインを登録し、ドメインのインターネットトラフィックをルーティングする先を定義します。以下の例では、Route 53 エイリアスレコードを作成して、ドメイン (`example.com`) とサブドメイン (`www.example.com`) のトラフィックを HTML ファイルが含まれている Amazon S3 バケットにルーティングする方法を示します。

**Amazon S3** - Amazon S3 を使用して、バケットを作成したり、サンプルウェブサイトページをアップロードしたり、全員がコンテンツを表示できるようアクセス許可を設定したりします。また、ウェブサイトホスティング用にバケットを設定することもできます。

## ステップ 1: カスタムドメインを Route 53 に登録する
<a name="website-hosting-custom-domain-walkthrough-domain-registry"></a>

登録済みドメイン名 (`example.com` など) がない場合は、Route 53 でドメイン名を登録します。詳細については、*Amazon Route 53 デベロッパーガイド*の「[新しいドメインの登録](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html)」を参照してください。ドメイン名を登録したら、Amazon S3 バケットを作成してウェブサイトのホスティング用に設定できます。

## ステップ 2: バケットを 2 つ作成する
<a name="root-domain-walkthrough-create-buckets"></a>

ルートドメインとサブドメインからの両方のリクエストをサポートするには、2 つのバケットを作成します。
+ **ドメインバケット** ‐ `example.com`
+ **サブドメインバケット** ‐ `www.example.com` 

これらのバケット名はドメイン名と厳密に一致している必要があります。この例では、ドメイン名は `example.com` です。コンテンツをルートドメインバケット (`example.com`) からホストします。サブドメインバケットのリダイレクトリクエストを作成します (`www.example.com`)。他のユーザーがブラウザに `www.example.com` を入力すると、`example.com` にリダイレクトされ、その名前で Amazon S3 バケットにホストされているコンテンツが表示されます。

**バケットをウェブサイトホスティング用に作成するには**

以下の手順では、ウェブサイトホスティングにバケットを作成する方法の概要を説明します。バケットの作成に関するステップバイステップの方法は、「[汎用バケットの作成](create-bucket-overview.md)」を参照してください。

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. ルートドメインのバケットを作成します。

   1. ページ上部にあるナビゲーションバーで、現在表示されている AWS リージョン の名前をクリックします。次に、バケットを作成するリージョンを選択します。
**注記**  
レイテンシーとコストを最小化するため、さらに規制条件に対応するために、最寄りのリージョンを選択します。明示的に別のリージョンに移動する場合を除き、特定のリージョンに保管されたオブジェクトは、そのリージョンから移動されることはありません。Amazon S3 AWS リージョン のリストについては、**「Amazon Web Services 全般のリファレンス」の「[AWS のサービス エンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)」を参照してください。

   1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

   1. [**Create bucket (バケットの作成)**] を選択します。**[バケットの作成]** ページが開きます。

   1. [**バケット名**] (**example.com** など) を入力します。

   1. バケットを作成するリージョンを選択します。

      レイテンシーとコストを最小限に抑えるため、または規制要件に対処するために、最寄りのリージョンを選択します。選択したリージョンによって、Amazon S3 ウェブサイトエンドポイントが決まります。詳細については、「[ウェブサイトエンドポイント](WebsiteEndpoints.md)」を参照してください。

   1. デフォルト設定をそのまま使用してバケットを作成するには、[**作成**] を選択します。

1. サブドメインのバケットを作成します。

   1. [**Create bucket**] (バケットの作成) をクリックします。

   1. [**バケット名**] (**www.example.com** など) を入力します。

   1. バケットを作成するリージョンを選択します。

      レイテンシーとコストを最小限に抑えるため、または規制要件に対処するために、最寄りのリージョンを選択します。選択したリージョンによって、Amazon S3 ウェブサイトエンドポイントが決まります。詳細については、「[ウェブサイトエンドポイント](WebsiteEndpoints.md)」を参照してください。

   1. デフォルト設定をそのまま使用してバケットを作成するには、[**作成**] を選択します。

次のステップでは、ウェブサイトホスティング用に `example.com` を設定します。

## ステップ 3: ウェブサイトホスティング用にルートドメインのバケットを設定する
<a name="root-domain-walkthrough-configure-bucket-aswebsite"></a>

このステップでは、ルートドメインのバケット (`example.com`) をウェブサイトとして設定します。このバケットには、ウェブサイトのコンテンツが含まれます。バケットをウェブサイトホスティング用に設定すると、そのウェブサイトには [ウェブサイトエンドポイント](WebsiteEndpoints.md) を使用してアクセスできるようになります。

**静的ウェブサイトホスティングを有効にするには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、静的ウェブサイトホスティングを有効にするバケットの名前を選択します。

1. **[プロパティ]** を選択します。

1. [**静的ウェブサイトホスティング**] で [**編集**] を選択します。

1. [**このバケットを使用してウェブサイトをホストする**] を選択します。

1. [**静的ウェブサイトホスティング**] で [**有効化**] を選択します。

1. **[インデックスドキュメント]** に、インデックスドキュメントのファイル名 (通常は `index.html`) を入力します。

   インデックスドキュメント名の大文字と小文字は区別されます。この名前は、S3 バケットにアップロードする HTML インデックスドキュメントのファイル名と正確に一致する必要があります。バケットをウェブサイトホスティング用に設定するときは、インデックスドキュメントを指定する必要があります。Amazon S3 からこのインデックスドキュメントが返されるのは、ルートドメインまたはサブフォルダに対するリクエストが行われたときです。詳細については、「[インデックスドキュメントの設定](IndexDocumentSupport.md)」を参照してください。

1. 4XX クラスエラーに関する独自のカスタムエラードキュメントを指定する場合は、[**エラードキュメント**] にカスタムエラードキュメントのファイル名を入力します。

   エラードキュメント名の大文字と小文字は区別されます。この名前は、S3 バケットにアップロードする HTML エラードキュメントのファイル名と正確に一致する必要があります。カスタムエラードキュメントを指定しない場合、エラーが発生すると、Amazon S3 からデフォルトの HTML エラードキュメントが返されます。詳細については、「[カスタムエラードキュメントの設定](CustomErrorDocSupport.md)」を参照してください。

1. (オプション) 高度なリダイレクトツールを指定する場合は、**[Rredirection rules]** (リダイレクトルール) に、JSON を入力してルールを記述します。

   例えば、条件に応じてリクエストのルーティング先を変えることができます。この条件として使用できるのは、リクエストの中の特定のオブジェクトキー名またはプレフィックスです。詳細については、「[高度な条件付きリダイレクトを使用するようにリダイレクトルールを設定する](how-to-page-redirect.md#advanced-conditional-redirects)」を参照してください。

1. [**Save changes**] (変更の保存) をクリックします。

   Amazon S3 では、バケットの静的ウェブサイトホスティングを有効にします。ページの下部の [**静的ウェブサイトホスティング**] の下に、バケットのウェブサイトエンドポイントが表示されます。

1. [**静的 ウェブサイトホスティング**] の下の**エンドポイント**を書き留めます。

   [**Endpoint (エンドポイント)**] は、バケットの Amazon S3 ウェブサイトエンドポイントです。バケットを静的ウェブサイトとして設定すると、このエンドポイントを使用してウェブサイトをテストできます。

[パブリックアクセスのブロック設定を編集し](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html#root-domain-walkthrough-configure-bucket-permissions)、パブリック読み取りアクセスを許可する[バケットポリシーを追加](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-custom-domain-walkthrough.html#add-bucket-policy-root-domain)したら、ウェブサイトエンドポイントを使用してウェブサイトにアクセスできます。

次のステップで、リクエストをドメイン (`www.example.com`) にリダイレクトするように、サブドメイン (`example.com`) を設定します。

## ステップ 4: ウェブサイトのリダイレクト用にサブドメインのバケットを設定する
<a name="root-domain-walkthrough-configure-redirect"></a>

ウェブサイトホスティング用にルートドメインのバケットを設定したら、このドメインにすべてのリクエストをリダイレクトするように、サブドメインのバケットを設定できます。この例では `www.example.com` のすべてのリクエストが `example.com` にリダイレクトされます。

**リダイレクトリクエストを設定するには**

1. Amazon S3 コンソールの **[汎用バケット]** リストで、サブドメインのバケット名 (この例では `www.example.com`) を選択します。

1. **[プロパティ]** を選択します。

1. [**静的ウェブサイトホスティング**] で [**編集**] を選択します。

1. [**Redirect requests for an object (オブジェクトのリクエストをリダイレクト)**] を選択します。

1. [**Target bucket (ターゲットバケット)**] ボックスに、ルートドメイン (**example.com** など) を入力します。

1. [**Protocol (プロトコル)**] で、[**http**] を選択します。

1. [**Save changes**] (変更の保存) をクリックします。

## ステップ 5: ウェブサイトトラフィックのログ記録を設定する
<a name="root-domain-walkthrough-configure-logging"></a>

ウェブサイトにアクセスする閲覧者の数を追跡するには、オプションでルートドメインのバケットのログ記録を有効にできます。詳細については、「[サーバーアクセスログによるリクエストのログ記録](ServerLogs.md)」を参照してください。Amazon CloudFront を使用してウェブサイトを高速化する場合は、CloudFront のログ記録を使用することもできます。

**ルートドメインバケット用のサーバーアクセスのログ記録を有効にするには**

1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. 静的ウェブサイトとして設定しているバケットを作成したのと同じリージョンで、ログ記録用のバケットを作成します (例: `logs.example.com`)。

1. サーバアクセスのログを記録するログファイル用のフォルダを作成します (例: `logs`)。

1. (オプション) CloudFront を使用してウェブサイトのパフォーマンスを向上させる場合は、CloudFront ログファイル用のフォルダを作成します (例: `cdn`)。
**重要**  
ディストリビューションを作成または更新して CloudFront のログを有効にすると、CloudFront はバケットのアクセスコントロールリスト (ACL) を更新して、バケットにログを書き込む `awslogsdelivery` アクセス許可を `FULL_CONTROL` アカウントに付与します。詳細については、**「Amazon CloudFront デベロッパーガイド」の「[標準ログ記録の設定とログファイルへのアクセスに必要なアクセス許可](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#AccessLogsBucketAndFileOwnership)」を参照してください。ログを保存するバケットが S3 オブジェクト所有権のバケット所有者の強制設定を使用して ACL を無効にすると、CloudFront はバケットにログを書き込むことができません。詳細については、「[オブジェクトの所有権の制御とバケットの ACL の無効化。](about-object-ownership.md)」を参照してください。

1. [**Bucket (バケット)**] リストで、ルートドメインのバケットを選択します。

1. [**プロパティ**] を選択します。

1. [**Server access logging (サーバーアクセスのログ記録)**] で、[**Edit (編集)**] を選択します。

1. [**Enable**] を選択します。

1. [**Target bucket (ターゲットバケット)**] で、サーバーアクセスログのバケットとフォルダの宛先を選択します。
   + フォルダとバケットの場所を参照します。

     1. [**Browse S3(S3 の参照)**] を選択します。

     1. バケット名を選択し、ログフォルダを選択します。

     1. [**Choose path (パスの選択)**] を選択します。
   + S3 バケットパスを入力します (例: `s3://logs.example.com/logs/`)。

1. [**Save changes**] (変更の保存) をクリックします。

   ログバケットで、ログにアクセスできるようになりました。Amazon S3 は 2 時間おきにログバケットにウェブサイトアクセスログを書き込みます。

## ステップ 6: インデックスとウェブサイトのコンテンツをアップロードする
<a name="upload-website-content"></a>

このステップでは、インデックスドキュメントとオプションのウェブサイトコンテンツをルートドメインのバケットにアップロードします。

バケットに対して静的ウェブサイトホスティングを有効にする場合は、インデックスドキュメントの名前 (**index.html** など) を入力します。バケットに対して静的ウェブサイトホスティングを有効にした後、インデックスドキュメント名を含む HTML ファイルをバケットにアップロードします。

**インデックスドキュメントを設定するには**

1. `index.html` ファイルを作成します。

   `index.html` ファイルがない場合は、以下の HTML を使用して作成できます。

   ```
   <html xmlns="http://www.w3.org/1999/xhtml" >
   <head>
       <title>My Website Home Page</title>
   </head>
   <body>
     <h1>Welcome to my website</h1>
     <p>Now hosted on Amazon S3!</p>
   </body>
   </html>
   ```

1. インデックスファイルをローカルに保存します。

   インデックスドキュメントファイル名は、[**静的ウェブサイトホスティング**] ダイアログボックスで入力したインデックスドキュメント名と正確に一致する必要があります。インデックスドキュメント名では、大文字と小文字が区別されます。例えば、**[静的ウェブサイトホスティング]** ダイアログボックスの **[インデックスドキュメント]** 名に「`index.html`」と入力する場合、インデックスドキュメントファイル名も `Index.html` ではなく `index.html` である必要があります。

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、静的ウェブサイトホスティングに使用するバケットの名前を選択します。

1. バケットに対して静的ウェブサイトホスティングを有効にし、インデックスドキュメントの正確な名前 (`index.html` など) を入力します。詳細については、「[ウェブサイトのホスティングの有効化](EnableWebsiteHosting.md)」を参照してください。

   静的ウェブサイトホスティングを有効にしたら、ステップ 6 に進みます。

1. インデックスドキュメントをバケットにアップロードするには、以下のいずれかを実行します。
   + インデックスファイルをコンソールバケットのリストにドラッグアンドドロップします。
   + [**Upload**] を選択し、プロンプトに従ってインデックスファイルを選択してアップロードします。

   手順については、「[オブジェクトのアップロード](upload-objects.md)」を参照してください。

1. (オプション) 他のウェブサイトコンテンツをバケットにアップロードします。

## ステップ 7: エラードキュメントのアップロード
<a name="configure-error-document-root-domain"></a>

バケットに対して静的ウェブサイトホスティングを有効にするときは、エラードキュメントの名前 (例: **404.html**) を入力します。バケットに対して静的ウェブサイトホスティングを有効にしたら、エラードキュメント名を含む HTML ファイルをバケットにアップロードします。

**エラードキュメントを設定するには**

1. エラードキュメント (例: `404.html`) を作成します。

1. エラードキュメントのファイルをローカルに保存します。

   エラードキュメントの名前は、大文字と小文字を区別し、静的ウェブサイトホスティングを有効にする際に入力した名前と厳密に一致している必要があります。たとえば、[**Static website hosting**] (静的ウェブサイトホスティング) ダイアログボックスの [**Error document**] (エラードキュメント) 名に `404.html` と入力する場合、エラードキュメントのファイル名も `404.html` である必要があります。

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、静的ウェブサイトホスティングに使用するバケットの名前を選択します。

1. バケットに対して静的ウェブサイトホスティングを有効にし、エラードキュメントの正確な名前 (例: `404.html`) を入力します。詳細については、「[ウェブサイトのホスティングの有効化](EnableWebsiteHosting.md)」および「[カスタムエラードキュメントの設定](CustomErrorDocSupport.md)」を参照してください。

   静的ウェブサイトホスティングを有効にしたら、ステップ 6 に進みます。

1. エラードキュメントをバケットにアップロードするには、以下のいずれかを実行します。
   + エラードキュメントファイルをコンソールバケットのリストにドラッグアンドドロップします。
   + [**Upload**] を選択し、プロンプトに従ってインデックスファイルを選択してアップロードします。

   手順については、「[オブジェクトのアップロード](upload-objects.md)」を参照してください。

## ステップ 8: S3 のパブリックアクセスのブロック設定を編集する
<a name="root-domain-walkthrough-configure-bucket-permissions"></a>

この例では、ドメインバケット (`example.com`) のパブリックアクセスブロック設定を編集して、パブリックアクセスを許可します。

デフォルトでは、Amazon S3 はアカウントとバケットへのパブリックアクセスをブロックします。バケットを使用して静的ウェブサイトをホストする場合は、以下のステップを使用して、パブリックアクセスブロック設定を編集できます。

**警告**  
このステップを完了する前に「[Amazon S3 ストレージへのパブリックアクセスのブロック](access-control-block-public-access.md)」を読んで、パブリックアクセスを許可することに伴うリスクを理解し、了承してください。パブリックアクセスブロック設定をオフにしてバケットをパブリックにすると、インターネット上のだれでもバケットにアクセスできるようになります。バケットへのすべてのパブリックアクセスをブロックすることをお勧めします。

1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. 静的ウェブサイトとして設定されたバケットの名前を選択します。

1. [**Permissions (アクセス許可)**] を選択します。

1. **[ブロックパブリックアクセス (バケット設定)]** で **[編集]** を選択します。

1. [**Block *all* public access (すべてのパブリックアクセスをブロックする)**] をクリアし、[**Save changes (変更の保存)**] を選択します。  
![\[バケットのブロックパブリックアクセス設定を示す Amazon S3 コンソール。\]](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/images/edit-public-access-clear.png)

   Amazon S3 で、バケットのブロックパブリックアクセス設定がオフになります。パブリックな静的ウェブサイトを作成するには、バケットポリシーを追加する前に、アカウントの[ブロックパブリックアクセス設定を編集する](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html)必要があります。アカウントのブロックパブリックアクセス設定が現在有効になっている場合は、**[ブロックパブリックアクセス (バケット設定)]** の下にメモが表示されます。

## ステップ 9: バケットポリシーをアタッチする
<a name="add-bucket-policy-root-domain"></a>

この例では、バケットポリシーをドメインバケット (`example.com`) にアタッチして、パブリック読み取りアクセスを許可します。例えば、バケットポリシーの例の *Bucket-Name* は、ドメインバケットの名前 (例: `example.com`) に置き換えます。

S3 のパブリックアクセスブロック設定を編集した後で、バケットへのパブリック読み取りアクセスを許可するバケットポリシーを追加できます。パブリック読み取りアクセスを許可すると、インターネット上のだれでもバケットにアクセスできるようになります。

**重要**  
次のポリシーは、単なる例として、バケットのコンテンツへのフルアクセスを許可します。このステップに進む前に、「[Amazon S3 バケット内のファイルを保護するにはどうすればよいですか?](https://aws.amazon.com/premiumsupport/knowledge-center/secure-s3-resources/)」を確認して、S3 バケット内のファイルを保護するためのベストプラクティスと、パブリックアクセスの許可に伴うリスクを理解してください。

1. [**バケット**] で、バケットの名前を選択します。

1. [**Permissions (アクセス許可)**] を選択します。

1. [**Bucket Policy (バケットポリシー)**] で [**編集**] を選択します。

1. ウェブサイトのパブリック読み取りアクセスを許可するには、次のバケットポリシーをコピーし、[**Bucket policy editor (バケットポリシーエディター)**] に貼り付けます。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PublicReadGetObject",
               "Effect": "Allow",
               "Principal": "*",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::Bucket-Name/*"
               ]
           }
       ]
   }
   ```

1. `Resource` をバケット名に更新します。

   前述のバケットポリシーの例では、*Bucket-Name* はバケット名のプレースホルダーです。このバケットポリシーを独自のバケットで使用するには、バケット名に合わせてこの名前を更新する必要があります。

1. [**Save changes**] (変更の保存) をクリックします。

   バケットポリシーが正常に追加されたことを示すメッセージが表示されます。

   `Policy has invalid resource` というエラーが表示された場合は、バケットポリシー内のバケット名がバケット名と一致していることを確認します。バケットポリシーの追加については、「[S3 バケットポリシーを追加する方法](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-bucket-policy.html)」を参照してください。

   エラーメッセージが表示され、バケットポリシーを保存できない場合は、アカウントとバケットの [パブリックアクセスをブロックする] 設定をチェックして、バケットへのパブリックアクセスを許可していることを確認します。

次のステップでは、ウェブサイトのエンドポイントを判別し、ドメインエンドポイントをテストできます。

## ステップ 10: ドメインエンドポイントをテストする
<a name="root-domain-walkthrough-test-website"></a>

パブリックウェブサイトをホストするようにドメインバケットを設定したら、エンドポイントをテストできます。詳細については、「[ウェブサイトエンドポイント](WebsiteEndpoints.md)」を参照してください。サブドメインバケットは、静的ウェブサイトホスティングではなくウェブサイトリダイレクト用に設定されているため、テストできるのはドメインバケットのエンドポイントのみです。

**注記**  
Amazon S3 は、ウェブサイトへの HTTPS アクセスをサポートしていません。HTTPS を使用する場合は、Amazon CloudFront を使用して Amazon S3 でホストされている静的ウェブサイトを提供できます。  
詳細については、「[CloudFront を使用して、Amazon S3 でホストされた静的ウェブサイトを公開するにはどうすればよいですか?](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/)」と「[ビューワーと CloudFront との通信で HTTPS を必須にする](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html)」を参照してください。

1. [**バケット**] で、バケットの名前を選択します。

1. [**プロパティ**] を選択します。

1. ページの下部の [**静的ウェブサイトホスティング**] で、[**Bucket website endpoint (バケットウェブサイトエンドポイント)**] を選択します。

   インデックスドキュメントが別のブラウザウィンドウで開きます。

次のステップでは、顧客が両方のカスタム URL を使用してサイトにアクセスできるように、Amazon Route 53 を使用します。

## ステップ 11: ドメインとサブドメインのエイリアスレコードを追加する
<a name="root-domain-walkthrough-add-record-to-hostedzone"></a>

このステップでは、ドメインマップ `example.com` と `www.example.com` のホストゾーンに追加するエイリアスレコードを作成します。IP アドレスを使用する代わりに、このエイリアスレコードでは Amazon S3 ウェブサイトエンドポイントが使用されます。Amazon Route 53 によって、エイリアスレコードと、Amazon S3 バケットが存在する IP アドレスとのマッピングが維持されます。ルートドメイン用とサブドメイン用の 2 つのエイリアスレコードを作成します。

### ルートドメインとサブドメインのエイリアスレコードの追加
<a name="add-alis-record"></a>

**ルートドメインのエイリアスレコードを追加するには (`example.com`)**

1. Route 53 コンソール ([https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)) を開きます。
**注記**  
Route 53 をまだ使用していない場合は、*Amazon Route 53 デベロッパーガイド*の「[ステップ 1: ドメインの登録](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html#getting-started-find-domain-name)」を参照してください。セットアップが完了したら、指示を再開できます。

1. [**Hosted zones (ホストゾーン)**] を選択します。

1. ホストゾーンのリストで、ドメイン名に一致するホストゾーンの名前を選択します。

1. [**Create record (レコードを作成)**] を選択します。

1. [**Switch to wizard**] (ウィザードに切り替える) を選択します。
**注記**  
クイック作成を使用してエイリアスレコードを作成する場合は、「[Route 53 を設定して S3 バケットにトラフィックをルーティングする](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/RoutingToS3Bucket.html#routing-to-s3-bucket-configuring)」を参照してください。

1. [**Simple routing (シンプルルーティング)**] を選択して、[**Next (次へ)**] を選択します。

1. [**Define simple record (シンプルなレコードを定義)**] を選択します。

1. [**レコード名**] では、デフォルト値をそのまま使用します。これが、ホストゾーンとドメインの名前です。

1. [**Value/Route traffic to (値/トラフィックのルーティング先)**] で、[**Alias to S3 website endpoint (S3 ウェブサイトエンドポイントへのエイリアス)**] を選択します。

1. リージョンを選択します。

1. S3 バケットを選択します。

   バケット名は、[**Name (名前)**] ボックスに表示されている名前と一致する必要があります。[**Choose S3 bucket**] (S3 バケットを選択) リストに、バケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイントとともにバケット名が表示されます (例: `s3-website-us-west-1.amazonaws.com (example.com)`)。

   次の場合は、バケットをリストする **S3 バケットを選択**します。
   + バケットを静的ウェブサイトとして設定した場合。
   + バケットの名前が、作成するレコードの名前と同じである場合。
   + 現在の AWS アカウント でバケットを作成した場合。

   バケットが [**Choose S3 bucket**] (S3 バケットの選択) リストに表示されない場合は、バケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイント (例: **s3-website-us-west-2.amazonaws.com**) を入力します。Amazon S3 ウェブサイトエンドポイントの完全なリストについては、「[Amazon S3 ウェブサイトエンドポイント](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints)」を参照してください。エイリアス先の詳細については、*Amazon Route 53 デベロッパーガイド*の「[値/トラフィックのルーティング先](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target)」を参照してください。

1. **[レコードタイプ]** で、**[A ‐ IPv4 アドレスと一部の AWS リソースにトラフィックをルーティングします]** を選択します。

1. [**Evaluate target health (ターゲットの正常性の評価)**] で [**No (いいえ)**] を選択します。

1. [**Define simple record (シンプルなレコードを定義)**] を選択します。

**サブドメインのエイリアスレコードを追加するには (`www.example.com`)**

1. [**Configure records**] (レコードを設定) で、[**Define simple record**] (シンプルなレコードを定義) を選択します。

1. サブドメインの [**Record name (レコード名)**] に「`www`」と入力します。

1. [**Value/Route traffic to (値/トラフィックのルーティング先)**] で、[**Alias to S3 website endpoint (S3 ウェブサイトエンドポイントへのエイリアス)**] を選択します。

1. リージョンを選択します。

1. S3 バケットを選択します (例: `s3-website-us-west-2.amazonaws.com (www.example.com)`)。

   バケットが [**Choose S3 bucket**] (S3 バケットの選択) リストに表示されない場合は、バケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイント (例: **s3-website-us-west-2.amazonaws.com**) を入力します。Amazon S3 ウェブサイトエンドポイントの完全なリストについては、「[Amazon S3 ウェブサイトエンドポイント](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints)」を参照してください。エイリアス先の詳細については、*Amazon Route 53 デベロッパーガイド*の「[値/トラフィックのルーティング先](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target)」を参照してください。

1. **[レコードタイプ]** で、**[A ‐ IPv4 アドレスと一部の AWS リソースにトラフィックをルーティングします]** を選択します。

1. [**Evaluate target health (ターゲットの正常性の評価)**] で [**No (いいえ)**] を選択します。

1. [**Define simple record (シンプルなレコードを定義)**] を選択します。

1. [**Configure records**] (レコードを設定) ページで、[**Create records**] (レコードを作成) を選択します。

**注記**  
通常、変更は 60 秒以内にすべての Route 53 サーバーに伝播されます。伝播が完了すると、この手順で作成したエイリアスレコードの名前を使用して、トラフィックを Amazon S3 バケットにルーティングできます。

### ルートドメインとサブドメインのエイリアスレコードの追加 (以前の Route 53 コンソール)
<a name="add-alis-record-old"></a>

**ルートドメインのエイリアスレコードを追加するには (`example.com`)**

Route 53 コンソールは再設計されました。Route 53 コンソールでは、暫定的に以前のコンソールを使用することもできます。以前の Route 53 コンソールを使用する場合は、以下の手順に従ってください。

1. Route 53 コンソール ([https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)) を開きます。
**注記**  
Route 53 をまだ使用していない場合は、*Amazon Route 53 デベロッパーガイド*の「[ステップ 1: ドメインの登録](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html#getting-started-find-domain-name)」を参照してください。セットアップが完了したら、指示を再開できます。

1. [**ホストゾーン**] を選択します。

1. ホストゾーンのリストで、ドメイン名に一致するホストゾーンの名前を選択します。

1. [**Create Record Set**] (レコードセットの作成) をクリックします。

1. 次の値を指定します。  
**名前**  
ホストゾーンとドメインの名前であるデフォルト値を受け入れます。  
ルートドメインの場合、[**Name (名前)**] フィールドに追加情報を入力する必要はありません。  
**タイプ**  
[**A – IPv4 address (A – IPv4 address)**] を選択します。  
**エイリアス**  
[**Yes**] を選択します。  
**エイリアス先**  
リストの [**S3 website endpoints (S3 ウェブサイトエンドポイント)**] セクションで、バケット名を選択します。  
バケット名は、[**Name (名前)**] ボックスに表示されている名前と一致する必要があります。[**Alias Target (エイリアス先)**] リストでは、バケット名の後にはバケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイントが続きます (例: `example.com (s3-website-us-west-2.amazonaws.com)`)。以下の場合は、[**Alias Target**] にバケットが表示されます。  
   + バケットを静的ウェブサイトとして設定した場合。
   + バケットの名前が、作成するレコードの名前と同じである場合。
   + 現在の AWS アカウント でバケットを作成した場合。
バケットが [**エイリアス先**] リストに表示されない場合は、バケットが作成されたリージョンの Amazon S3 ウェブサイトエンドポイント (`s3-website-us-west-2` など) を入力します。Amazon S3 ウェブサイトエンドポイントの完全なリストについては、「[Amazon S3 ウェブサイトエンドポイント](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints)」を参照してください。エイリアス先の詳細については、*Amazon Route 53 デベロッパーガイド*の「[値/トラフィックのルーティング先](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-alias.html#rrsets-values-alias-alias-target)」を参照してください。  
**ルーティングポリシー**  
デフォルト値の [**Simple**] をそのまま使用します。  
**ターゲットの正常性の評価**  
デフォルト値の [**No**] をそのまま使用します。

1. [**Create**] を選択します。

**サブドメインのエイリアスレコードを追加するには (`www.example.com`)**

1. ルートドメイン (`example.com`) のホストゾーンで、[**Create Record Set (レコードセットの作成)**] を選択します。

1. 次の値を指定します。  
**名前**  
サブドメインの場合、ボックスに `www` と入力します。  
**タイプ**  
[**A – IPv4 address (A – IPv4 address)**] を選択します。  
**エイリアス**  
[**Yes**] を選択します。  
**エイリアス先**  
リストの [**S3 website endpoints (S3 ウェブサイトエンドポイント)**] セクションで、[**Name (名前)**] フィールドに表示される名前と同じバケット名を選択します (例: `www.example.com (s3-website-us-west-2.amazonaws.com)`)。  
**ルーティングポリシー**  
デフォルト値の [**Simple**] をそのまま使用します。  
**ターゲットの正常性の評価**  
デフォルト値の [**No**] をそのまま使用します。

1. [**Create**] を選択します。

**注記**  
通常、変更は 60 秒以内にすべての Route 53 サーバーに伝播されます。伝播が完了すると、この手順で作成したエイリアスレコードの名前を使用して、トラフィックを Amazon S3 バケットにルーティングできます。

## ステップ 12: ウェブサイトをテストする
<a name="root-domain-testing"></a>

ウェブサイトとリダイレクトが正しく機能することを確認します。ブラウザで、URL を入力します。この例では、次の URL を試すことができます。
+ **ドメイン** (`http://example.com`) – `example.com` バケット内のインデックスドキュメントを表示します。
+ **サブドメイン **(`http://www.example.com`) – リクエストを `http://example.com` にリダイレクトします。`example.com` バケット内のインデックスドキュメントが表示されます。

ウェブサイトやリダイレクトのリンクが機能しない場合は、以下のことを試しください。
+ **キャッシュのクリア**– ウェブブラウザのキャッシュをクリアします。
+ **ネームサーバーの確認**– キャッシュをクリアしてもウェブページやリダイレクトのリンクが機能しない場合は、ドメインのネームサーバーとホストゾーンのネームサーバーを比較します。ネームサーバーが一致しない場合は、ドメインのネームサーバーを更新してホストゾーンのネームサーバーと一致させる必要があります。詳細については、「[ドメインのネームサーバーおよびグルーレコードの追加あるいは変更](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-name-servers-glue-records.html)」を参照してください。

ルートドメインとサブドメインのテストが完了したら、[Amazon CloudFront](https://aws.amazon.com/cloudfront) ディストリビューションを設定できます。これにより、ウェブサイトのパフォーマンスを向上させ、ウェブサイトのトラフィックの確認に使用できるログを指定できます。詳細については、「[Amazon CloudFront によるウェブサイトの高速化](website-hosting-cloudfront-walkthrough.md)」を参照してください。

# Amazon CloudFront によるウェブサイトの高速化
<a name="website-hosting-cloudfront-walkthrough"></a>

[Amazon CloudFront](https://aws.amazon.com/cloudfront) を使用すると、Amazon S3 ウェブサイトのパフォーマンスを高めることができます。CloudFront を使用すると、世界中のデータセンター (*エッジロケーション* と呼ばれる) からお客様のウェブサイトのファイル (HTML、画像、動画など) を使用できるようになります。閲覧者がウェブサイトからファイルをリクエストすると、CloudFront は自動的に最も近いエッジロケーションのファイルのコピーにリクエストをリダイレクトします。これにより、遠い場所にあるデータセンターからコンテンツをリクエストした場合よりもダウンロード時間が高速になります。

CloudFront は、指定した期間にわたってコンテンツをエッジロケーションにキャッシュします。閲覧者が有効期限より長くキャッシュされていたコンテンツをリクエストすると、CloudFront はオリジンサーバーをチェックしてより新しいバージョンのコンテンツがあるかどうかを確認します。新しいバージョンが利用可能である場合、CloudFront は新しいバージョンをエッジロケーションにコピーします。元のコンテンツへの変更は、閲覧者がコンテンツをリクエストすると、エッジロケーションにレプリケートされます。

**Route 53 なしで CloudFront を使用する**  
このページのチュートリアルでは Route 53 を使用して CloudFront 配信をポイントしています。ただし、Route 53 を使用せずに CloudFront を使用して Amazon S3 バケットでホストされているコンテンツを配信する場合は、「[Amazon CloudFront チュートリアル: Amazon S3 用の動的コンテンツ配信のセットアップ](https://aws.amazon.com/cloudfront/getting-started/S3/)」を参照してください。CloudFront を使用して Amazon S3 バケットでホストされているコンテンツを配信する場合は、任意のバケット名を使用できます。また、HTTP と HTTPS の両方がサポートされます。

**CloudFormation テンプレートを使用した設定の自動化**  
ウェブサイトへの配信を行う CloudFront ディストリビューションを作成する安全な静的ウェブサイトを、CloudFormation テンプレートを使用して設定する方法の詳細については、*Amazon CloudFront デベロッパーガイド*の「[安全な静的ウェブサイトの開始方法](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/getting-started-secure-static-website-cloudformation-template.html)」を参照してください。

**Topics**
+ [ステップ 1: CloudFront ディストリビューションを作成する](#create-distribution)
+ [ステップ 2: ドメインとサブドメインのレコードセットを更新する](#update-record-sets)
+ [(オプション) ステップ 3: ログファイルを確認する](#check-log-files)

## ステップ 1: CloudFront ディストリビューションを作成する
<a name="create-distribution"></a>

まず、CloudFront ディストリビューションを作成します。これにより、ウェブサイトは世界中のデータセンターから利用できるようになります。

**Amazon S3 オリジンを使用してディストリビューションを作成するには**

1.  で CloudFront コンソールを開きます[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)

1. [**Create Distribution**] を選択します。

1. [**ディストリビューションの作成**] ページで、[**オリジンの設定**] セクションの [**オリジンドメイン名**] に、バケットの Amazon S3 ウェブサイトエンドポイントを入力します (例: **example.com.s3-website.us-west-1.amazonaws.com**)。

   CloudFront により自動的に [**Origin ID (オリジン ID)**] が入力されます。

1. [**Default Cache Behavior Settings (キャッシュ動作のデフォルト設定)**] の値はデフォルトのままにしておきます。

   [**ビューワープロトコルポリシー**] のデフォルト設定では、静的ウェブサイトに HTTPS を使用できます。これらの設定オプションの詳細については、*Amazon CloudFront デベロッパーガイド*の「[ウェブディストリビューションを作成または更新する場合に指定する値](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WorkingWithDownloadDistributions.html#DownloadDistValuesYouSpecify)」を参照してください。

1. [**Distribution Settings (ディストリビューションの設定)**] で、以下の作業を行います。

   1. [**Price Class (価格クラス)**] は [**Use All Edge Locations (Best Performance) (すべてのエッジロケーションを使用する (最適なパフォーマンス))**] に設定されたままにしておきます。

   1. [**代替ドメイン名 (CNAME)**] をルートドメインと `www` サブドメインに設定します。このチュートリアルでは、`example.com` と `www.example.com` です。
**重要**  
このステップを実行する前に、[代替ドメイン名を使用するための要件](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements)、特に有効な SSL/TLS 証明書の必要性について確認します。

   1. [**SSL 証明書**] で、[**Custom SSL Certificate (example.com) (独自 SSL 証明書 (example.com))**] を選択し、ドメイン名とサブドメイン名を対象とするカスタム証明書を選択します。

      詳細については、*Amazon CloudFront デベロッパーガイド*の「[SSL 証明書](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesSSLCertificate)」を参照してください。

   1. [**Default Root Object (デフォルトのルートオブジェクト)**] に、インデックスドキュメントの名前を入力します (例: `index.html`)。

      ディストリビューションにアクセスするために使用される URL にファイル名が含まれていない場合、CloudFront ディストリビューションはインデックスドキュメントを返します。[**Default Root Object (デフォルトのルートオブジェクト)**] は、静的ウェブサイトのインデックスドキュメントの名前と正確に一致する必要があります。詳細については、「[インデックスドキュメントの設定](IndexDocumentSupport.md)」を参照してください。

   1. [**ログ記録**] を [**On (オン)**] に設定します。
**重要**  
ディストリビューションを作成または更新して CloudFront のログを有効にすると、CloudFront はバケットのアクセスコントロールリスト (ACL) を更新して、バケットにログを書き込む `awslogsdelivery` アクセス許可を `FULL_CONTROL` アカウントに付与します。詳細については、**「Amazon CloudFront デベロッパーガイド」の「[標準ログ記録の設定とログファイルへのアクセスに必要なアクセス許可](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html#AccessLogsBucketAndFileOwnership)」を参照してください。ログを保存するバケットが S3 オブジェクト所有権のバケット所有者の強制設定を使用して ACL を無効にすると、CloudFront はバケットにログを書き込むことができません。詳細については、「[オブジェクトの所有権の制御とバケットの ACL の無効化。](about-object-ownership.md)」を参照してください。

   1. [**Bucket for Logs (ログ用のバケット)**] で、作成したログ記録バケットを選択します。

      ログ記録バケットの設定の詳細については、「[(オプション) ウェブトラフィックのログ記録](LoggingWebsiteTraffic.md)」を参照してください。

   1. CloudFront ディストリビューションへのトラフィックによって生成されたログをフォルダに保存する場合は、[**Log Prefix (ログのプレフィックス)**] にフォルダ名を入力します。

   1. 他の設定はすべてデフォルト値のままにしておきます。

1. [**Create Distribution**] を選択します。

1. ディストリビューションのステータスを表示するには、コンソールでディストリビューションを見つけて、[**ステータス**] 列を確認します。

   [`InProgress`] のステータスは、ディストリビューションがまだ完全にデプロイされていないことを示します。

   ディストリビューションがデプロイされたら、新しい CloudFront ドメイン名でコンテンツを参照できます。

1. CloudFront コンソールに表示される [**Domain Name (ドメイン名)**] の値を書き留めます (例: `dj4p1rv6mvubz.cloudfront.net`)。

1. CloudFront ディストリビューションが正常に動作していることを確認するには、ウェブブラウザでディストリビューションのドメイン名を入力します。

   ウェブサイトが表示されている場合、CloudFront ディストリビューションは機能します。ウェブサイトに Amazon Route 53 で登録されたカスタムドメインがある場合は、次のステップでレコードセットを更新するために CloudFront ドメイン名が必要になります。

## ステップ 2: ドメインとサブドメインのレコードセットを更新する
<a name="update-record-sets"></a>

CloudFront ディストリビューションが正常に作成されたので、Route 53 でエイリアスレコードを更新して、新しい CloudFront ディストリビューションを指すようにします。

**CloudFront ディストリビューションを指すようにエイリアスレコードを更新するには**

1. Route 53 コンソール ([https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)) を開きます。

1. 左のナビゲーションで、[**Hosted zones**] (ホストゾーン) を選択します。

1. [**Hosted Zones**] (ホストゾーン) ページで、サブドメイン用に作成したホストゾーンを選択します (例: `www.example.com`)。

1. [**Records**] (レコード) で、サブドメイン用に作成した *A* レコードを選択します。

1. [**Record details**] (レコードの詳細) で、[**Edit record**] (レコードを編集) を選択します。

1. [**Route traffic to**] (トラフィックのルーティング先) で、[**Alias to CloudFront distribution**] (CloudFront ディストリビューションへのエイリアス) を選択します。

1. [**Choose distribution**] (ディストリビューションを選択) で、CloudFront ディストリビューションを選択します。

1. [**Save**] を選択します。

1. ルートドメインの *A* レコードを CloudFront ディストリビューションにリダイレクトするには、ルートドメイン用のこの手順を繰り返します (例: `example.com`)。

   レコードセットの更新は、2～48 時間以内に有効になります。

1. 新しい *A* レコードが有効かどうかを確認するには、ウェブブラウザで、サブドメイン URL を入力します (例: `http://www.example.com`)。

   ブラウザがルートドメイン (例: `http://example.com`) にリダイレクトしなくなった場合、新しい A レコードが有効になっています。新しい *A* レコードが有効になると、新しい *A* レコードによって CloudFront ディストリビューションにルーティングされるトラフィックが、ルートドメインにリダイレクトされなくなります。`http://example.com` または`http://www.example.com` を使用してサイトを参照する閲覧者は、最も近い CloudFront エッジロケーションにリダイレクトされるため、ダウンロード時間が短縮されます。
**ヒント**  
ブラウザはリダイレクト設定をキャッシュできます。新しい *A* レコードの設定が有効になったと考えられるにもかかわらず、ブラウザによって`http://www.example.com` がまだ `http://example.com` にリダイレクトされる場合は、ブラウザアプリケーションを閉じてから再び開いてブラウザの履歴とキャッシュをクリアするか、異なるウェブブラウザを使用してみてください。

## (オプション) ステップ 3: ログファイルを確認する
<a name="check-log-files"></a>

アクセスログにより、ウェブサイトを訪れたユーザーの数がわかります。また、[Amazon EMR](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/) など他のサービスで分析できる貴重なビジネスデータも含まれています。

CloudFront ログは、CloudFront ディストリビューションを作成してログを有効にするときに選択したバケットとフォルダに保存されます。CloudFront は、対応するリクエストが行われると、24 時間以内にログバケットにログを書き込みます。

**ウェブサイトのログファイルを表示するには**

1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. ウェブサイトのログ記録バケットを選択します。

1. CloudFront ログフォルダを選択します。

1. CloudFront によって書き込まれた `.gzip` ファイルを開く前に、まずファイルをダウンロードします。

   学習のためだけにウェブサイトを作成した場合は、割り当てたリソースを削除して、課金を停止できます。これを行うには、「[サンプルリソースのクリーンアップ](getting-started-cleanup.md)」を参照してください。AWS リソースを削除すると、ウェブサイトは使用できなくなります。

# サンプルリソースのクリーンアップ
<a name="getting-started-cleanup"></a>

学習のために静的ウェブサイトを作成した場合は、割り当てた AWS リソースをここで削除して、課金を停止します。AWS リソースを削除すると、ウェブサイトは使用できなくなります。

**Topics**
+ [ステップ 1: Amazon CloudFront ディストリビューションを削除する](#getting-started-cleanup-cloudfront)
+ [ステップ 2: Route 53 ホストゾーンを削除する](#getting-started-cleanup-route53)
+ [ステップ 3: ログ記録を無効にし、S3 バケットを削除する](#getting-started-cleanup-s3)

## ステップ 1: Amazon CloudFront ディストリビューションを削除する
<a name="getting-started-cleanup-cloudfront"></a>

Amazon CloudFront ディストリビューションを削除する前に、そのディストリビューションを無効にする必要があります。無効になったディストリビューションは機能しなくなり、料金も発生しません。無効にしたディストリビューションはいつでも有効にすることができます。無効にしたディストリビューションを削除すると、使用できなくなります。

**CloudFront ディストリビューションを無効にして削除するには**

1.  で CloudFront コンソールを開きます[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)

1. 無効にするディストリビューションを選択してから [**Disable (無効化)**] を選択します。

1. 確認を求められたら、[**Yes, Disable (はい、無効化する)**] を選択します。

1. 無効にしたディストリビューションを選択してから [**削除**] を選択します。

1. 確認を求めるメッセージが表示されたら、[**Yes, Delete (はい、削除します)**] を選択します。

## ステップ 2: Route 53 ホストゾーンを削除する
<a name="getting-started-cleanup-route53"></a>

ホストゾーンを削除する前に、作成したレコードセットを削除する必要があります。NS レコードと SOA レコードを削除する必要はありません。これらはホストゾーンが削除されるときに自動的に削除されます。

**レコードセットを削除するには**

1. Route 53 コンソール ([https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)) を開きます。

1.  ドメイン名のリストでドメイン名を選択し、[**Go to Record Sets (レコードセットに移動)**] を選択します。

1. レコードセットのリストで、作成した *A* レコードを選択します。

   各レコードセットのタイプは [**タイプ**] 列に表示されます。

1. [**Delete Record Set (レコードセットの削除)**] を選択します。

1. 確認を求められたら、[**確認**] を選択します。

**Route 53 ホストゾーンを削除するには**

1.  前のステップを終了した画面で [**Back to Hosted Zones (ホストゾーンに戻る)**] を選択します。

1.  ドメイン名を選択してから [**Delete Hosted Zone (ホストゾーンの削除)**] を選択します。

1.  確認を求められたら、[**確認**] を選択します。

## ステップ 3: ログ記録を無効にし、S3 バケットを削除する
<a name="getting-started-cleanup-s3"></a>

S3 バケットを削除する前に、バケットのログ記録が無効であることを確認します。それ以外の場合、削除するバケットへのログの書き込みが AWS によって継続されます。

**バケットのログ記録を無効にするには**

1. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. [**バケット**] でバケット名を選択し、[**プロパティ**] を選択します。

1. [**プロパティ**] から [**ログ記録**] を選択します。

1. [**有効**] チェックボックスをオフにします。

1. [**Save**] を選択します。

これで、バケットを削除できます。詳細については、「[汎用バケットの削除](delete-bucket.md)」を参照してください。

# S3 汎用バケットから AWS Amplify ホスティングへの静的ウェブサイトのデプロイ
<a name="website-hosting-amplify"></a>

[AWS Amplify ホスティング](https://docs.aws.amazon.com//amplify/latest/userguide/welcome.html.html)を使用して、S3 に保存されている静的ウェブサイトのコンテンツをホストすることをお勧めします。Amplify ホスティングは、Amazon CloudFront を利用したグローバルに利用可能なコンテンツ配信ネットワーク (CDN) にウェブサイトを簡単にデプロイできるフルマネージドサービスです。これにより、大規模なセットアップなしで安全な静的ウェブサイトホスティングが可能になります。AWS Amplify ホスティングを使用すると、汎用バケット内のオブジェクトの場所を選択して、コンテンツをマネージド CDN にデプロイし、ウェブサイトのパブリック HTTPS URL を生成してどこからでもアクセス可能にすることができます。Amplify ホスティングを使用して静的ウェブサイトをデプロイすると、以下の利点と機能が得られます。
+ **Amazon CloudFront を利用した AWS コンテンツ配信ネットワーク (CDN) へのデプロイ** - CloudFront は、ユーザーへの静的および動的ウェブコンテンツの配信を高速化するウェブサービスです。CloudFront では、エッジロケーションというデータセンターの世界的ネットワークを経由してコンテンツを配信します。CloudFront で提供しているコンテンツをユーザーがリクエストすると、リクエストはレイテンシー (遅延時間) が最小のエッジロケーションにルーティングされるため、コンテンツの配信が可能な限り最高のパフォーマンスとなり、信頼性と可用性が高まります。詳細については、「[Amazon CloudFront デベロッパーガイド](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html)」の「*CloudFront がコンテンツを配信する方法*」を参照してください。
+ **HTTPS サポート** - ウェブサイトとユーザーのウェブブラウザとの間で安全な通信とデータ転送を提供します。
+ **カスタムドメイン** - Amazon Route 53 などのドメインレジストラから購入したカスタム URL にウェブサイトを簡単に接続します。
+ **カスタム SSL 証明書** - カスタムドメインを設定するときに、Amplify が自動でプロビジョニングするデフォルトのマネージド証明書を使用することも、選択したサードパーティの認証機関から購入した独自のカスタム証明書を使用することもできます。
+ **組み込みメトリクスと CloudWatch モニタリング** - ウェブサイトのトラフィック、エラー、データ転送、レイテンシーをモニタリングします。
+ **パスワード保護** - Amplify コンソールでユーザー名とパスワードの要件を設定することで、ウェブサイトへのアクセスを制限します。
+ **リダイレクトと書き換え** - Amplify コンソールでリダイレクトと書き換えのルールを作成し、特定の URL から別の URL へのナビゲーションをウェブサーバーで再ルーティングできるようにします。

Amazon S3 汎用バケットから Amplify ホスティングにアプリケーションをデプロイする場合、AWS 料金は Amplify の料金モデルが基準となります。詳細については、[AWS Amplify の料金](https://aws.amazon.com/amplify/pricing/)を参照してください。

**重要**  
Amplify ホスティングは、Amazon S3 が利用可能なすべての AWS リージョンで利用できるわけではありません。静的ウェブサイトを Amplify ホスティングにデプロイするには、ユーザーのウェブサイトを有する Amazon S3 汎用バケットが Amplify が利用可能なリージョンにある必要があります。Amplify が利用可能なリージョンのリストについては、「*Amazon Web Services 全般のリファレンス*」の「[Amplify endpoints](https://docs.aws.amazon.com/general/latest/gr/amplify.html#amplify_region)」を参照してください。

デプロイプロセスは、Amazon S3 コンソール、Amplify コンソール、AWS CLI、または AWS SDK から開始できます。独自のアカウントにある汎用バケットからのみ Amplify にデプロイできます。Amplify はクロスアカウントバケットアクセスをサポートしていません。

次の手順に従って Amazon S3 コンソールから開始し、Amazon S3 汎用バケットから Amplify ホスティングに静的ウェブサイトをデプロイします。

## S3 コンソールから Amplify への静的ウェブサイトのデプロイ
<a name="DeployAmplify"></a>

**Amazon S3 コンソールから静的ウェブサイトをデプロイするには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[バケット]** を選択します。

1. **[バケット]** リストで、Amplify ホスティングにデプロイするウェブサイトが含まれている汎用バケットを選択します。

1. **[プロパティ]** タブを選択します。

1. **[静的ウェブサイトホスティング]** で、**[Amplify アプリを作成]** を選択します。このステップで、デプロイプロセスは Amplify コンソールに移動します。

1. **[S3 によるデプロイ]** ページで、次のいずれかのステップを実行します。

   1. **[アプリ名]** に、アプリまたはウェブサイトの名前を入力します。

   1. **[ブランチ名]** に、アプリのバックエンドの名前を入力します。

   1. **[ホストするオブジェクトの S3 の場所]** で、汎用バケットへのディレクトリパスを入力するか、**[S3 を参照]** を選択して検索および選択します。

1. **[保存してデプロイ]** を選択します。

**注記**  
 Amplify でホストされている汎用バケットで静的ウェブサイトのいずれかのオブジェクトを更新した場合は、変更を有効にするためにアプリケーションを Amplify ホスティングに再デプロイする必要があります。Amplify ホスティングは、バケットへの変更を自動的には検出しません。詳細については、「*AWS Amplify Hosting User Guide*」の「[Updating a static website deployed to Amplify from an S3 bucket](https://docs.aws.amazon.com//amplify/latest/userguide/update-website-deployed-from-s3.html)」を参照してください。

Amplify コンソールから直接開始するには、「*AWS Amplify ホスティングユーザーガイド*」の「[Amplify コンソールを使用して S3 から静的ウェブサイトをデプロイする](https://docs.aws.amazon.com//amplify/latest/userguide/deploy--from-amplify-console.html)」を参照してください。

AWS SDK を使用して開始するには、「*AWS Amplify ホスティングユーザーガイド*」の「[AWS SDK を使用して S3 から静的ウェブサイトをデプロイするためのバケットポリシーの作成](https://docs.aws.amazon.com//amplify/latest/userguide/deploy-with-sdks.html)」を参照してください。