もうすぐローンチ 3 周年! AWS App Runner の魅力と進化の歴史
by
はまーん
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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(はまーん)