エッジ最適化された API エンドポイントが Amazon API Gateway に必要ですが、Amazon CloudFront ディストリビューションを詳細に制御する必要があります。独自のディストリビューションを作成して使用できますか?

API クライアントが地理的に分散されている場合は、エッジ最適化された API エンドポイントが API ゲートウェイに必要になる場合があります。このタイプのエンドポイントは、リージョンのエンドポイントのように動作しますが、その前に AWS マネージド型の CloudFront ウェブディストリビューションを使用すると、クライアントの接続時間を短縮することができます。

ただし、ディストリビューションを詳細に制御している間は、グローバルな CloudFront コンテンツ配信ネットワークのメリットが得られます。このセットアップでは、カスタムの CloudFront ディストリビューションを手動で前面に割り当てたリージョン API を使用します。

API Gateway にリージョン API を作成し、手順に従います。

API の GET メソッドをセットアップする

1.    API Gateway コンソールで、新しいリージョンの API の名前を選択します。

2.    [Resources (リソース)] ペインで、[アクション]、[メソッドの作成] の順に選択します。

3.    / リソースノードの下に表示されているリストから GET を選択し、チェックマークアイコンを選択します。

4.    / - GET - Setup の [Integration type (統合タイプ)] で、[Mock]、[Save (保存)] の順に選択します。モック統合では、これに到達するリクエストに応答するため、後のテストで役立ちます。

API をデプロイする

1.    API Gateway コンソールで、API を選択します。

2.    [Actions (アクション)]、[API のデプロイ] の順に選択します。

3.    [API のデプロイ] の [Deployment stage (デプロイステージ)] で、[New Stage (新しいステージ)] を選択します。

4.    [Stage name (ステージ名)] に、名前を入力します。たとえば、「test」と入力します。

5.    [デプロイ] を選択します。

6.    [Stage Editor] パネルで、[Invoke URL] をクリップボードにコピーします。URL は次のようになります: https://1a2bc3d456.execute-api.us-east-1.amazonaws.com/test

API をテストする

API Gateway コンソールPostman アプリ、またはコマンドラインインターフェイスの curl を使用して、API の URL で HTTP ステータスコード "200" が出力されるかテストします。curl を使用する場合は、以下のように行います。

Linux で、次のコマンドを実行します。

curl -IX GET https://restapi-id.execute-api.region.amazonaws.com/stageName

Windows PowerShell で、次のコマンドを実行します。

curl https://restapi-id.execute-api.region.amazonaws.com/stageName

注意: 次のコマンドで、restapi-idregionstageName は、API の URL の値に置き換えます。

curl の詳細については、cURL プロジェクトのウェブサイトを参照してください。

注意: "200" 以外のステータスコードを取得した場合は、コンソールでステージに API をデプロイ済みであることを確認してください。また、URL でステージが指定されていることも確認します。たとえば、「/test」と入力します。

CloudFront ウェブディストリビューションを作成する

1.    CloudFront コンソールで、[Create Distribution (ディストリビューションの作成)] を選択します。

2.    [Create Distribution Wizard (ディストリビューションの作成ウィザード)] の最初のページで、[Web (ウェブ)] セクションの [Get Started (今すぐ始める)] を選択します。

3.    [Origin Domain Name (オリジンドメイン名)] に、前にコピーした API URL を入力します。

4.    [オリジンのパス] に、[/[stage-name]] と入力します。これは、以前デプロイした API ステージの名前の前にスラッシュをつけたものです。たとえば、「/test」と入力します。

注意: URL にステージ名を含める場合、[オリジンのパス] には何も入力しないでください。

5.    [Origin Protocol Policy (オリジンプロトコルポリシー)] で、[HTTPS Only] を選択します。

注意: API Gateway では暗号化されていない (HTTP) エンドポイントはサポートされていません。詳細については、「Amazon API Gateway に関するよくある質問」を参照してください。

6.    (オプション) オリジンにカスタムヘッダーを転送するには、オリジンカスタムヘッダーに 1 つ以上のカスタムヘッダーを入力します。

注意: CloudFront からオリジンに転送できないカスタムヘッダーがいくつかあります。

7.    (オプション) CloudFront で割り当てるドメイン名ではなく、独自のカスタムドメイン名をディストリビューションで使用するには、[代替ドメイン名 (CNAME)] に 1 つ以上のドメイン名を入力します。詳細については、「代替ドメイン名 (CNAME) を追加してカスタム URL を使用する」を参照してください。

8.    (オプション) カスタマイズする追加設定 (例: オリジン SSL プロトコル) を行います。

注意: [オリジン SSL プロトコル] で、[SSLv3] は選択しないでください。このプロトコルは、API Gateway でサポートされていません。ベストプラクティスとして、[TLSv1.2] のみを選択することをお勧めします。

重要: [Default Cache Behavior Settings] で、[Cache Based on Selected Request Headers] の設定を変更する際は注意してください。この設定を [All] に変更している場合、または [Whitelist] に変更して、[Host] ヘッダーをそのホワイトリストに追加している場合、このセットアップを行うことはできません。詳細については、「リクエストヘッダーに基づいたコンテンツのキャッシュ」を参照してください。

9.    [Create Distribution (ディストリビューションの作成)] を選択します。

10.    ディストリビューションがデプロイされるまで待ちます。この処理には約 30 分かかることがあります。コンソールの [Status] に [Deployed] と表示されたら、ディストリビューションがデプロイされたことを意味します。

CloudFront ウェブディストリビューションをテストする

1.    CloudFront コンソールで、ディストリビューションの [ドメイン名] を書き留めます。カスタムドメイン名を使用していない場合、ドメインは次のようになります: a222222bcdefg5.cloudfront.net

2.    「API をデプロイおよびテストする」のステップ 6 で示したいずれかの方法を使用して、ドメイン名で HTTP ステータスコード "200" が出力されるかテストします。

注意: "500" サーバーエラーコードが表示された場合は、ディストリビューションが完全にデプロイされていない場合があります。レスポンスがない場合は、CloudFront DNS レコードが完全に伝播されていない可能性があります。いずれかの場合は、20 分待ってから、再度手順を行います。

お客様の API で、作成したディストリビューションが使用されるようになりました。CloudFront URL を使用して、API のリソースにアクセスできます。


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2019 年 01 月 11 日