CloudFront ディストリビューションでさまざまなオリジンを使用する - Amazon CloudFront

CloudFront ディストリビューションでさまざまなオリジンを使用する

ディストリビューションを作成するときに、CloudFront によってファイルのリクエストが送信される場所であるオリジンを指定します。CloudFront では、さまざまなオリジンを使用できます。例えば、Amazon S3 バケット、MediaStore コンテナ、MediaPackage チャネル、Application Load Balancer、AWS Lambda 関数 URL を使用できます。

Amazon S3 バケットを使用する

以下のトピックでは、CloudFront ディストリビューションのオリジンとして Amazon S3 バケットを使用するさまざまな方法について説明します。

標準的な Amazon S3 バケットを使用する

ディストリビューションのオリジンとして Amazon S3 を使用する場合、CloudFront が配信するオブジェクトを、Amazon S3 バケットに配置します。オブジェクトを Amazon S3 に保存するには、Amazon S3 でサポートされる任意の方法を使用できます。例えば、Amazon S3 コンソールや API、サードパーティーのツールを使用できます。他の標準 Amazon S3 バケットと同様に、バケット内に階層を作成してオブジェクトを保存できます。

既存の Amazon S3 バケットを CloudFront オリジンサーバーとして使用してもバケットに変更は一切ありません。Amazon S3 オブジェクトの保存やアクセスで通常使用しているとおりに通常の Amazon S3 価格でバケットを使用できます。バケットへのオブジェクトの保存には、通常の Amazon S3 料金が発生します。CloudFront の使用料の詳細については、「Amazon CloudFront 料金表」を参照してください。CloudFront での既存の S3 バケットの使用の詳細については、「既存の Amazon S3 バケットに CloudFront を追加する」を参照してください。

重要

バケットが CloudFront で正常に機能するには、その名前が DNS 命名要件に沿ったものでなければなりません。詳細については、Amazon Simple Storage Service ユーザーガイドの「バケットの命名規則」を参照してください。

CloudFront のオリジンとして Amazon S3 バケットを指定する場合は、次の形式を使用することをお勧めします。

bucket-name.s3.region.amazonaws.com

この形式でバケット名を指定した場合、以下の CloudFront 機能を使用することができます。

以下の形式を使用してバケットを指定しないでください。

  • Amazon S3 パススタイル: s3.amazonaws.com/bucket-name

  • Amazon S3 の CNAME

Amazon S3 Object Lambda を使用する

Object Lambda アクセスポイントを作成すると、Amazon S3 は Object Lambda アクセスポイントの固有のエイリアスを自動的に生成します。CloudFront 配信のオリジンとして、Amazon S3 バケット名の代わりにこのエイリアス使用することができます。

Object Lambda アクセスポイントエイリアスを CloudFront のオリジンとして使用する場合は、次の形式を使用することをお勧めします。

alias.s3.region.amazonaws.com

alias の検索の詳細については、「Amazon S3 ユーザーガイド」の「S3 バケット Object Lambda アクセスポイントにおけるバケット形式のエイリアスの使用」を参照してください。

重要

Object Lambda アクセスポイントを CloudFront のオリジンとして使用する場合は、オリジンアクセスコントロールを使用する必要があります。

ユースケースの例については、「Amazon S3 Object Lambda を Amazon CloudFront で使用して、エンドユーザー向けにコンテンツをカスタマイズする」を参照してください。

CloudFront は、Object Lambda アクセスポイントのオリジンを標準の Amazon S3 バケットオリジンと同じように扱います。

Amazon S3 Object Lambda をディストリビューションのオリジンとして使用する場合は、次の 4 つのアクセス許可を設定する必要があります。

Object Lambda Access Point
Object Lambda アクセスポイントのアクセス許可を追加するには
  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左のナビゲーションペインで、[Object Lambda アクセスポイント] を選択します。

  3. 使用する Object Lambda アクセスポイントを選択します。

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

  5. [Object Lambda アクセスポイントポリシー] セクションで [編集] を選択します。

  6. 以下のポリシーを [ポリシー] フィールドに貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3-object-lambda:Get*", "Resource": "arn:aws:s3-object-lambda:region:AWS-account-ID:accesspoint/Object-Lambda-Access-Point-name", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudfront::AWS-account-ID:distribution/CloudFront-distribution-ID" } } } ] }
  7. [Save changes] (変更の保存) をクリックします。

