Slide 1

Slide 1 text

© 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 アマゾン ウェブ サービス ジャパン合同会社 シニアソリューションアーキテクト

Slide 2

Slide 2 text

© 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 • 趣味はソロキャン

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

© 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] ⼿間がかかる

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

© 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 ソースコード

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

© 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 コンテナインスタンス数

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

© 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 からのみアクセス可能

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

© 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

Slide 30

Slide 30 text

© 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 の登壇者調査)

Slide 31

Slide 31 text

© 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 をマネージドランタイム としてサポート

Slide 32

Slide 32 text

© 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 コネクター プライベート接続

Slide 33

Slide 33 text

© 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 による 分散トレーシング対応

Slide 34

Slide 34 text

© 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 で計装

Slide 35

Slide 35 text

© 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サービス

Slide 36

Slide 36 text

© 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 を マネージドランタイムとしてサポート

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

© 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 を マネージドランタイムとしてサポート

Slide 39

Slide 39 text

© 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

Slide 40

Slide 40 text

© 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 からのみアクセス可能

Slide 41

Slide 41 text

© 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 で管理可能に

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

© 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 で管理可能に

Slide 45

Slide 45 text

© 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の 多様な機能を⽤いた保護が可能

Slide 46

Slide 46 text

© 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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

© 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 の未来を覗く

Slide 52

Slide 52 text

© 2024, Amazon Web Services, Inc. or its affiliates. All rights reserved. 52 まとめ

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

© 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

Slide 55

Slide 55 text

© 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/

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

© 2024, Amazon Web Services, Inc. or its affiliates. All rights reserved. Thank you! 57 :track3jyo Shinichi Hama(はまーん)