送信トラフィックの VPC アクセスの有効化 - AWS App Runner

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

送信トラフィックの VPC アクセスの有効化

デフォルトでは、 AWS App Runner アプリケーションはパブリックエンドポイントにメッセージを送信できます。これには、独自のソリューション AWS のサービス、およびその他のパブリックウェブサイトやウェブサービスが含まれます。アプリケーションは、Amazon Virtual Private Cloud (Amazon VPC) から VPC で実行されるアプリケーションのパブリックエンドポイントにメッセージを送信することもできます。環境の起動時に VPC を設定しない場合、App Runner はパブリックであるデフォルトの VPC を使用します。

カスタム VPC で環境を起動して、送信トラフィックのネットワーク設定とセキュリティ設定をカスタマイズできます。 AWS App Runner サービスが Amazon Virtual Private Cloud (Amazon VPC) からプライベート VPC で実行されるアプリケーションにアクセスできるようにします。これを行うと、アプリケーションは に接続し、Amazon Virtual Private Cloud (Amazon VPC) でホストされている他のアプリケーションにメッセージを送信できます。例としては、Amazon RDS データベース、Amazon ElastiCache、およびプライベート VPC でホストされているその他のプライベートサービスがあります。

VPC コネクタ

VPC コネクタと呼ばれる App Runner コンソールから VPC エンドポイントを作成することで、サービスを VPC に関連付けることができます。VPC コネクタを作成するには、VPC、1 つ以上のサブネット、およびオプションで 1 つ以上のセキュリティグループを指定します。VPC コネクタを設定したら、1 つ以上の App Runner サービスで使用できます。

1 回限りのレイテンシー

アウトバウンドトラフィック用のカスタム VPC コネクタを使用して App Runner サービスを設定すると、1 回限りの起動レイテンシーが 2~5 分になることがあります。起動プロセスは、VPC Connector が他のリソースに接続する準備ができるまで待機してから、サービスステータスを実行中に設定します。最初に作成するときにカスタム VPC コネクタを使用してサービスを設定することも、後でサービスを更新して設定することもできます。

同じ VPC コネクタ設定を別のサービスに再利用しても、レイテンシーは発生しないことに注意してください。VPC コネクタの設定は、セキュリティグループとサブネットの組み合わせに基づいています。特定の VPC コネクタ設定では、レイテンシーは VPC Connector Hyperplane ENIs (エラスティックネットワークインターフェイス) の初回作成時に 1 回のみ発生します。

カスタム VPC コネクタと AWS Hyperplane の詳細

App Runner の VPC コネクタは、Network Load BalancerNAT GatewayAWS PrivateLink などの複数の AWS リソースの背後にある内部 Amazon ネットワークシステムである AWS Hyperplane に基づいています。 AWS Hyperplane テクノロジーは、高スループットと低レイテンシーの機能に加えて、より高いレベルの共有を提供します。Hyperplane ENI は、VPC コネクタを作成してサービスに関連付けるときにサブネットに作成されます。VPC コネクタの設定はセキュリティグループとサブネットの組み合わせに基づいており、複数の App Runner サービスで同じ VPC コネクタを参照できます。その結果、基盤となる Hyperplane ENIs は App Runner サービス間で共有されます。この共有は、リクエストの負荷を処理するために必要なタスクの数をスケールアップしても実行可能であり、VPC 内の IP スペースをより効率的に使用できます。詳細については、AWS Container Blog の「Deep Dive on AWS App Runner VPC Networking」を参照してください。

サブネット

各サブネットは特定のアベイラビリティーゾーンにあります。高可用性を実現するには、少なくとも 3 つのアベイラビリティーゾーンにまたがるサブネットを選択することをお勧めします。リージョンのアベイラビリティーゾーンが 3 つ未満の場合は、サポートされているすべてのアベイラビリティーゾーンでサブネットを選択することをお勧めします。

