web-dev-qa-db-ja.com

Amazon API GatewayエンドポイントにCNAMEする方法

CloudflareでAmazon API Gatewayエンドポイントを指すようにCNAMEを設定しようとしています。 CNAMEは、私のサブドメインの1つを参照するときに使用します。ゲートウェイは、次にDigitalOcean上のサーバーのIPを指します。私はアマゾンウェブサービスは初めてなので、誰かがDNS、Amazonゲートウェイ、Cloudfrontの正しい構成の概要を教えていただければ幸いです(Amazonの外部のDNSサーバーにゲートウェイを公開するために必要だと思います)。どんな助けでも大歓迎です。

[〜#〜] update [〜#〜]

私はこれにしばらくの間行っており、あまり進歩していません。これが実行可能なアプローチであるか、または他にどのように行われる可能性があるか、誰にもアイデアがありますか?

PDATE2

CNAMEレコードをcloudFlareに追加する必要があると思いましたが、リダイレクトループになりました。

curl -L -i -v https://sub.mydomain.com/
36
Silian Rails

APIゲートウェイドメインでCloudflareをポイントし、それを1日に呼び出すだけでは機能しない理由はいくつかあります。

  • API Gatewayは共有ホスティングを使用するため、ドメイン名を使用してリクエストの送信先のAPIを特定します。 api.yourdomain.comがAPIに属していることを知る方法はありません。
  • API Gatewayではhttpsを使用する必要がありますが、使用する証明書はデフォルトドメインに対してのみ有効です。

ただし、解決策があります。これを最近設定したときに従った手順は次のとおりです。

  1. Cloudflareダッシュボードの[暗号化]タブからOrigin証明書を生成します。
  2. APIが別のリージョンにある場合でも、us-east-1リージョンの証明書をAWS証明書マネージャーにインポートします。証明書チェーンの入力を求められたら、それを here からコピーできます。
  3. API Gatewayコンソールでカスタムドメインを追加し、追加した証明書を選択します。これを行う方法の詳細については、AWS サポート記事 を確認してください。
  4. 通常、カスタムドメインの初期化が完了するまで約45分かかります。完了すると、新しいCloudfront URLが提供されます。先に進んで、この新しいURLでもAPIが機能することを確認してください。
  5. [Cloudflare DNS]タブに移動し、作成したCloudfront URLを指すCNAMEレコードをセットアップします。
  6. 暗号化タブに切り替えて、SSLモードを「完全(厳密)」に設定します。この手順をスキップすると、リダイレクトループが発生します。

それでおしまい。カスタムドメインから提供される新しい高可用性APIをお楽しみください!

37
BonsaiOak

CloudFlareを使用してAmazonのAPI Gatewayカスタムドメインをセットアップする

  1. AWS管理コンソールでAPI Gatewayサービスに移動し、左側のメニューからCustom Domain Namesを選択します。

  2. Createボタンをクリックします。

  3. CloudFlareにログインし、ドメインを選択してCryptoタブを開きます

  4. SSLに移動し、SSLモードを「フル(厳格)」に設定して、リダイレクトループを回避します。

  5. Origin Certificatesに移動し、Create Certificateをクリックします

  6. CloudFlareに秘密鍵とCSRを生成させ、秘密鍵の種類としてRSAを選択します

  7. カスタムAPIドメインのホスト名がカバーされていることを確認してください。 (例:api.mydomain.com。このカスタムドメインを具体的に設定するか、デフォルトで設定されている* .mydomain.comなどのワイルドカードを使用できます。

  8. デフォルトで選択されているキー形式としてPEMを選択します。

  9. AWSでリージョンUS-EAST-1に切り替えて、Certificate Managerに移動します。

  10. Import a Certificateをクリックします。

  11. CloudFlare証明書の証明書本体を、AWSマネジメントコンソールのカスタムドメインの構成に証明書本体にコピーします。

  12. コンソールの証明書秘密鍵フィールドに秘密鍵をコピーします

  13. 証明書チェーンで、Cloudflare Origin CA-RSA Rootをコピーします。これは here です。

  14. AWSコンソールでカスタムドメイン名と証明書の名前を入力します

  15. これで、AWS CloudFrontにカスタムドメイン名が作成されます。ドメインがアクティブになるまで最大1時間かかる場合があります。

  16. 次に行う必要があるのは、AWSコンソールでカスタムドメインのマッピングを設定することです。

  17. 最後のステップは、CloudFlareで新しいCNAME Recordを作成して、ドメインをCloudFront URLにリンクすることです。 AWSコンソールでカスタムドメインの設定ページを開いたら、Distributionドメイン名をコピーします。これは、新しいCNAME Recordを作成するときに使用する必要があるドメインです。

ソース

21
Tyler Rafferty

この質問に対する既存の回答はどちらも正しいですが、これらの指示を完全に実行しても問題が解決しない場合は、API Gateway設定に進み、「カスタムドメイン名」に移動して、ベースパスマッピングを構成します。

これは、私のすべての問題を解決した欠落しているステップでした。

0
mmla