CloudFront ウェブディストリビューションの背後にある複数の API Gateway API 用にカスタムドメインエンドポイントを設定するにはどうすればよいですか?

所要時間2分
0

Amazon CloudFront ウェブディストリビューションの背後にある Amazon API Gateway カスタムドメインエンドポイントを使用したいと考えています。その後、ベースパスマッピングを使用して API リクエストを複数の API に転送したいと考えています。これを行うにはどうすればよいですか?

解決方法

REST API、HTTP API、または WebSocket API のカスタムドメイン名を作成する

カスタムドメイン名を作成し (まだ作成していない場合)、それを 2 つの異なる API に関連付けます。

注: WebSocket API のカスタムドメイン名を REST API または HTTP API にマッピングすることはできません。

REST API の場合は、「REST API のカスタムドメイン名を設定する」の手順に従います。

HTTP API の場合は、HTTP API のカスタムドメイン名の設定の手順に従います。

WebSocket API の場合は、「WebSocket API のカスタムドメイン名の設定」の手順に従います。

注: API Gateway でカスタムドメイン名を作成したら、DNS プロバイダーのリソースレコードを作成または更新して API エンドポイントにマッピングする必要があります。詳細については、「ドメイン名を登録する」を参照してください。

この記事の例では、REST API のリージョンレベルのカスタムドメイン名設定を使用しています。

API エンドポイント URL の例

https://restapiId1.execute-api.us-west-2.amazonaws.com/example1/home
https://restapiId2.execute-api.us-west-2.amazonaws.com/example2/home

カスタムドメイン URL の例 (ベースパスマッピングなし)

https://apigw.customdomain.com/example1/home
https://apigw.customdomain.com/example2/home

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

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

2.    [Select a delivery method for your content] (コンテンツの配信方法を選択) のページにある [Web] (ウェブ) で、[Get Started] (今すぐ始める) を選択します。

3.    [Create Distribution] (ディストリビューションを作成) ページの [Origin Domain] (オリジンドメイン) で、次の例のように API のカスタムドメイン URL を貼り付けます。

オリジンドメイン名の例

https://apigw.customdomain.com

4.[Origin path] (オリジンパス) は空白のままにします。注: CloudFront ウェブディストリビューションを呼び出すときにオリジンパスに正しくないベースパスを入力すると、エラーが発生する可能性があります。例えば、「Missing Authentication Token」(認証トークンがありません) というエラーを返す承認されていないリクエストエラーや、「403 Forbidden」(403 禁止) レスポンスコードなどです

5.    [Minimum Origin SSL Protocol] (最小オリジン SSL プロトコル) で、[TLSv1.2] を選択することをお勧めします。[SSLv3] は選択しないでください。API Gateway は SSLv3 プロトコルをサポートしていません。

6.    [Protocol] (プロトコル) には、[HTTPS Only] (HTTPS のみ) を選択します。注: API Gateway は暗号化されていない HTTP エンドポイントをサポートしていません。詳細については、「Amazon API Gateway のよくある質問」を参照してください。

7.    (オプション) カスタムヘッダーをオリジンに転送するには、[Add header] (ヘッダーを追加) を選択し、[Header name] (ヘッダー名) と [Value] (値) を入力します。注: CloudFront が追加できないカスタムヘッダーのリストについては、「CloudFront でオリジンリクエストに追加できないカスタムヘッダー」を参照してください。

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

CloudFront がディストリビューションを作成すると、ディストリビューションの [Status] (ステータス) 列の値が [InProgress] から [Deployed] (デプロイ済み) に変わります。

詳細については、「ディストリビューションの作成」を参照してください。

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

1.    CloudFront コンソールを開き、次の例のようにウェブディストリビューションの [Domain Name] (ドメイン名) をクリップボードにコピーします。

カスタムドメイン名の例

a222222bcdefg5.cloudfront.net

2.    「ディストリビューションのテスト」の指示に従ってください。

テストが成功すると「200 OK」レスポンスが返されます。「500 server error」(500 サーバーエラー) コードが表示された場合は、ウェブディストリビューションがデプロイされない場合があります。レスポンスがない場合は、CloudFront DNS レコードが伝達されていません。

CloudFront ディストリビューションが作成されると、セットアップは次のように設定されます。

a222222bcdefg5.cloudfront.net/example1/home --> apigw.customdomain.com/example1/home --> API-1

a222222bcdefg5.cloudfront.net/example2/home --> apigw.customdomain.com/example2/home --> API-2

API Gateway のカスタムドメイン名を使用して、単一の CloudFront ディストリビューションから 2 つの API に対してリクエストを実行できるようになりました。

CloudFront ウェブディストリビューションの受信認証ヘッダーの転送を設定するには、「独自の CloudFront ディストリビューションで API Gateway を設定するにはどうすればよいですか?」を参照してください。


関連情報

API Gateway API に対してセットアップするエンドポイントタイプを選択する

WebSocket API 用の API マッピングの使用

REST API の API マッピングの使用

HTTP API の API マッピングの使用

コメントはありません

関連するコンテンツ