Amazon S3 Access Point
Amazon S3 アクセスポイントのアクセス許可を追加するには
  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ナビゲーションペインで、[アクセスポイント] を選択します。

  3. 使用する Amazon S3 アクセスポイントを選択します。

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

  5. [アクセスポイントポリシー] セクションで [編集] を選択します。

  6. 以下のポリシーを [ポリシー] フィールドに貼り付けます。

    { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "s3objlambda", "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name", "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name/object/*" ], "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "s3-object-lambda.amazonaws.com" } } } ] }
  7. [Save] を選択します。

Amazon S3 bucket
Amazon S3 バケットにアクセス許可を追加するには
  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ナビゲーションペインで、バケットを選択します。

  3. 使用する Amazon S3 バケットを選択します。

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

  5. [バケットポリシー] セクションで、[編集] を選択します。

  6. 以下のポリシーを [ポリシー] フィールドに貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": "AWS-account-ID" } } } ] }
  7. [Save changes] (変更の保存) をクリックします。

AWS Lambda function
Lambda 関数にアクセス許可を追加するには
  1. AWS Management Console にサインインして AWS Lambda コンソール (https://console.aws.amazon.com/lambda/) を開きます。

  2. ナビゲーションペインで、[関数] を選択します。

  3. 使用する AWS Lambda 関数を選択します。

  4. [設定] タブを開き、次に [アクセス許可] をクリックします。

  5. [リソースベースのポリシーステートメント] セクションで [アクセス許可の追加] を選択します。

  6. [AWS アカウント] を選択します。

  7. [ステートメント ID] の名前を入力します。

  8. [プリンシパル]cloudfront.amazonaws.com を入力します。

  9. [アクション] ドロップダウンメニューから lambda:InvokeFunction を選択します。

  10. [Save] を選択します。

Amazon S3 Access Point を使用する

S3 アクセスポイントを使用する場合、Amazon S3 は固有のエイリアスを自動的に生成します。CloudFront 配信のオリジンとして、Amazon S3 バケット名の代わりにこのエイリアス使用することができます。

Amazon S3 アクセスポイントエイリアスを CloudFront のオリジンとして使用する場合は、次の形式を使用することをお勧めします。

alias.s3.region.amazonaws.com

alias の検索の詳細については、「Amazon S3 ユーザーガイド」の「S3 バケットアクセスポイントでのバケット形式のエイリアスの使用」を参照してください。

重要

Amazon S3 アクセスポイントを CloudFront のオリジンとして使用する場合は、オリジンアクセスコントロールを使用する必要があります。

CloudFront は、Amazon S3 アクセスポイントオリジンを標準の Amazon S3 バケットオリジンと同じように扱います。

Amazon S3 Object Lambda をディストリビューションのオリジンとして使用する場合は、次の 2 つのアクセス許可を設定する必要があります。

Amazon S3 Access Point
Amazon S3 アクセスポイントのアクセス許可を追加するには
  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ナビゲーションペインで、[アクセスポイント] を選択します。

  3. 使用する Amazon S3 アクセスポイントを選択します。

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

  5. [アクセスポイントポリシー] セクションで [編集] を選択します。

  6. 以下のポリシーを [ポリシー] フィールドに貼り付けます。

    { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "s3objlambda", "Effect": "Allow", "Principal": {"Service": "cloudfront.amazonaws.com"}, "Action": "s3:*", "Resource": [ "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name", "arn:aws:s3:region:AWS-account-ID:accesspoint/Access-Point-name/object/*" ], "Condition": { "StringEquals": {"aws:SourceArn": "arn:aws:cloudfront::AWS-account-ID:distribution/CloudFront-distribution-ID"} } } ] }
  7. [Save] を選択します。

