Amazon API Gateway
開発者ガイド

カスタムドメイン名を別の API エンドポイントに移行する

エッジ最適化のエンドポイントとリージョンのエンドポイントの間で、カスタムドメイン名を移行できます。まず、新しいエンドポイント設定タイプをカスタムドメイン名の既存の endpointConfiguration.types リストに追加します。次に、カスタムドメイン名が、新しくプロビジョンされたエンドポイントを参照するように、DNS レコードを設定します。オプションで最後に、不要なカスタムドメイン名設定データを削除します。

移行を計画するとき、エッジ最適化 API のカスタムドメイン名の場合は、ACM によって提供される必須の証明書が 米国東部 (バージニア北部) リージョン (us-east-1) からの証明書であることが必要です。この証明書はすべての地理的場所に配布されます。ただし、リージョン API の場合、リージョンのドメイン名の ACM 証明書が、API をホストする同じリージョンからの証明書であることが必要です。us-east-1 リージョンにないエッジ最適化のカスタムドメイン名をリージョンのカスタムドメイン名に移行するには、まず、API のローカルリージョンに新しい ACM 証明書をリクエストする必要があります。

API Gateway でエッジ最適化のカスタムドメイン名とリージョンのカスタムドメイン名との間で移行が完了するまでに最大 60 秒かかることがあります。新しく作成されたエンドポイントがトラフィックを受け入れ可能になるまでの時間を含める場合、移行にかかる時間は DNS レコードの更新時期によっても異なります。

API Gateway コンソールを使用してリージョンおよびエッジ最適化のドメイン名を移行する

API Gateway コンソールを使用して、リージョンのカスタムドメイン名をエッジ最適化のカスタムドメイン名に、またはその逆に移行するには、以下の手順を実行します。

API Gateway コンソールを使用してリージョンまたはエッジ最適化のドメイン名を移行するには

  1. API Gateway コンソールにサインインし、プライマリナビゲーションペインで [カスタムドメイン名] を選択します。

  2. [カスタムドメイン名] で既存のドメイン名を選択してから、[編集] を選択します。

  3. 既存のエンドポイントタイプに応じて、以下の操作を行います。

    1. エッジ最適化のドメイン名の場合は、[Add Regional Configuration (リージョン設定の追加)] を選択します。

    2. リージョンのドメイン名の場合は、[Add Edge Configuration (エッジ設定を追加)] を選択します。

  4. ドロップダウンリストから証明書を選択します。

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

  6. [続行] を選択して、新しいエンドポイントの追加を確定します。

  7. DNS レコードを更新して、新しいドメイン名が、新しくプロビジョンされたターゲットドメイン名を参照するようにします。

AWS CLI を使用してカスタムドメイン名を移行する

AWS CLI を使用して、エッジ最適化のエンドポイントからリージョンのエンドポイントに、またはその逆にカスタムドメイン名を移行するには、update-domain-name コマンドを呼び出して新しいエンドポイントタイプを追加し、オプションで、update-domain-name コマンドを呼び出して古いエンドポイントタイプを削除します。

エッジ最適化のカスタムドメイン名からリージョンのカスタムドメイン名に移行する

エッジ最適化のカスタムドメイン名をリージョンのカスタムドメイン名に移行するには、以下のように update-domain-name CLI コマンドを呼び出します。

aws apigateway update-domain-name \ --domain-name 'api.example.com' \ --patch-operations [ \ { op:'add', path: '/endpointConfiguration/types',value: 'REGIONAL' }, \ { op:'add', path: '/regionalCertificateArn', value: 'arn:aws:acm:us-west-2:123456789012:certificate/cd833b28-58d2-407e-83e9-dce3fd852149' } \ ]

リージョン証明書はリージョンの API と同じリージョンである必要があります。

成功のレスポンスには、200 OK ステータスコードと以下のような本文が含まれます。

