App Runner のアーキテクチャと概念 - AWS App Runner

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

App Runner のアーキテクチャと概念

AWS App Runner は、リポジトリからソースコードまたはソースイメージを取得し、 で実行中のウェブサービスを作成して維持します AWS クラウド。通常、サービスを作成するには、App Runner アクション CreateServiceを 1 つだけ呼び出す必要があります。

ソースイメージリポジトリでは、App Runner がウェブサービスを実行するためにデプロイできる ready-to-use コンテナイメージを提供します。ソースコードリポジトリでは、ウェブサービスを構築して実行するためのコードと手順を提供し、特定のランタイム環境をターゲットにします。App Runner は、複数のプログラミングプラットフォームをサポートしています。各プラットフォームには、プラットフォームのメジャーバージョン用の 1 つ以上のマネージドランタイムがあります。

現時点では、App Runner は Bitbucket またはGitHubリポジトリからソースコードを取得することも、 の Amazon Elastic Container Registry (Amazon ECR) からソースイメージを取得することもできます AWS アカウント。

次の図は、App Runner サービスアーキテクチャの概要を示しています。この図には、2 つのサンプルサービスがあります。1 つは からソースコードをデプロイし GitHub、もう 1 つは Amazon ECR からソースイメージをデプロイします。Bitbucket リポジトリにも同じフローが適用されます。

App Runner アーキテクチャ

App Runner の概念

App Runner で実行されているウェブサービスに関連する主要な概念を次に示します。

  • App Runner サービス – App Runner がソースコードリポジトリまたはコンテナイメージに基づいてアプリケーションをデプロイおよび管理するために使用する AWS リソース。App Runner サービスは、実行中のアプリケーションのバージョンです。サービスの作成の詳細については、「」を参照してくださいApp Runner サービスの作成

  • ソースタイプ – App Runner サービスをデプロイするために指定するソースリポジトリのタイプ: ソースコード またはソースイメージ

  • リポジトリプロバイダー – アプリケーションソースを含むリポジトリサービス (、BitbucketGitHubAmazon ECR など)。

  • App Runner 接続 — App Runner がリポジトリプロバイダーアカウント ( GitHub アカウントや組織など) にアクセスできるようにする AWS リソース。接続の詳細については、「App Runner 接続の管理」を参照してください。

  • ランタイム — ソースコードリポジトリをデプロイするためのベースイメージ。App Runner は、さまざまなプログラミングプラットフォームとバージョンに対してさまざまなマネージドランタイムを提供します。詳細については、「ソースコードに基づく App Runner サービス」を参照してください。

  • デプロイ — ソースリポジトリ (コードまたはイメージ) のバージョンを App Runner サービスに適用するアクション。サービスへの最初のデプロイは、サービスの作成の一環として行われます。後続のデプロイは、次の 2 つの方法のいずれかで実行できます。

    • 自動デプロイ — CI/CD 機能。App Runner サービスを設定して、リポジトリに表示されるアプリケーションの各バージョンを自動的に構築 (ソースコード用) してデプロイできます。これは、ソースコードリポジトリの新しいコミットでも、ソースイメージリポジトリの新しいイメージバージョンでもかまいません。

    • 手動デプロイ — 明示的に開始する App Runner サービスへのデプロイ。

  • カスタムドメイン — App Runner サービスに関連付けるドメイン。ウェブアプリケーションのユーザーは、このドメインを使用して、デフォルトの App Runner サブドメインの代わりにウェブサービスにアクセスできます。詳細については、「App Runner サービスのカスタムドメイン名の管理」を参照してください。

    注記

    App Runner アプリケーションのセキュリティを強化するために、*.awsapprunner.com ドメインはパブリックサフィックスリスト (PSL) に登録されています。セキュリティを強化するために、App Runner アプリケーションのデフォルトドメイン名で機密 Cookie を設定する必要がある場合は、__Host-プレフィックス付きの Cookie を使用することをお勧めします。このプラクティスは、クロスサイトリクエストフォージェリ (CSRF) 攻撃からドメインを防ぐ際に役立ちます。詳細については、Mozilla 開発者ネットワークの「Set-Cookie」ページを参照してください。

  • メンテナンス — App Runner サービスを実行するインフラストラクチャで App Runner が時折実行するアクティビティ。メンテナンスが進行中の場合、サービスステータスは一時的に OPERATION_IN_PROGRESS (コンソールで進行中のオペレーション) に数分変わります。この間、サービスに対するアクション (デプロイ、設定更新、一時停止/再開、削除など) はブロックされます。数分後、サービスステータスが に返ったら、アクションを再試行してくださいRUNNING

    注記

    アクションが失敗しても、App Runner サービスが停止しているわけではありません。アプリケーションはアクティブで、リクエストの処理を継続します。サービスでダウンタイムが発生する可能性はほとんどありません。

    特に、App Runner は、サービスをホストする基盤となるハードウェアの問題を検出すると、サービスを移行します。サービスのダウンタイムを防ぐため、App Runner はサービスを新しいインスタンスセットにデプロイし、トラフィックをそれらのインスタンスにシフトします (ブルー/グリーンデプロイ)。料金が一時的にわずかに増加することがあります。

App Runner でサポートされている設定

