AWS ツールキットでの AWS App Runner の使用 - AWS Cloud9

AWS ツールキットでの AWS App Runner の使用

AWS App Runner を使用すると、AWS Cloud で、ソースコードまたはコンテナイメージから、スケーラブルでセキュアなウェブアプリケーションに迅速でシンプルな、費用対効果の高い方法で直接デプロイできます。新しいテクノロジーを学習したり、使用するコンピューティングサービスを決定したり、AWS リソースのプロビジョニングと構成方法を知ったりする必要はありません。

AWS App Runner を使用すると、ソースイメージまたはソースコードに基づいて、サービスを作成し、管理できます。ソースイメージを使用する場合は、イメージリポジトリに保存されているパブリックまたはプライベートコンテナイメージを選択できます。App Runner は以下のイメージリポジトリプロバイダーをサポートしています。

  • Amazon Elastic Container Registry (Amazon ECR): AWS アカウントにプライベートイメージを保存します。

  • Amazon Elastic Container Registry Public (Amazon ECR Public): パブリックに読み取り可能なイメージを保存します。

ソースコードオプションを選択した場合、サポートされているリポジトリプロバイダーによって管理されているソースコードリポジトリからデプロイできます。現在、App Runner でソースコードリポジトリプロバイダーとしてサポートされているのは、GitHub です。

前提条件

AWS ツールキットを使用して App Runner を操作するには、以下が必要です。

  • AWS アカウント。

  • AWS App Runner を使用できるバージョンの AWS ツールキット

これらのコア要件に加えて、関連するすべての IAM ユーザーが App Runner サービスを操作するアクセス許可を持っている必要があります。また、コンテナイメージの URI や GitHub リポジトリへの接続など、サービスソースに関する特定の情報を取得する必要があります。この情報は、App Runner サービスの作成時に必要です。

既存の AWS マネージドポリシーを関連する AWS Identity and Access Management (IAM) エンティティ (ユーザーまたはグループ) に添付すると、App Runner に必要なアクセス許可が簡単に付与できます。App Runner には、IAM ユーザーに添付できる 2 つのマネージドポリシーが用意されています。

  • AWSAppRunnerFullAccess: ユーザーはすべての App Runner アクションを実行できます。

  • AWSAppRunnerReadOnlyAccess: ユーザーは App Runner リソースの詳細を一覧表示できます。

また、サービスソースとして Amazon Elastic Container Registry (Amazon ECR) からプライベートリポジトリを選択した場合は、App Runner サービス用に次のアクセスロールを作成する必要があります。

  • AWSAppRunnerServicePolicyForECRAccess: App Runner はアカウントの Amazon Elastic Container Registry (Amazon ECR) イメージにアクセスできます。

AWS ツールキットのコマンドペインでサービスインスタンスを設定するときに、このロールを自動的に作成できます。

注記

AWSServiceRoleForAppRunner サービスリンクロールを使用すると、AWS App Runner は以下のタスクを実行できます。

  • ログを Amazon CloudWatch Logs ロググループにプッシュします。

  • Amazon CloudWatch Events ルールを作成して、Amazon Elastic Container Registry (Amazon ECR) イメージプッシュをサブスクライブします。

サービスにリンクされたロールを手動で作成する必要はありません。AWS Management Consoleで AWS App Runner を作成するとき、または AWS ツールキットから呼び出す API オペレーションを使用すると、サービスにリンクされたロールが AWS App Runner によって作成されます。

詳細については、「AWS App Runner デベロッパーガイド」の「App Runner の Identity and Access Management」を参照してください。

AWS App Runner を使用すると、ソースイメージまたはソースコードからサービスをデプロイできます。

Source image

ソースイメージからデプロイする場合は、プライベートまたはパブリックの AWS イメージレジストリからそのイメージのリポジトリへのリンクを取得できます。

  • Amazon ECR プライベートレジストリ: Amazon ECR コンソール (https://console.aws.amazon.com/ecr/repositories) を使用するプライベートリポジトリの URI をコピーします。

  • Amazon ECR パブリックレジストリ: Amazon ECR Public Gallery (https://gallery.ecr.aws/) を使用するパブリックリポジトリの URI をコピーします。

注記

プライベート Amazon ECR リポジトリの URI を AWS ツールキットの [AWS Explorer] (AWS エクスプローラー) から直接取得するには、次の手順を実行します。

  • [AWS Explorer] (AWS エクスプローラー) を開いて、[ECR] ノードを展開し、その AWS リージョンのリポジトリを一覧表示します。

  • リポジトリを右クリックし、[Copy Repository URI] (リポジトリ URI をコピー) を選択して、リンクをクリップボードにコピーします。

イメージリポジトリの URI は、AWS ツールキットのコマンドペインでサービスインスタンスを設定するときに指定します。

詳細については、「AWS App Runner デベロッパーガイド」の「ソースイメージに基づいた App Runner サービス」を参照してください。

Source code

AWS App Runner サービスにソースコードをデプロイする場合は、サポートされているリポジトリプロバイダーが管理する Git リポジトリにソースコードが保存されている必要があります。App Runner でソースコードリポジトリプロバイダーとしてサポートされているのは、GitHub です。

GitHub リポジトリの設定については、GitHub の入門ガイドドキュメントを参照してください。

GitHub リポジトリから App Runner サービスにソースコードをデプロイする場合、App Runner は GitHub への接続を確立します。リポジトリがプライベートである (つまり GitHub でパブリックにアクセスできない) 場合は、App Runner に接続の詳細情報を指定する必要があります。

重要

GitHub 接続を作成するには、App Runner コンソール (https://console.aws.amazon.com/apprunner) を使用して、GitHub から AWS へリンクする接続を作成する必要があります。AWS ツールキットのコマンドペインを使用してサービスインスタンスを設定する場合は、[GitHub connections] (GitHub 接続) ページで使用可能な接続を選択します。

詳細については、「AWS App Runner デベロッパーガイド」の「App Runner 接続の管理」を参照してください。

App Runner サービスインスタンスは、コードのビルドと実行を可能にするマネージドランタイムを提供します。AWS App Runner では現在、以下のランタイムをサポートしています。

  • Python マネージドランタイム

  • Node.js マネージドランタイム

サービス設定の一環として、App Runner サービスがサービスをビルドして開始する方法に関する情報を指定します。この情報は、[Command Palette] (コマンドパレット) を使用して入力するか、YAML 形式の App Runner 設定ファイルを指定します。このファイルの値によって、App Runner にサービスをビルドして開始する方法を指示し、ランタイムコンテキストを指定します。このファイルには、関連するネットワーク設定と環境変数が含まれます。設定ファイルの名前は apprunner.yaml です。設定ファイルは、アプリケーションのリポジトリのルートディレクトリに自動的に追加されます。

料金

アプリケーションが使用するコンピューティングリソースとメモリリソースに対して課金されます。また、デプロイを自動化する場合は、1 か月間のすべての自動デプロイを提供する各アプリケーションに対して設定された月額料金も支払います。ソースコードからデプロイする場合は、App Runner がソースコードからコンテナをビルドするのにかかる時間に対して、ビルド料金を追加で支払います。

詳細については、AWS App Runner 料金を参照してください。