Amazon S3 bucket
Amazon S3 バケットにアクセス許可を追加するには
  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ナビゲーションペインで、バケットを選択します。

  3. 使用する Amazon S3 バケットを選択します。

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

  5. [バケットポリシー] セクションで、[編集] を選択します。

  6. 以下のポリシーを [ポリシー] フィールドに貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": "AWS-account-ID" } } } ] }
  7. [Save changes] (変更の保存) をクリックします。

ウェブサイトのエンドポイントとして設定された Amazon S3 バケットを使用する

ウェブサイトエンドポイントとして設定されている Amazon S3 バケットを、CloudFront のカスタムオリジンとして使用できます。CloudFront ディストリビューションを設定するときに、オリジンにバケットのエンドポイントをホストしている Amazon S3 の静的ウェブサイトを入力します。この値は、Amazon S3 コンソールの [Static Website Hosting] (静的ウェブサイトホスティング) ペインの [Properties] (プロパティ) タブに表示されます。例:

http://bucket-name.s3-website-region.amazonaws.com

Amazon S3 静的ウェブサイトエンドポイントを指定する方法の詳細については、Amazon Simple Storage Service ユーザーガイドの「ウェブサイトエンドポイント」を参照してください。

この形式でバケット名をオリジンとして指定すると、Amazon S3 リダイレクトと Amazon S3 カスタムエラードキュメントを使用できます。詳細については、Amazon Simple Storage Service ユーザーガイドの「カスタムエラードキュメントの設定」および「リダイレクトの設定」を参照してください。(CloudFront もカスタムエラーページを提供します。詳細については、「HTTP ステータスコード別のカスタムエラーページを作成する」を参照してください)。

Amazon S3 バケットを CloudFront オリジンサーバーとして使用しても、バケットは変更されません。通常使用しているとおりに使用でき、通常の Amazon S3 料金が発生します。CloudFront の使用料の詳細については、「Amazon CloudFront 料金表」を参照してください。

注記

CloudFront API を使用して、ウェブサイトエンドポイントとして設定された Amazon S3 バケットを使用したディストリビューションを作成する場合、ウェブサイトが Amazon S3 バケットでホストされている場合でも、CustomOriginConfig を使用して設定する必要があります。CloudFront API を使用したディストリビューションを作成する方法の詳細については、Amazon CloudFront API リファレンスの「CreateDistribution」を参照してください。

既存の Amazon S3 バケットに CloudFront を追加する

オブジェクトを Amazon S3 バケットに保存している場合は、ユーザーがオブジェクトを S3 から直接取得できるようにするか、または CloudFront が S3 からオブジェクトを取得してからユーザーに配信するように設定できます。使用量が多ければ、Amazon S3 データ転送よりも CloudFront データ転送のほうが料金が安いので、ユーザーがオブジェクトに頻繁にアクセスする場合は、CloudFront を使用するほうがコストパフォーマンスが向上します。また、Amazon S3 だけからダウンロードするよりも、CloudFront を使用したほうが、ユーザーにより近い場所にオブジェクトが保存されているので、より速くダウンロードできます。

注記

CloudFront で Amazon S3 の Cross-Origin Resource Sharing 設定を尊重する場合は、選択したヘッダーを Amazon S3 に転送するように Origin を設定します。詳細については、「リクエストヘッダーに基づいてコンテンツをキャッシュする」を参照してください。

現在、Amazon S3 バケットのドメイン名 (DOC-EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com など) を使わずに、お客様自身のドメイン名 (example.com など) を使って Amazon S3 バケットから直接コンテンツを配信している場合は、以下の手順を行うことにより、支障なく CloudFront を追加できます。

