Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS App Runnerがそろそろ本番環境でも使い物になりそう

n1215
PRO
December 20, 2022

AWS App Runnerがそろそろ本番環境でも使い物になりそう

LTで使ったAWS App Runnerのスライドです

n1215
PRO

December 20, 2022
Tweet

More Decks by n1215

Other Decks in Programming

Transcript

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

    View Slide

  2. 1. AWS App Runner 概要
    2

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  8. 8

    View Slide

  9. 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

    View Slide

  10. 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

    View Slide

  11. Before
    11

    View Slide

  12. After
    12

    View Slide

  13. 3. 料金など
    13

    View Slide

  14. 料金について
    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

    View Slide

  15. 改善されてほしい点
    ゼロスケール 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

    View Slide

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

    View Slide

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

    View Slide