AWS App Runnerとは
AWS App Runnerはフルマネージド型のコンテナアプリケーションサービスです。
インフラストラクチャやコンテナの経験がなくても、ウェブアプリケーションやAPIサービスを簡単に構築、デプロイ、実行が可能です。
端的に説明しますと、色んなAWSサービスを組み合わせなくても、AWS App Runnerとリポジトリがあれば、HTTPSアクセス可能でスケーラブルなWEBページが作成できます。
AWS App Runnerのメリット
- ELBを作成しなくても自動的に負荷分散が可能
- オートスケーリングが簡単に設定可能
- Codeシリーズを使わなくもアプリケーションをECRやGitにプッシュすれば、自動でデプロイされる
- サブネット、ルートテーブル、セキュリティグループ、ELBなど機能として盛り込まれているので意識する必要がない
- プライベートサブネット上のDBや、Secrets Managerなどとも連携可能
AWS App Runnerのデメリット
- オートスケーリングの条件が同時実行数のみ(CPU使用率などでスケーリングはできません)
- サイドカーコンテナに対応していない
- セキュリティグループによるIP制限付加(WAFを使用すれば可能です)
15分で構築してみる
ECRのリポジトリを作成する(1分)
ECRのページへ遷移し、「リポジトリを作成」ボタンを押下します
リポジトリ名を適当に入力し、後はデフォルトで「リポジトリを作成」ボタンを押下します
リポジトリが作成されたことを確認します
※URIは後ほど使用するので、メモしておいてください
CloudShellからECRにイメージをプッシュする(4分)
CloudShellを起動します
ファイルのアップロードからDockerFileとindex.htmlをアップロードします
アップロードするDockerFileとindex.htmlの中身は下記になります。
FROM nginx:alpine
COPY ./index.html /usr/share/nginx/html
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>こんにちは </body>
</html>
ECRのページに戻り、「プッシュコマンドを表示」を押下します
4つのコマンドが表示されるので、全てCloudShellに入力してください
問題なくイメージがプッシュできると、ECRのリポジトリ内にlatestタグでイメージが作成されます
App Runnerを起動する(10分)
App Runnerのページに遷移し、「App Runnerサービスを作成」を押下します
先程メモしておいたECRのURIを入力します
ロールは「新しいサービスロールの作成」を選択し、「次へ」ボタンを押下します
サービス名は適当に入力して、ポートは80番へ変更しましょう
後の設定はデフォルトのままでOKで、「次へ」ボタンを押下します
デプロイが開始されます
数分経過するとデプロイが完了し、表示されているデフォルトドメインからWebページをHTTPSアクセスで表示することができます
「こんにちは」と表示されていればOKです
App Runner上からアプリケーションのログを簡単に確認することができます
※CloudWatchにも自動的に転送されるので、CloudWatch上での確認も可能です
メトリクスもApp Runner上から簡単に確認することができます
最後に
- AWS App Runnerを使用することで、15分でHTTPSアクセス可能なWEBページを作成することができました
- デフォルトで払い出されるURLのドメインはApp Runnerになっていますが、自分で購入したドメインを付与することも可能です
- Secrets ManagerやParameter Storeにも対応し、プライベートサブネット上のRDSとも連携できるので、業務でも十分活用できるレベルだと思います