Amazon S3 からすでにコンテンツを配信しているときに CloudFront を追加するには
  1. CloudFront ディストリビューションを作成します。詳細については、「ディストリビューションを作成する」を参照してください。

    ディストリビューションを作成するときに、オリジンサーバーとして Amazon S3 バケットの名前を指定します。

    重要

    バケットが CloudFront で正常に機能するには、その名前が DNS 命名要件に沿ったものでなければなりません。詳細については、Amazon Simple Storage Service ユーザーガイドの「バケットの命名規則」を参照してください。

    Amazon S3 で CNAME を使用している場合、ディストリビューションにもその CNAME を指定します。

  2. Amazon S3 バケット内にあるパブリックに読み出し可能なオブジェクトへのリンクが含まれているテストウェブページを作成して、リンクをテストします。この初期テストでは、オブジェクト URL にお客様のディストリビューションの CloudFront ドメイン名 (例: https://d111111abcdef8.cloudfront.net/images/image.jpg) を使用します。

    CloudFront URL の形式の詳細については、「CloudFront でファイルの URL 形式をカスタマイズする」を参照してください。

  3. Amazon S3 の CNAME を使用している場合、アプリケーションでは、バケットの名前 (例: DOC-EXAMPLE-BUCKET.s3.amazonaws.com) を使用する代わりにお客様のドメイン名 (例: example.com) を使用して、Amazon S3 バケットのオブジェクトを参照しています。引き続き、ディストリビューションの CloudFront ドメイン名 (例: d111111abcdef8.cloudfront.net) を使用する代わりにお客様のドメイン名を使用してオブジェクトを参照する場合、DNS サービスプロバイダーを使用して設定を更新する必要があります。

    Amazon S3 の CNAME が機能するためには、DNS サービスプロバイダーに、現在ドメインに対するクエリを Amazon S3 バケットにルーティングしているドメインの CNAME リソースレコードセットが必要です。たとえば、ユーザーが次のオブジェクトをリクエストした場合、

    https://example.com/images/image.jpg

    このリクエストは自動的に再ルーティングされ、次のオブジェクトがユーザーに表示されます。

    https://DOC-EXAMPLE-BUCKET.s3.amazonaws.com/images/image.jpg

    クエリを Amazon S3 バケットではなく CloudFront ディストリビューションにルーティングするには、DNS サービスプロバイダーから提供された方法を使用して、ドメインの CNAME リソースレコードセットを更新する必要があります。この更新された CNAME レコードによって、お客様のドメインからディストリビューションの CloudFront ドメイン名に、DNS クエリがリダイレクトされます。詳細については、DNS サービスプロバイダーから提供されたドキュメントを参照してください。

    注記

    Route 53 を DNS サービスとして使用している場合は、CNAME リソースレコードセットまたはエイリアスリソースレコードセットを使用できます。リソースレコードセットの編集については、「レコードの編集」を参照してください。エイリアスリソースレコードセットの詳細については、「エイリアスおよび非エイリアスリソースレコードの選択」を参照してください。どちらのトピックも、Amazon Route 53 開発者ガイドにあります。

    CloudFront での CNAME の使用の詳細については、「代替ドメイン名 (CNAME) を追加することによって、カスタム URL を使用する」を参照してください。

    CNAME リソースレコードセットを更新してから変更が DNS システム全体に伝達されるまで最大で 72 時間かかりますが、通常は、それよりも早く終了します。この間、コンテンツに対する一部の要求は引き続き Amazon S3 バケットにルーティングされ、それ以外の要求は CloudFront にルーティングされます。

Amazon S3 バケットを別の AWS リージョン に移動する

CloudFront ディストリビューションのオリジンとして Amazon S3 を使用していて、バケットを別の AWS リージョンに移動する場合、以下の両方に該当するときは、CloudFront でレコードを更新して新しいリージョンを使用するまでに最大 1 時間かかることがあります。

  • CloudFront オリジンアクセスアイデンティティ (OAI) を使用してバケットへのアクセスを制限している

  • バケットの移動先の Amazon S3 リージョンで認証に署名バージョン 4 が要求される

OAI を使用している場合、CloudFront はリージョン (数ある値の中で) を使用して、バケットのオブジェクトをリクエストするために使用する署名を計算します。OAI の詳細については、「オリジンアクセスアイデンティティを使用する (レガシー、非推奨)」を参照してください。署名バージョン 2 をサポートする AWS リージョンのリストについては、「Amazon Web Services 全般のリファレンス」の「署名バージョン 2 の署名プロセス」を参照してください。

CloudFront レコードの更新を高速化させるには、CloudFront コンソールの [General] (全般) タブの [Descrption] (説明) フィールドを更新するなどして、CloudFront ディストリビューションを更新できます。ディストリビューションを更新すると、CloudFront はバケットがあるリージョンを即座に確認します。すべてのエッジロケーションへの変更の伝達には数分しかかかりません。

MediaStore コンテナまたは MediaPackage チャネルを使用する

CloudFront を使用してビデオをストリーミングするには、まず、MediaStore コンテナとして設定された Amazon S3 バケットを設定するか、MediaPackage でチャネルとエンドポイントを作成します。その後、CloudFront でディストリビューションを作成し設定して、ビデオをストリーミングします。

詳細と手順については、以下のトピックを参照してください。

Application Load Balancer を使用する

オリジンが 1 つ以上の Amazon EC2 インスタンスでホストされている 1 つ以上の HTTP サーバー (ウェブサーバー) である場合、インターネットに接続している Application Load Balancer を使用して、インスタンスにトラフィックを分散できます。インターネットに接続しているロードバランサーは、パブリックに解決可能な DNS 名を持ち、クライアントからのリクエストをインターネット経由でターゲットにルーティングします。

ロードバランサーに直接アクセスするのではなく CloudFront 経由でのみウェブサーバーにアクセスできるようにする方法など、CloudFront のオリジンとしてApplication Load Balancer を使用する方法の詳細については、「Application Load Balancer へのアクセスを制限する」を参照してください。

Lambda 関数 URL を使用する

Lambda 関数 URL は、Lambda 関数専用の HTTPS エンドポイントです。Lambda 関数 URL を使用して、サーバーレスウェブアプリケーションを完全に Lambda 内で構築できます。API Gateway またはApplication Load Balancer と統合する必要なく、関数 URL を介して Lambda ウェブアプリケーションを直接呼び出すことができます。

関数 URL を持つ Lambda 関数を使用することによってサーバーレスウェブアプリケーションを構築する場合、CloudFront を追加して次の利点を得ることができます。

  • コンテンツを視聴者の近くにキャッシュしてアプリケーションを高速化する

  • ウェブアプリケーションのカスタムドメイン名を使用する

  • CloudFront キャッシュ動作を使用して、さまざまな URL パスを異なる Lambda 関数にルーティングする

  • CloudFront の地理的制限または AWS WAF (あるいはその両方) を使用して特定のリクエストをブロックする

  • CloudFront と共に AWS WAF を使用すると、悪意のあるボットからアプリケーションを保護し、一般的なアプリケーションの悪用を防ぎ、DDoS 攻撃からの保護を強化できます。

CloudFront ディストリビューションのオリジンとして Lambda 関数 URL を使用するには、オリジンドメインとして Lambda 関数 URL の完全なドメイン名を指定します。Lambda 関数 URL ドメイン名は、次の形式を使用します。

function-URL-ID.lambda-url.AWS-Region.on.aws

CloudFront ディストリビューションのオリジンとして Lambda 関数 URL を使用する場合は、関数 URL がパブリックにアクセス可能であることを確認する必要があります。これには、次のいずれかの方法を使用します。

  • オリジンアクセスコントロール (OAC) を使用する場合は、Lambda 関数 URL の AuthType パラメータで AWS_IAM 値を使用し、リソースベースのポリシーで lambda:InvokeFunctionUrl アクセス許可を許可する必要があります。OAC での Lambda 関数 URL の使用の詳細については、「AWS Lambda 関数 URL オリジンへのアクセスを制限する」を参照してください。

  • OAC を使用しない場合は、関数の URL の AuthType パラメータを NONE に設定し、リソースベースのポリシーで lambda:InvokeFunctionUrl 許可を許可できます。

CloudFront がオリジンに送信するリクエストにカスタムオリジンヘッダーを追加し、ヘッダーがリクエストに存在しない場合はエラーレスポンスを返す関数コードを記述することもできます。これにより、ユーザーが Lambda 関数 URL を直接使用するのではなく、CloudFront 経由でのみウェブアプリケーションにアクセスできるようにするのに役立ちます。

Lambda 関数 URL の詳細については、AWS Lambda デベロッパーガイドの以下のトピックを参照してください。

Amazon EC2 (または別のカスタムオリジン) を使用する

カスタムオリジンは、クライアントからインターネット経由でターゲットにリクエストをルーティングするパブリックに解決可能な DNS 名を持つ HTTP(S) ウェブサーバーです。HTTP(S) サーバーは、Amazon EC2 インスタンスなど、AWS でホストするか、別の場所でホストできます。ウェブサイトエンドポイントとして設定された Amazon S3 オリジンは、カスタムオリジンと見なされます。詳細については、「ウェブサイトのエンドポイントとして設定された Amazon S3 バケットを使用する」を参照してください。

独自の HTTP サーバーをカスタムオリジンとして使用する場合、サーバーの DNS 名に加えて、オリジンからオブジェクトを取得するときに CloudFront が使用する HTTP ポート、HTTPS ポート、およびプロトコルを指定します。

カスタムオリジンを使用する場合、プライベートコンテンツを例外として、ほとんどの CloudFront 機能がサポートされます。署名付き URL を使用してカスタムオリジンからコンテンツを配信できますが、CloudFront の場合、カスタムオリジンにアクセスするには、オリジンがパブリックにアクセス可能な状態になっている必要があります。詳細については、「署名付き URL と署名付き Cookie を使用したプライベートコンテンツを提供する」を参照してください。

Amazon EC2 インスタンスおよび他のカスタムオリジンを CloudFront とともに使用するには、次のガイドラインに従います。

  • 同じ CloudFront オリジンのコンテンツを提供するすべてのサーバーで同じコンテンツをホストし、提供します。詳細については、「ディストリビューション設定リファレンス」トピックの「オリジンの設定」を参照してください。

  • AWS Support または CloudFront を使用してこの値をデバッグに使用する必要がある場合は、すべてのサーバー上の X-Amz-Cf-Id ヘッダーエントリをログに記録します。

  • カスタムオリジンがリッスンしている HTTP および HTTPS ポートへのリクエストを制限します。

  • 実装内のすべてのサーバーの時計を同期します。CloudFront では、署名付き URL と署名付き Cookie、ログ、およびレポートで協定世界時 (UTC) を使用します。さらに、CloudWatch メトリクスを使用して CloudFront アクティビティをモニタリングする場合は、CloudWatch も UTC を使用することに注意してください。

  • 冗長サーバーを使用して障害に対処します。

  • カスタムオリジンを使用したプライベートコンテンツ供給の詳細については、「カスタムオリジンのファイルへのアクセスを制限する」を参照してください。

  • リクエストとレスポンス動作、およびサポートされる HTTP ステータスコードについては、「リクエストとレスポンスの動作」を参照してください。

カスタムオリジンで Amazon EC2 を使用する場合は、以下の操作を行うことをお勧めします。

  • ウェブサーバーのソフトウェアを自動的にインストールする Amazon マシンイメージを使用します。詳細については、「Amazon EC2 ドキュメント」を参照してください。

  • Elastic Load Balancing ロードバランサーを使用して、複数の Amazon EC2 インスタンスにわたるトラフィックを処理するほかに、Amazon EC2 インスタンスの変更からアプリケーションを隔離します。たとえば、ロードバランサーを使用する場合、アプリケーションを変更せずに Amazon EC2 インスタンスの追加と削除ができます。詳細については、「Elastic Load Balancing ドキュメント」を参照してください。

  • CloudFront ディストリビューションを作成する場合は、オリジンサーバーのドメイン名にロードバランサーの URL を指定します。詳細については、「ディストリビューションを作成する」を参照してください。

CloudFront オリジングループを使用する

たとえば、高可用性が必要なシナリオでオリジンフェイルオーバーを設定する場合は、CloudFront オリジンのオリジングループを指定できます。オリジンフェイルオーバーを使用して、CloudFront のプライマリオリジンと、プライマリオリジンが特定の HTTP ステータスコードの失敗応答を返したときに CloudFront が自動的に切り替わる 2 番目のオリジンを指定します。

オリジングループをセットアップするステップを含む詳細については、「CloudFront オリジンフェイルオーバーを使用して高可用性を最適化する」を参照してください。