VPC のサブネットを選択するときは、パブリックサブネットではなくプライベートサブネットを選択してください。これは、VPC コネクタを作成すると、App Runner サービスが各サブネットに Hyperplane ENI を作成するためです。各 Hyperplane ENI にはプライベート IP アドレスのみが割り当てられ、AWSAppRunnerManagedキーのタグが付けられます。パブリックサブネットを選択すると、App Runner サービスの実行時にエラーが発生します。ただし、サービスがインターネット上の一部のサービスや他のパブリック にアクセスする必要がある場合は AWS のサービス、「」を参照してくださいサブネットを選択する際の考慮事項

サブネットを選択する際の考慮事項

  • サービスを VPC に接続すると、アウトバウンドトラフィックはパブリックインターネットにアクセスできません。アプリケーションからのすべてのアウトバウンドトラフィックは、サービスが接続されている VPC を介してルーティングされます。VPC のすべてのネットワークルールは、アプリケーションのアウトバウンドトラフィックに適用されます。つまり、サービスはパブリックインターネット や AWS APIsにアクセスできません。アクセスするには、次のいずれかを実行します。

  • の一部のアベイラビリティーゾーンは、App Runner サービスで使用できるサブネットをサポート AWS リージョン していません。これらのアベイラビリティーゾーンでサブネットを選択すると、サービスの作成または更新に失敗します。このような状況では、App Runner はサポートされていないサブネットとアベイラビリティーゾーンを示す詳細なエラーメッセージを提供します。その場合は、サポートされていないサブネットをリクエストから削除してトラブルシューティングを行い、もう一度試してください。

セキュリティグループ

オプションで、指定したサブネット AWS で App Runner がアクセスするために使用するセキュリティグループを指定できます。セキュリティグループを指定しない場合、App Runner は VPC のデフォルトのセキュリティグループを使用します。デフォルトのセキュリティグループでは、すべてのアウトバウンドトラフィックを許可します。

セキュリティグループを追加すると、VCP コネクタのセキュリティレイヤーが追加され、ネットワークトラフィックをより詳細に制御できます。VPC コネクタは、アプリケーションからのアウトバウンド通信にのみ使用されます。アウトバウンドルールを使用して、目的の宛先エンドポイントへの通信を許可します。また、送信先リソースに関連付けられているセキュリティグループに適切なインバウンドルールがあることを確認する必要があります。それ以外の場合、これらのリソースは VPC Connector セキュリティグループからのトラフィックを受け入れることができません。

注記

サービスを VPC に関連付けると、次のトラフィックは影響を受けません。

  • インバウンドトラフィック — アプリケーションが受信する受信メッセージは、関連付けられた VPC の影響を受けません。メッセージは、サービスに関連付けられているパブリックドメイン名を介してルーティングされ、VPC とやり取りしません。

  • App Runner トラフィック – App Runner は、ソースコードとイメージのプル、ログのプッシュ、シークレットの取得など、ユーザーに代わっていくつかのアクションを管理します。これらのアクションが生成するトラフィックは、VPC 経由でルーティングされません。

AWS App Runner と Amazon VPC の統合方法の詳細については、AWS 「App Runner VPC Networking」を参照してください。

注記

送信トラフィックについては、App Runner は現在 IPv4 のみをサポートしています。

VPC アクセスの管理

注記

サービスのアウトバウンドトラフィック VPC コネクタを作成すると、その後のサービス起動プロセスで 1 回限りのレイテンシーが発生します。この設定は、新しいサービスの作成時または作成後にサービスの更新時に設定できます。詳細については、このガイド1 回限りのレイテンシー「Networking with App Runner」の章の「」を参照してください。

次のいずれかの方法を使用して、App Runner サービスの VPC アクセスを管理します。

App Runner console

App Runner コンソールを使用してサービスを作成する場合、または後でその設定を更新する場合は、送信トラフィックの設定を選択できます。コンソールページのネットワーク設定セクションを探します。送信ネットワークトラフィック で、以下から を選択します。

  • パブリックアクセス: サービスを他の のパブリックエンドポイントに関連付けるには AWS のサービス。

  • カスタム VPC : サービスを Amazon VPC の VPC に関連付けるには。アプリケーションは、Amazon VPC でホストされている他のアプリケーションに接続してメッセージを送信できます。

