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

もうすぐローンチ 3 周年! AWS App Runner の魅力と進化の歴史

もうすぐローンチ 3 周年! AWS App Runner の魅力と進化の歴史

Talked at 完全に理解するシリーズ#1 "AWS App Runner"
https://forkwell.connpass.com/event/309127/
2024/02/21(水) 19:30 〜 21:00
---
AWS App Runner は 最短 10 分で Rails や Laravel などの Web アプリや Web API を公開。インフラや AWS に詳しくない人でも「手軽に」「長く」使えるホスティングサービスです。そんな App Runner は間もなくローンチから 3 周年 (2021 年 5 月 19 日ローンチ) を迎えます。
このセッションではそんな App Runner の魅力や具体的なユースケースからはじめ、また約 3 年間どのように進化を遂げてきたかを振り返り、最新のアップデート情報までお伝えします。

はまーん

February 21, 2024
Tweet

Video

More Decks by はまーん

Other Decks in Programming

Transcript

  1. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. もうすぐローンチ 3 周年︕ AWS App Runner の魅⼒と進化の歴史 完 全 に 理 解 す る シ リ ー ズ # 1 " A W S A p p R u n n e r " Shinichi Hama(はまーん)/ :track3jyo アマゾン ウェブ サービス ジャパン合同会社 シニアソリューションアーキテクト
  2. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 2 Shinichi Hama / はまーん (@track3jyo) Sr. Solutions Architect, Startup Amazon Web Services Japan --- • ⼤阪オフィス勤務(ほぼ家にいますが) • スタートアップ企業の⽀援 • 過去のスライド: https://speakerdeck.com/track3jyo • 趣味はソロキャン
  3. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 本セッションのゴール 3 • AWS App Runner を利⽤するイメージができるようになる • 3 年の進化の歴史から最新情報をキャッチアップし、 またプロダクトの今後の未来に期待を持つ
  4. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • AWS App Runner が誕⽣した背景 • App Runner の仕組み • 代表的なユースケース • 進化の歴史 • まとめ アジェンダ 4
  5. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 5 AWS App Runner が誕⽣した背景
  6. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 6 AWS は幅広い選択肢を提供
  7. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 7 AWS は幅広い選択肢を提供 200 以上のサービス
  8. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 8 © 2024, Amazon Web Services, Inc. or its affiliates. All rights reserved. 8 ブロックのようにサービスを組み合わせて アプリケーション構築が可能
  9. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS サービスを組み合わせてインフラを構築 9 柔軟性が⾼い Amazon VPC [ネットワーク] AWS Fargate [コンピュート] Amazon ECS [オーケストレーション] Application Load Balancer (ALB) [ロードバランサー] AWS Auto Scaling [オートスケール] AWS CodeBuild [CI/CD] ⼿間がかかる
  10. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 構築済みのインフラにすぐにデプロイ 10 AWS App Runner
  11. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 11 App Runner の仕組み
  12. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner とは 12 インフラや AWS についての経験がなくても、 コンテナ化されたウェブアプリケーションや API を 簡単かつ迅速に AWS 上で動かせるサービス
  13. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner 上にウェブアプリケーションをデプロイ 13 Amazon ECR Image Repo App Runner 動かしたいウェブアプリケーションを指定する
  14. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner 上にウェブアプリケーションをデプロイ 14 GitHub Repo GitHub App Runner 動かしたいウェブアプリケーションを指定する
  15. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner 上にウェブアプリケーションをデプロイ 15 GitHub Repo GitHub App Runner ソースコードを取得 コンテナインスタンス ロードバランサー ネットワーク (VPC) App Runner コンテナイメージをビルドしてデプロイ
  16. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner 上にウェブアプリケーションをデプロイ 16 Amazon ECR Image Repo App Runner コンテナインスタンス ロードバランサー ネットワーク (VPC) App Runner コンテナイメージを取得 コンテナイメージをデプロイ
  17. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner 上にウェブアプリケーションをデプロイ 17 ネットワーク (VPC) App Runner エンドユーザー デフォルトドメイン https://xxxxxxxx.<region>.awsapprunner.com コンテナインスタンス ロードバランサー
  18. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner: Under the Hood 18 Source code GitHub Container Image ECR AWS CodeBuild Managed Language Runtime Application Container Image ECS Fargate Tasks L7 Request Router Internet facing NLB Service URL à NLB Clients Internet DNS resolution HTTP request + App Runner service accounts Copy image IAM Role ソースコード
  19. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 19 初回デプロイの デモしたよ https://youtu.be/g8aa6_emIcs?si=9D2npDKIBZ__Hehm
  20. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 20 2 回⽬以降のデプロイの デモしたよ https://youtu.be/OgpC2GqYRuw?si=XxWnAvELfDdtYlP5
  21. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. リクエスト数に合わせてオートスケーリング 21 ロードバランサー エンドユーザー デフォルトドメイン エンドユーザー エンドユーザー コンテナインスタンス ネットワーク (VPC) App Runner
  22. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. リクエスト数に合わせてオートスケーリング 22 コンテナインスタンス ロードバランサー ネットワーク (VPC) App Runner エンドユーザー デフォルトドメイン エンドユーザー エンドユーザー
  23. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. リクエスト数に応じてスケールするコンテナインスタンス課⾦ 23 0 80 160 240 12:00 AM 8:00 AM 12:00 PM 4:00 PM 8:00 PM 12:00 AM 秒間リクエスト数 スケーリングの閾値設定 (同時リクエスト数) 1 台のコンテナインスタンス からスタート 閾値を上回る/下回るたびに、 コンテナインスタンスが スケールアウト/イン 同時リクエスト数が 0 のときは メモリ費⽤のみ発⽣ 1 2 3 4 コンテナインスタンス数
  24. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 24 代表的なユースケース
  25. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner の代表的ユースケース 25 1. モノリスな Web アプリ AWS App Runner Amazon Aurora
  26. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner の代表的ユースケース 26 2. モバイルアプリやシングルページアプリケーションの バックエンド API AWS App Runner Amazon DynamoDB データを保存 ログイン ⼀覧表⽰
  27. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner の代表的ユースケース 27 3. 社内向け Web サイトや API お客様の VPC AWS App Runner 社内ネットワーク AWS Direct Connect VPC Endpoint (プライベートなエンドポイント) VPC Endpoint からのみアクセス可能
  28. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 28 進化の歴史
  29. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS App Runner 関連のリリース (2021.05 - 2024.01) • AWS Copilot CLI が App Runner をサポート • AWS App2Container がApp Runner へのデプロイをサポート • AWS Toolkit for JetBrains での AWS App Runner 統合 • AWS Copilot が App Runner Services およびその他の拡張機能のカスタムドメイン名の サポート • AWS Toolkit for VS Code でのApp Runner 統合 • ECR Public がコンテナを App Runner に直接起動する機能を追加 • AWS CDK で App Runner の構築が可能に • App Runner が GitHub Actions をサポート • App Runner が Amazon VPC をサポート • App Runner がJava をマネージドランタイムとしてサポート • App Runner が AWS X-Ray との統合をサポート • App Runner でルートドメイン名で Route 53 エイリアスレコードをサポート • App Runner がクロスリージョンの ECR イメージを使⽤したデプロイをサポート • App Runner で Node.js 16 マネージドランタイムをサポート • App Runner がサポートするマネージドランタイムに PHP、Go、.Net、Ruby を追加 • App Runner が Amazon VPC 内のプライベートにアクセス可能なサービスをサポート • AWS Copilot CLI が App Runner のプライベートアクセス可能なサービスに対応 • App Runner が Secrets Manager と Systems Manager からのシークレットと設定の 取得をサポート • App Runner が HTTP 1.0 プロトコルをサポート • App Runner に、サービスレベルの同時実⾏数、CPU およびメモリ使⽤率の各メトリク スが追加 • App Runner が HTTP から HTTPS へのリダイレクトをサポート • App Runenr が AWS WAF をサポート • App Runner がシンガポール、シドニーおよびフランクフルトリージョンで利⽤可能に • App Runner に 7 つの新しいコンピューティング構成が追加 • App Runner に障害が発⽣したサービスの更新と再構築をサポート • App Runner が Bitbucket ソースコードリポジトリをサポート • App Runner が Auto Scaling 構成管理を改善 • App Runner がモノレポ構成をサポート • App Runner がカスタムドメインの使⽤を改善 • App Runner がパブリックのインバウンドトラフィックで IPv6 をサポート • ロンドン、ムンバイ、パリの AWS リージョンで App Runner の提供を開始 29
  30. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS App Runner 関連のリリース (2021.05 - 2024.01) • AWS Copilot CLI が App Runner をサポート • AWS App2Container がApp Runner へのデプロイをサポート • AWS Toolkit for JetBrains での AWS App Runner 統合 • AWS Copilot が App Runner Services およびその他の拡張機能のカスタムドメイン名の サポート • AWS Toolkit for VS Code でのApp Runner 統合 • ECR Public がコンテナを App Runner に直接起動する機能を追加 • AWS CDK で App Runner の構築が可能に • App Runner が GitHub Actions をサポート • App Runner が Amazon VPC をサポート • App Runner がJava をマネージドランタイムとしてサポート • App Runner が AWS X-Ray との統合をサポート • App Runner でルートドメイン名で Route 53 エイリアスレコードをサポート • App Runner がクロスリージョンの ECR イメージを使⽤したデプロイをサポート • App Runner で Node.js 16 マネージドランタイムをサポート • App Runner がサポートするマネージドランタイムに PHP、Go、.Net、Ruby を追加 • App Runner が Amazon VPC 内のプライベートにアクセス可能なサービスをサポート • AWS Copilot CLI が App Runner のプライベートアクセス可能なサービスに対応 • App Runner が Secrets Manager と Systems Manager からのシークレットと設定の 取得をサポート • App Runner が HTTP 1.0 プロトコルをサポート • App Runner に、サービスレベルの同時実⾏数、CPU およびメモリ使⽤率の各メトリク スが追加 • App Runner が HTTP から HTTPS へのリダイレクトをサポート • App Runenr が AWS WAF をサポート • App Runner がシンガポール、シドニーおよびフランクフルトリージョンで利⽤可能に • App Runner に 7 つの新しいコンピューティング構成が追加 • App Runner に障害が発⽣したサービスの更新と再構築をサポート • App Runner が Bitbucket ソースコードリポジトリをサポート • App Runner が Auto Scaling 構成管理を改善 • App Runner がモノレポ構成をサポート • App Runner がカスタムドメインの使⽤を改善 • App Runner がパブリックのインバウンドトラフィックで IPv6 をサポート • ロンドン、ムンバイ、パリの AWS リージョンで App Runner の提供を開始 30 App Runner 関係のリリースが 合計 31 件(Whatʼs new の登壇者調査)
  31. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ⼤ き な 機 能 ア ッ プ デ ー ト を ピ ッ ク ア ッ プ AWS App Runner Journey 2 0 2 1 . 0 5 - AWS App Runner ⼀般利⽤可能 2 0 2 2 . 0 2 - VPC コネクター対応 - Java をマネージドランタイム としてサポート
  32. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. App Runner が Amazon VPC をサポート 32 • VPC コネクターを設定し、⾃⾝の VPC に接続可能に コンテナインスタンス ロードバランサー AWS App Runner お客様の VPC Private subnet Amazon Aurora ENI VPC コネクター プライベート接続
  33. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ⼤ き な 機 能 ア ッ プ デ ー ト を ピ ッ ク ア ッ プ AWS App Runner Journey 2 0 2 1 . 0 5 - AWS App Runner ⼀般利⽤可能 2 0 2 2 . 0 2 - VPC コネクター対応 - Java をマネージドランタイム としてサポート 2 0 2 2 . 0 4 - X-Ray による 分散トレーシング対応
  34. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS X-Ray による分散トレーシング 34 AWS X-Ray はアプリケーションの トレースの分析・調査のための 分散トレーシングサービス • App Runner は X-Ray と統合可能に • App Runner 側はワンクリックで有効化 • アプリケーション側は OpenTelemetry で計装
  35. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS X-Ray による分散トレーシング 35 アプリケーションコンテナ AWS App Runner App Runner「サービス」 AWS X-Ray ADOT SDK(⾔語別) ADOT Collector (X-Ray連携機能を有効化することで⾃動構成) アプリケーションコード トレースデータ gRPC or HTTP トレースデータ ⾃動instrumentation or API呼出し インスタンスロール リクエスト レスポンス その他の AWSサービス
  36. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ⼤ き な 機 能 ア ッ プ デ ー ト を ピ ッ ク ア ッ プ AWS App Runner Journey 2 0 2 1 . 0 5 - AWS App Runner ⼀般利⽤可能 2 0 2 2 . 0 2 - VPC コネクター対応 - Java をマネージドランタイム としてサポート 2 0 2 2 . 0 4 - X-Ray による 分散トレーシング対応 2 0 2 2 . 1 0 - PHP/Go/.Net/Ruby を マネージドランタイムとしてサポート
  37. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. マネージドランタイムとしてのサポートが追加 37
  38. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ⼤ き な 機 能 ア ッ プ デ ー ト を ピ ッ ク ア ッ プ AWS App Runner Journey 2 0 2 1 . 0 5 - AWS App Runner ⼀般利⽤可能 2 0 2 2 . 0 2 - VPC コネクター対応 - Java をマネージドランタイム としてサポート 2 0 2 2 . 1 1 VPC 内のプライベート サービス対応 2 0 2 2 . 0 4 - X-Ray による 分散トレーシング対応 2 0 2 2 . 1 0 - PHP/Go/.Net/Ruby を マネージドランタイムとしてサポート
  39. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. VPC 内のプライベートサービス対応 39 • プライベート (I/F 型 VPC エンドポイント)接続が可能に ユーザーVPC(Private) App Runner サービス Internet (Public) インバウンドトラフィック VPCエンドポイント (I/F型) HTTPS(443/tcp)で アクセスされる or
  40. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. VPC 内のプライベートサービス対応 40 • プライベート (I/F 型 VPC エンドポイント)接続が可能に お客様の VPC AWS App Runner 社内ネットワーク AWS Direct Connect VPC Endpoint (プライベートなエンドポイント) VPC Endpoint からのみアクセス可能
  41. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ⼤ き な 機 能 ア ッ プ デ ー ト を ピ ッ ク ア ッ プ AWS App Runner Journey 2 0 2 1 . 0 5 - AWS App Runner ⼀般利⽤可能 2 0 2 2 . 0 2 - VPC コネクター対応 - Java をマネージドランタイム としてサポート 2 0 2 2 . 1 1 VPC 内のプライベート サービス対応 2 0 2 2 . 0 4 - X-Ray による 分散トレーシング対応 2 0 2 2 . 1 0 - PHP/Go/.Net/Ruby を マネージドランタイムとしてサポート 2 0 2 3 . 0 1 秘密情報/パラメータを Secret Manager や Systems Manager で管理可能に
  42. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. コンテナのインスタンスの中に秘密情報を受け渡す⽅法 42 • コード内や App Runner の環境変数に秘密情報を直書きするのは 秘密情報の保護の観点でアンチパターン コンテナインスタンス AWS App Runner Amazon Aurora ... snip ... run: runtime-version: 3.7.7 env: - name: "DB_USER" value: "myappdbuser" - name: "DB_PASSWD" value: "mysupersecretpasswd" - name: "DB_HOST" value: "my-db...rds.amazonaws.com" - name: "DB_PORT" value: "3306" ... snip ...
  43. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 秘密情報の受け渡しには AWS Secrets Manager を使う 43 コンテナインスタンス AWS App Runner Amazon Aurora AWS Secrets Manager • Secrets Managerとの統合機能を使って、透過的に秘密情報をコンテ ナインスタンスに配布する ※シークレットを更新した場合は再デプロイが必要です ... snip ... run: runtime-version: 3.7.7 secrets: - name: "DB_USER" value-from: "arn:aws:secretsmanager:...username::" - name: "DB_PASSWD" value-from: "arn:aws:secretsmanager:...password::" env: - name: "DB_HOST" value: "my-db...rds.amazonaws.com" - name: "DB_PORT" value: "3306" ... snip ...
  44. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ⼤ き な 機 能 ア ッ プ デ ー ト を ピ ッ ク ア ッ プ AWS App Runner Journey 2 0 2 1 . 0 5 - AWS App Runner ⼀般利⽤可能 2 0 2 2 . 0 2 - VPC コネクター対応 - Java をマネージドランタイム としてサポート 2 0 2 2 . 1 1 VPC 内のプライベート サービス対応 2 0 2 2 . 0 4 - X-Ray による 分散トレーシング対応 2 0 2 2 . 1 0 - PHP/Go/.Net/Ruby を マネージドランタイムとしてサポート 2 0 2 3 . 0 2 AWS WAF との統合をサポート 2 0 2 3 . 0 1 秘密情報/パラメータを Secret Manager や Systems Manager で管理可能に
  45. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS WAF との統合をサポート 45 ユーザーVPC(Private) App Runner サービス Internet (Public) インバウンドトラフィック VPCエンドポイント (I/F型) or AWS WAF Web ACL WAF Web ACLの 多様な機能を⽤いた保護が可能
  46. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. その他開発体験を上げてくれるアップデート 4 選 • AWS Copilot CLI が App Runner をサポート • App Runner が GitHub Actions をサポート • App Runner に 7 つの新しいコンピューティング構成が追加 • App Runner がモノレポ構成をサポート 46
  47. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. A p p R u n n e r の 公 開 ロ ー ド マ ッ プ / h t t p s : / / g i t h u b . c o m / a w s / a p p r u n n e r - r o a d m a p 51 App Runner の未来を覗く
  48. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. まとめ • App Runner の特徴を知る • インフラや AWS についての経験がなくても、コンテナ化された Web アプリを 簡単かつ迅速に AWS 上で動かせるサービス • デプロイ・負荷分散・オートスケーリングといった作業を⼀つのサービスで実現 • App Runner の 3 年の歩みを辿る • ランタイムの追加やさまざまなプロダクトとの統合等⾜回りが強化され 利⽤できるシーンが増えてきた 53
  49. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 次の⼀歩 – 具体的な実装のプラクティスを知りたい - 54 資料︓https://speakerdeck.com/track3jyo/key-points-of-using-apprunner?slide=21 動画︓https://resources.awscloud.com/aws-modern-applications-innovate-jp/key-points-to- keep-in-mind-when-using-aws-app-runner-aws-innovate-modern-apps-jp
  50. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 次の⼀歩 – ワークショップにチャレンジ - 55 AWS App Runner Workshop https://catalog.us-east- 1.prod.workshops.aws/works hops/e801f943-aad8-4d9e- aa8a-3bcc2913340f/ja-JP/
  51. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2024, Amazon Web Services, Inc. or its affiliates. All rights reserved. 56
  52. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Thank you! 57 :track3jyo Shinichi Hama(はまーん)