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

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

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

AWS App Runner を使用すると、AWS クラウド内で、ソースコードやコンテナイメージから、スケーラブルでセキュアなウェブアプリケーションに対して、迅速かつ費用対効果の高い方法で直接デプロイを行うことができます。新しいテクノロジーを学習したり、使用するコンピューティングサービスを決定したり、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 サービスを作成するときに必要です。

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

  • AWSAppRunnerFullAccess: ユーザーがすべての App Runner アクションを実行できるようにします。

  • AWSAppRunnerReadOnlyAccess: App Runner リソースの詳細をリストおよび表示できます。

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

  • AWSAppRunnerServicePolicyForECRAccess: アカウント内の Amazon Elastic Container Registry (Amazon ECR) イメージへのアクセスを App Runner に許可します。

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

注記

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

  • Amazon CloudWatch Logs 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] を開き、[ECR] ノードを展開して、その AWS リージョンのリポジトリを一覧表示します。

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

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

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

Source code

AWS App Runner サービスにソースコードをデプロイする場合は、そのコードを Git リポジトリに保存している必要があります。この 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 の料金」を参照してください。