🏃‍♂️

App Runnerの特徴9つまとめてみた

2021/07/03に公開

はじめに

  • 今回は、今年5月くらいにローンチされたAWSの新サービス、APP Runnerについて特徴的な部分をピックアップしまとめていきます。(ハンズオン系の記事はいっぱいあるので、、)
  • また、内容はHello AWS App Runnerから抜粋し、まとめているので詳細を知りたい人はこちらがオススメです。

App Runner

特徴その1

  • ECRにコンテナイメージをpushするか、GitHubにソースコードをpushすると、それを検知し、App Runnerがいい感じにコンテナをデプロイしてくれる。(code buildなどがいらないし、VPCとかセキュリティグループの設定もいらない)

1.png

特徴その2

  • コンテナがデプロイされるとApp RunnerがマネージドのLBを設定してくれる。

2.png

特徴その3

  • 今までは、Webアプリを仕様に合わせデプロイするときに、コンテナ管理とかVPC周り、ALB,NLBとかscaling, 自動化するならcodebuildとかを組み合わせていたものが、App Runnerがこれらをまとめて(隠蔽して)提供してくれる。

3.png

特徴その4

  • App Runnerのデプロイだと、VPCは作っていなく、内部的にはAPP Runnerのサービス側にはVPCがあるが、実際にApp Runnerを使う側はVPCを気にしなくて良い。
    => VPCのQuota制限はなし。

特徴その5

  • auto scaling設定は、最小のインスタンス数は1(0にはできない)
    => なぜかというと、コールドスタートを防ぎたいから
    (どうやら、Lambdaで利用者がコールドスタートを防ぐことを望む声が多かったっぽい)
    ただ、課金は1インスタンス分フルフルで請求はされない。

  • auto scaling設定でのRequest数の意味は、レスポンス返し待ちの数(リクエストバッファ) - 処理待ちのrequest数を指している。

特徴その6

  • (2021/07/03時点)の制約事情として、VPC内のリソースにアクセスできない。
    なので、例えばVPC内にあるRDSに接続できなかったりする。
    https://github.com/aws/apprunner-roadmap/issues/1
    => ただ、App Runnerのload mapにこの制約については載っているので近々この制約がなくなる可能性もある。

(2022/2/8)にApp RunnerがVPC対応したので、これで上記の制約は解消されました。
https://docs.aws.amazon.com/apprunner/latest/relnotes/release-2022-02-08-vpc.html

対応内容についても記事にしておきました。
https://qiita.com/yoshii0110/items/936c910c33a1a3e78f63

特徴その7

特徴その8

  • App Runnerは裏側でFargateを使用している。ので、リージョンに属するいずれかのAZ上にインスタンスが起動される、かつFargateの為、DefaultでAZ分散の形でコンテナをデプロイするので、App Runnerも複数台起動するとAZ分散がされる、、かも?(正式には、AZ分散されるかは公表していない。)

特徴その9

  • ヘルスチェック
    アプリケーションのポートとヘルスチェックのポートは一緒になる

特徴その10

  • App Runnerの間は、半角スペース

参考

https://aws.amazon.com/jp/blogs/containers/introducing-aws-app-runner/

https://twitter.com/toricls/status/1410910287255932930?s=20*

Discussion