記事の概要
簡単なアプリケーションであれば、コンテナイメージまたはソースコードを用意しておくと、AppRunnerを使うことで簡単にAWS上で実行環境を用意してデプロイすることができます。今回は、ECRリポジトリに配置したイメージから簡単なWebアプリケーションをデプロイしてみます。
Dockerイメージを作成し、ECRリポジトリにpushするまでの手順は以下の記事で紹介しています。
AWS CloudShellでDockerイメージを作成してAmazonECRプライべートリポジトリにpushしてみる
AppRunnerとは
アプリケーションが簡単にデプロイできる、だと何をしているサービスか分かりにくいですが、AppRunnerは 「Webアプリケーションをインターネット上に公開するために必要なコンテナ実行環境を自動で用意してくれる」 サービスと言えます。
個人的にAWSのソリューションアーキテクトの方が公開されている以下の資料が分かりやすかったです。
出典:https://speakerdeck.com/track3jyo/key-points-of-using-apprunner?slide=18
今回はECRリポジトリに配置したコンテナイメージをデプロイしますが、GitHubなどで管理するソースコードからデプロイすることも可能です。
AppRunnerサービスの作成
AppRunnerには「サービス」という概念があります。これがアプリケーション実行環境の単位になります。
このサービスを作成していきます。
-
AppRunnerの画面で「App Runner サービスを作成」をクリック
-
リポジトリタイプは「コンテナレジストリ」、プロバイダーは「Amazon ECR」を選択し、その他はデフォルトにします。※ 画像だとECR アクセスロールが「既存のサービスロールを使用」になっていますが、「新しいサービスロールの作成」にしてください
- サービス名は任意の名前を入力します。「ポート」は実行するアプリケーションの設定に合わせてください。 今回だとPythonコードとDockerfileで80番ポートを指定しているため、80を入力します
- 「デプロイ」ボタンをクリックするとデプロイがはじまります。デプロイが成功すればステータスが「Running」になり、アプリケーションへアクセスできます。今回のアプリケーションだとデプロイに4,5分ほどかかりました。
サービスの確認
「デフォルトドメイン」のリンクをクリックすると、Webアプリケーションが動作して「Hello world」が表示されることが確認できました。
この記事はここまでとなります。