カスタム VPC を有効にするには
  1. App Runner コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. 「サービスの設定」の「ネットワーク」セクションに移動します。

    ネットワークオプションを示す App Runner コンソールの設定ページ
  3. 送信ネットワークトラフィック にカスタム VPC を選択します。

  4. ナビゲーションペインで、VPC コネクタ を選択します。

    VPC コネクタを作成した場合、コンソールにはアカウント内の VPC コネクタのリストが表示されます。既存の VPC コネクタを選択し、へ を選択して設定を確認できます。次に、最後のステップに進みます。または、次の手順を使用して新しい VPC コネクタを追加することもできます。

  5. 新規追加 を選択して、サービスの新しい VPC コネクタを作成します。

    次に、新しい VPC コネクタの追加ダイアログボックスが開きます。

    App Runner コンソールに新しい VPC コネクタの追加ダイアログが表示される
  6. VPC コネクタの名前を入力し、使用可能なリストから必要な VPC を選択します。

  7. Subnets では、App Runner サービスにアクセスする予定のアベイラビリティーゾーンごとに 1 つのサブネットを選択します。可用性を高めるには、3 つのサブネットを選択します。または、サブネットが 3 つ未満の場合は、使用可能なすべてのサブネットを選択します。

    注記

    VPC コネクタにプライベートサブネットを割り当ててください。VPC コネクタにパブリックサブネットを割り当てると、更新中にサービスが自動的に作成またはロールバックされません。

  8. (オプション) セキュリティグループ で、エンドポイントネットワークインターフェイスに関連付けるセキュリティグループを選択します。

  9. (オプション) タグを追加するには、[新しいタグを追加] を選択し、そのタグのキーと値を入力します。

  10. [追加] を選択します。

    作成した VPC コネクタの詳細は、VPC コネクタ の下に表示されます。

  11. Next を選択して設定を確認し、Create and deploy を選択します。

    App Runner は VPC コネクタリソースを作成し、それをサービスに関連付けます。サービスが正常に作成されると、コンソールにサービスダッシュボードが表示され、新しいサービスの概要が表示されます。

App Runner API or AWS CLI

CreateService または UpdateService App Runner API アクションを呼び出すときは、 NetworkConfigurationパラメータEgressConfigurationのメンバーを使用して、サービスの VPC コネクタリソースを指定します。

次の App Runner API アクションを使用して、VPC Connector リソースを管理します。

  • CreateVpcConnector – 新しい VPC コネクタを作成します。

  • ListVpcConnectors – に関連付けられている VPC コネクタのリストを返します AWS アカウント。リストには詳細な説明が含まれています。

  • DescribeVpcConnector – VPC コネクタの完全な説明を返します。

  • DeleteVpcConnector – VPC コネクタを削除します。の VPC コネクタクォータに達した場合は AWS アカウント、不要な VPC コネクタを削除する必要がある場合があります。

VPC へのアウトバウンドアクセス権を持つアプリケーションを App Runner にデプロイするには、まず VPC コネクタを作成する必要があります。これを行うには、アプリケーションに関連付ける 1 つ以上のサブネットとセキュリティグループを指定します。その後、次の例に示すように、Create または CLI UpdateServiceで VPC コネクタを参照できます。

cat > vpc-connector.json <<EOF { "VpcConnectorName": "my-vpc-connector", "Subnets": [ "subnet-a", "subnet-b", "subnet-c" ], "SecurityGroups": [ "sg-1", "sg-2" ] } EOF aws apprunner create-vpc-connector \ --cli-input-json file:///vpc-connector.json cat > service.json <<EOF { "ServiceName": "my-vpc-connected-service", "SourceConfiguration": { "ImageRepository": { "ImageIdentifier": "<ecr-image-identifier> ", "ImageConfiguration": { "Port": "8000" }, "ImageRepositoryType": "ECR" } }, "NetworkConfiguration": { "EgressConfiguration": { "EgressType": "VPC", "VpcConnectorArn": "arn:aws:apprunner:..../my-vpc-connector" } } } EOF aws apprunner create-service \ --cli-input-json file:///service.js