{ "certificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a", "certificateName": "edge-cert", "certificateUploadDate": "2017-10-16T23:22:57Z", "distributionDomainName": "d1frvgze7vy1bf.cloudfront.net", "domainName": "api.example.com", "endpointConfiguration": { "types": [ "EDGE", "REGIONAL" ] }, "regionalCertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/cd833b28-58d2-407e-83e9-dce3fd852149", "regionalDomainName": "d-fdisjghyn6.execute-api.us-west-2.amazonaws.com" }

移行されたリージョンのカスタムドメイン名の場合、リージョン API のホスト名が regionalDomainName プロパティとして返されます。リージョンのカスタムドメイン名がこのリージョンのホスト名を参照するように DNS レコードを設定する必要があります。これにより、カスタムドメイン名宛てのトラフィックがリージョンのホストにルーティングされるようになります。

DNS レコードが設定されたら、AWS CLI の update-domain-name コマンドを呼び出して、エッジ最適化のカスタムドメイン名を削除できます。

aws apigateway update-domain-name \ --domain-name api.example.com \ --patch-operations [ \ {op:'remove', path:'/endpointConfiguration/types', value:'EDGE'}, \ {op:'remove', path:'certificateName'}, \ {op:'remove', path:'certificateArn'} \ ]

リージョンのカスタムドメイン名をエッジ最適化のカスタムドメイン名に移行する

リージョンのカスタムドメイン名をエッジ最適化のカスタムドメイン名に移行するには、以下のように AWS CLI の update-domain-name コマンドを呼び出します。

aws apigateway update-domain-name \ --domain-name 'api.example.com' \ --patch-operations [ \ { op:'add', path:'/endpointConfiguration/types',value: 'EDGE' }, \ { op:'add', path:'/certificateName', value:'edge-cert'}, \ { op:'add', path:'/certificateArn', value: 'arn:aws:acm:us-east-1:123456789012:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a' } \ ]

エッジ最適化のドメイン証明書は us-east-1 リージョンに作成する必要があります。

成功のレスポンスには、200 OK ステータスコードと以下のような本文が含まれます。

{ "certificateArn": "arn:aws:acm:us-east-1:738575810317:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a", "certificateName": "edge-cert", "certificateUploadDate": "2017-10-16T23:22:57Z", "distributionDomainName": "d1frvgze7vy1bf.cloudfront.net", "domainName": "api.example.com", "endpointConfiguration": { "types": [ "EDGE", "REGIONAL" ] }, "regionalCertificateArn": "arn:aws:acm:us-east-1:123456789012:certificate/3d881b54-851a-478a-a887-f6502760461d", "regionalDomainName": "d-cgkq2qwgzf.execute-api.us-east-1.amazonaws.com" }

指定したカスタムドメイン名の場合、API Gateway はエッジ最適化 API のホスト名を distributionDomainName プロパティ値として返します。エッジ最適化のカスタムドメイン名がこのディストリビューションドメイン名を参照するように DNS レコードを設定する必要があります。これにより、エッジ最適化のカスタムドメイン名宛てのトラフィックがエッジ最適化の API ホスト名にルーティングされるようになります。

DNS レコードが設定されたら、カスタムドメイン名の REGION エンドポイントタイプを削除できます。

aws apigateway update-domain-name \ --domain-name api.example.com \ --patch-operations [ \ {op:'remove', path:'/endpointConfiguration/types', value:'REGIONAL'}, \ {op:'remove', path:'regionalCertificateArn'} \ ]

このコマンドの結果は以下のような出力になります。この出力には、エッジ最適化のドメイン名の設定データのみが含まれています。

{ "certificateArn": "arn:aws:acm:us-east-1:738575810317:certificate/34a95aa1-77fa-427c-aa07-3a88bd9f3c0a", "certificateName": "edge-cert", "certificateUploadDate": "2017-10-16T23:22:57Z", "distributionDomainName": "d1frvgze7vy1bf.cloudfront.net", "domainName": "regional.haymuto.com", "endpointConfiguration": { "types": "EDGE" } }