Slide 1

Slide 1 text

AWS App Runnerがそろそろ本番環境でも使い物 になりそう 2022年12月20日 (火) 株式会社Nextat 中榮健二 1

Slide 2

Slide 2 text

1. AWS App Runner 概要 2

Slide 3

Slide 3 text

AWS App Runner概要 https://aws.amazon.com/jp/apprunner/ 2021年5月にリリース コンテナ化されたウェブアプリケーションのフルマネージドサービス GitHubのリポジトリからのソースコードベースのデプロイとECRからのコンテナ ベースのデプロイに対応 バックエンドはFargate(Firecracker VM) 3

Slide 4

Slide 4 text

構成 参考:https://dev.classmethod.jp/articles/report-con406-reinvent2022/ 4

Slide 5

Slide 5 text

ECSとの違い デプロイパイプラインを自前で用意する必要がない ロードバランサーも組込みなのでALBなどを別途使う必要がない 1つのサービスに対し複数のコンテナを組み合わせられない オートスケールの設定項目 最小/最大インスタンス数、1コンテナあたりの同時リクエスト数の3項目 その他設定項目もECSと比べると細やかさはないがかなり楽 ECSタスクに相当するジョブの機能はない ECS Execに相当する機能はない Arm(Graviton)、Windowsコンテナ未対応 5

Slide 6

Slide 6 text

2. 今年の注目のアップデート3つ 6

Slide 7

Slide 7 text

2022/02/08 カスタマーVPCへの接続が可能に https://docs.aws.amazon.com/apprunner/latest/relnotes/release-2022- 02-08-vpc.html VPCコネクタ対応 DynamoDBなどグローバルなリソースだけでなく、RDSなどVPC内のリソースが 使えるようになった 7

Slide 8

Slide 8 text

8

Slide 9

Slide 9 text

2022/10/28 マネージドランタイムの言語対応追加 https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-app- runner-support-php-go-dot-net-ruby-managed-runtimes/ GitHubからの自動デプロイで利用される JavaとNode.jsのみだったところにPHP、Go、.NET、Rubyが追加 9

Slide 10

Slide 10 text

2022/10/31 プライベートアクセスが可能に https://aws.amazon.com/jp/about-aws/whats-new/2022/11/aws-app- runner-supports-privately-accessible-services-amazon-vpc/ インターネット経由の公開アクセスに限定されていたが、プライベートサービスを 選択するとVPC内からのアクセスに限定できるようになった VPCエンドポイント経由のアクセス CloudFront + WAFによる防御時の迂回路がなくなった VPC内からアクセスするマイクロサービスをApp Runnerで作成することも可能 になった 10

Slide 11

Slide 11 text

Before 11

Slide 12

Slide 12 text

After 12

Slide 13

Slide 13 text

3. 料金など 13

Slide 14

Slide 14 text

料金について CloudFront + WAF + VPCエンドポイント(2AZ) + App Runner vCPU 1、メモリ2GB ずっと待機状態とすると5500円くらい(リクエスト時間に応じて料金増) CloudFront + WAF + ALB + ECS/Fargate vCPU0.5、メモリ1GB 6,500円くらい DBは未考慮、デプロイ・ビルドの料金(誤差)は別 プライベート構成にするとENIが高い(AZを減らせばもうちょい減る)がALBと トントンくらいか アクセス数の少ない社内アプリくらいであればECSより安そうな感じ 趣味で使うには高いか 14

Slide 15

Slide 15 text

改善されてほしい点 ゼロスケール https://github.com/aws/apprunner-roadmap/issues/9 ENIからFargateにアクセスする構成だとECS on Fargateと大差ない コールドスタート30秒くらいになりそうなのでしばらく無理そう Secrets Managerからの環境変数の読込 https://github.com/aws/apprunner- roadmap/issues/6 最低スペック変更 https://github.com/aws/apprunner-roadmap/issues/25 vCPU 1 + メモリ2GBが最低スペックなので Arm対応 https://github.com/aws/apprunner-roadmap/issues/98 サイドカー対応(無理そう) https://github.com/aws/apprunner- roadmap/issues/71 PHPのマネージドランタイムでビルトインウェブサーバーを使わせるのをやめろ https://github.com/aws/apprunner-roadmap/issues/157 15

Slide 16

Slide 16 text

まとめ VPCコネクタによりRDSなどVPC内リソースへの接続に対応 プライベートエンドポイントによりWAFでの完全防御やマイクロサービスに対応 マネージドランタイムがGoなどにも対応 ECS/Fargateの代替として十分アリ AWS縛りがなければ Fly.io、Render、RailwayのようなPaaSかGCPの Cloud Runのほうが良さそう スケーリングや料金面はまだまだAWS Lambdaが強い エンドポイントの多いHTTP APIを全部Lambdaにする構成は正直アンチパタ ーンだと思うのでコンテナ系のサービスには頑張ってほしい 16

Slide 17

Slide 17 text

ご清聴ありがとうございました 17