App Runner サービスを設定するときは、サービスに割り当てる仮想 CPU とメモリの設定を指定します。お支払いは、選択したコンピューティング設定に基づいて行われます。料金の詳細については、AWS Resource Groups 料金表を参照してください。

次の表は、App Runner がサポートする vCPU とメモリの設定に関する情報です。

CPU メモリ

0.25 vCPU

0.5 GB

0.25 vCPU

1 GB

0.5 vCPU

1 GB

1 vCPU

2 GB

1 vCPU

3 GB

1 vCPU

4 GB

2 vCPU

4 GB

2 vCPU

6 GB

4 vCPU

8 GB

4 vCPU

10 GB

4 vCPU

12 GB

App Runner リソース

App Runner を使用する場合、 でいくつかのタイプのリソースを作成および管理します AWS アカウント。これらのリソースは、コードにアクセスし、サービスを管理するために使用されます。

次の表に、これらのリソースの概要を示します。

リソース名 説明

Service

実行中のアプリケーションのバージョンを表します。このガイドの残りの部分では、サービスタイプ、管理、設定、モニタリングについて説明します。

ARN: arn:aws:apprunner:region:account-id:service/service-name[/service-id]

Connection

App Runner サービスに、サードパーティープロバイダーに保存されているプライベートリポジトリへのアクセスを提供します。複数のサービス間で共有するための個別のリソースとして存在します。接続の詳細については、「App Runner 接続の管理」を参照してください。

ARN: arn:aws:apprunner:region:account-id:connection/connection-name[/connection-id]

AutoScalingConfiguration

App Runner サービスに、アプリケーションの自動スケーリングを制御する設定を提供します。複数のサービス間で共有するための個別のリソースとして存在します。 Auto Scaling の詳細については、「App Runner の自動スケーリングの管理」を参照してください。

ARN: arn:aws:apprunner:region:account-id:autoscalingconfiguration/config-name[/config-revision[/config-id]]

ObservabilityConfiguration

App Runner サービスの追加のアプリケーションオブザーバビリティ機能を設定します。複数のサービス間で共有するための個別のリソースとして存在します。オブザーバビリティ設定の詳細については、「」を参照してくださいサービスのオブザーバビリティの設定

ARN: arn:aws:apprunner:region:account-id:observabilityconfiguration/config-name[/config-revision[/config-id]]

VpcConnector

App Runner サービスの VPC 設定を構成します。複数のサービス間で共有するための個別のリソースとして存在します。VPC 機能の詳細については、「」を参照してください送信トラフィックの VPC アクセスの有効化

ARN: arn:aws:apprunner:region:account-id:vpcconnector/connector-name[/connector-revision[/connector-id]]

VpcIngressConnection

これは、受信トラフィックの設定に使用される AWS App Runner リソースです。VPC インターフェイスエンドポイントと App Runner サービス間の接続を確立し、Amazon VPC 内からのみ App Runner サービスにアクセスできるようにします。VPC の機能の詳細については、IngressConnection「」を参照してください受信トラフィックのプライベートエンドポイントの有効化

ARN: arn:aws:apprunner:region:account-id:vpcingressconnection/vpc-ingress-connection-name[/connector-id]]

App Runner リソースクォータ

AWS は、各 で AWS リソースを使用するためのクォータ (制限とも呼ばれます) をアカウントに課します AWS リージョン。次の表に、App Runner リソースに関連するクォータを示します。クォータは、 AWS App Runner のエンドポイントとクォータにも記載されていますAWS 全般のリファレンス

リソースクォータ 説明 デフォルト値 調整可能ですか?

Services

アカウントで ごとに作成できるサービスの最大数 AWS リージョン。

30

はい

Connections

各 のアカウントで作成できる接続の最大数 AWS リージョン。単一の接続を複数のサービスで使用できます。

10

はい

Auto scaling configurations

名前

各 のアカウントで作成する Auto Scaling 設定で指定できる一意の名前の最大数 AWS リージョン。単一の Auto Scaling 設定を複数のサービスで使用きます。

10

はい

名前あたりのリビジョン

一意の名前 AWS リージョン ごとにアカウントで作成できる Auto Scaling 設定リビジョンの最大数。1 つの Auto Scaling 設定リビジョンを複数のサービスで使用できます。

5

☓いいえ

Observability configurations

名前

アカウントで各 用に作成するオブザーバビリティ設定に含めることができる一意の名前の最大数 AWS リージョン。単一の可観測性設定を複数のサービスで使用できます。

10

はい

名前あたりのリビジョン

一意の名前 AWS リージョン ごとにアカウントで作成できるオブザーバビリティ設定リビジョンの最大数。1 つのオブザーバビリティ設定リビジョンを複数のサービスで使用できます。

10

☓いいえ

VPC connectors

各 のアカウントで作成できる VPC コネクタの最大数 AWS リージョン。単一の VPC コネクタを複数のサービスで使用できます。

10

はい

VPC Ingress Connection

各 のアカウントで作成できる VPC イングレス接続の最大数 AWS リージョン。単一の VPC イングレス接続を使用して、複数の App Runner サービスにアクセスできます。

1

☓いいえ

ほとんどのクォータは調整可能で、クォータの引き上げをリクエストできます。詳細については、Service Quotas ユーザーガイドの「Requesting a quota increase (クォータの引き上げのリクエスト)」を参照してください。