web-dev-qa-db-ja.com

AWS Fargateタスクへのドメイン名の割り当て

パブリックサブネットでウェブアプリを実行しているAWS Fargateタスクがあるため、パブリックアドレスを持っています。私の質問は、ドメインを(Route 53を介して)そのタスクに接続する方法です。そのため、新しいバージョンのドメインを展開しても何も壊れません。

  • ALB/NLBを使用できることはわかっていますが、コストを節約したいと考えています。
  • パブリックIPは変更される可能性があるため、直接使用したくありません。
  • ソリューションはENIで何かを行う必要があると思いますが、Route 53を介してそれをポイントする方法がわかりません。

どんな助けでも大歓迎です。

ありがとう

11
Leo

ほとんどの場合、サービスディスカバリにALB/NLBを使用する可能性があります。いくつかのコストがありますが、DoS保護、スケーリング指標、ロギング、SSL/TLSといった、多くのメリットもあります。

ただし、 ECSサービス検出 を使用できます。

サービスディスカバリは、Amazon Route 53自動命名APIアクションを使用して、サービスのタスクのDNSエントリを管理し、VPC内で検出できるようにします

そして

パブリック名前空間はサポートされていますが、サービスディスカバリサービスを作成する前に、Route 53に登録されている既存のパブリックホストゾーンが必要です。

サービス検出では、タスクがawsvpc、ブリッジ、またはホストネットワークモードのいずれかを使用する必要があります。

以下は、fargateでサービスディスカバリを使用する方法の詳細を示すブログエントリです。 https://aws.Amazon.com/blogs/aws/Amazon-ecs-service-discovery/

6
M. Glatki

私がしようとしました。問題は、fargateが使用するパブリックIPがタスクにアタッチされているため、タスクが再起動されると、新しいIPアドレスが与えられ、DNSレコードを更新する必要があります。それがalb/nlbが使用される理由です。

理論的には、DNSホストレコードを管理するために別の何かを使用できます。おそらくラムダ関数または何か

サービス検出の考慮事項:サービス検出サービス用に作成されたDNSレコードは、パブリック名前空間が使用されている場合でも、パブリックIPアドレスではなく、常にタスクのプライベートIPアドレスで登録されます。

https://forums.aws.Amazon.com/thread.jspa?threadID=270599

0
oneklc

ECS開発者ガイド で述べられているように:

Amazon ECSは、パブリックDNS名前空間へのサービスの登録をサポートしていません

そのため、ECS Service Discoveryを介してすぐに使用できるパブリックドメイン登録のチャンスはありません。しかし、あなたができることは、AWS SKDを使用して、デプロイ後にコンテナのパブリックIPアドレスをフェッチし、それをパブリックRoute 53ホストゾーンに登録することです。

この記事 は、ラムダ関数を使用して、コンテナーが再デプロイされるときに正確にそれを行うアプローチを示しています。

0
Andreas Pasch