App Runnerとは?
フルマネージド型のコンテナアプリケーションサービスです。
インフラやコンテナの経験がなくてもコンテナ化されたWebアプリケーションやAPIサービスを構築、デプロイ、実行することが可能です。
特徴
- ECRにコンテナイメージをプッシュ or GitHubにソースコードをpushするとそれを検知してApp Runnerがコンテナをデプロイする。
- コンテナがデプロイされるとApp Runnerがマネージドのロードバランサを設定してくれる。
- VPC周り、Auto Scaling、CodeBuild等をApp Runnerがまとめて隠蔽して提供してくれる。
イメージ
特に強力なのは「Github」などのソースコードから直接コンテナイメージをビルドしてデプロイしてくれる機能と言えるでしょう。コンテナをはじめインフラのことが全くわからないソースコードだけ保持しているという状況でも簡単にインフラ構築ができます。
ソースコードからコンテナイメージのビルドする際のサポートランタイム
現在サポートされているランタイムは以下です。
- Python
- Java
- Node.js
もちろんこれら以外の言語でも事前にコンテナイメージをビルドしてECRなどのレポジトリに格納する形を取れば普通に使用することが可能です。
開発者が意識すること
基本的な細かいインフラ設定(ロードバランサーやオートスケールなど)は隠蔽されています。
開発者が唯一意識することとしては「コンテナインスタンスの集合」のみになります。
手順
- IAMユーザーを作成する。
- AWS CLIでユーザーを登録する。
- デプロイ
デプロイ
以下のような形式のデフォルトドメインが自動生成されます。
1 |
https://xxxxxxx.<region>.awsapprunner.com |
もちろん任意のドメインでも設定が可能です。(カスタムドメイン)
自動デプロイ
ソースコードやソースイメージの変更を検知して自動でダウンタイムなくデプロイが可能です。以下のようなツールを利用しなくても勝手にAppRunnerがデプロイを自動的にやってくれます。
- CodePipeline
- CodeDeploy
- サードパーティ製品
内部的には「ブルーグリーンデプロイ」を自動でやってくれる感じです。
オートスケール
トラフィックサイズに応じてオートスケールしてくれる。閾値とコンテナの最小/最大数を決めます。
以下のような挙動になります。
- トラフィックが増えるとコンテナの台数を増やす。
- トラフィックが減るとコンテナの台数を減らす。
ログ
ログとメトリクスを自動で収集してくれます。アプリ内で出力した標準出力、標準エラー出力それぞれ出力してくれることになります。AppRunnerコンソールから確認可能です。
メトリクス
- CPU使用率
- HTTPのリクエストカウント
また、最近のアップデートで「AWS X-Ray」との統合によりトレースデータのモニタリングも可能になりました。
セキュリティ
TLSを自動で設定します。各コンテナは独立した環境で実行されます。デフォルトドメインがHTTPSになっていてこれはTLSを自動で設定してくれているからの挙動になります。
各コンテナは独立した環境で実行されるので他のコンテナからの影響は受けないような作りになります。
VPCサポート
VPCコネクターを設定することで自身のVPC内にあるリソース(RDS、ElastiCacheなど)に接続が可能になります。
VPCも基本的に開発者が独自に設定するVPCとは独立した存在になっているので、接続したいVPCネットワークに対してネットワークインターフェース(Elastic network interface)をはやすことで接続が可能になります。
App Runnerのユースケース
基本的にはスタートアップとか新規事業とかのプロダクトの立ち上げ期に有効ですが、それ以外の場合でも使えます。インフラよりもプロダクト開発に集中したいようなシチュエーションで使えたりします。
モノリスアプリケーション
バックエンドとフロントエンドが一緒になったアプリケーション
モバイルバックエンド
モバイルアプリケーションのバックエンド
マイクロサービス/API
マイクロサービスやAPI
アプリ開発の機能
設定値を環境変数として管理できる機能があります。
この記事へのコメントはありません。