Slide 1

Slide 1 text

© 2023, Amazon Web Services, Inc. or its affiliates. © 2023, Amazon Web Services, Inc. or its affiliates. 金森政雄 Solutions Architect, DevAx Amazon Web Services Japan G.K 開発者のためのAWS の始め方 2023年最新版

Slide 2

Slide 2 text

© 2023, Amazon Web Services, Inc. or its affiliates. 自己紹介 • 金森 政雄 Ø 所属/役職 : DevAx(Developer Acceleration) チーム ソリューションアーキテクト Ø 好きなサービス Amazon Elastic Container Service AWS Step Functions AWS Fault Injection Simulator

Slide 3

Slide 3 text

© 2023, Amazon Web Services, Inc. or its affiliates. このセッションでお話しすること • 皆さんのアプリケーション開発にクラウドがどのように役⽴つのか • AWS でアプリケーション開発を始めるときの選択肢のご紹介 • クラウドでのアプリケーション開発において意識していただきたいこと (本当は話したいけど)お話ししないこと • AWS のアカウントの作り⽅などの最も基礎的なところ • DevOps、セキュリティとガバナンスなどの実運⽤/⾃動化の話 3

Slide 4

Slide 4 text

© 2023, Amazon Web Services, Inc. or its affiliates. © 2023, Amazon Web Services, Inc. or its affiliates. 現代のアプリケーションに 求められるもの 4

Slide 5

Slide 5 text

© 2023, Amazon Web Services, Inc. or its affiliates. 質問 5 皆さんのアプリケーションは、 どのくらいの頻度でデプロイされていますか?

Slide 6

Slide 6 text

© 2023, Amazon Web Services, Inc. or its affiliates. 6 >150, 000, 000 Amazonにおける1年間のデプロイ数 平均すると1秒間に4.5回(0.21秒ごと)にデプロイ

Slide 7

Slide 7 text

© 2023, Amazon Web Services, Inc. or its affiliates. 8 デプロイ頻度 の低下 リリース速度 の低下 障害が増え、 復旧に時間 がかかる 低いアジリティの影響 0 20 40 60 RED YELLOW GREEN CIOによるIT プロジェクトのリスク評価 2021 (64% Risk) 6兆ドル以上 世界全体のIT障害のコスト

Slide 8

Slide 8 text

© 2023, Amazon Web Services, Inc. or its affiliates. 『 』 “…innovation is now recognized as the single most important ingredient in any modern economy…” イノベーション こそが近代経済において最 も重要な要素と考えられている。 競合よりも早く、新しい波を 創っていくことが重要

Slide 9

Slide 9 text

© 2023, Amazon Web Services, Inc. or its affiliates. イノベーションがビジネスを進化させる 新たなマーケット 新たな顧客価値 New economics 新たなデジタル製品とサービス

Slide 10

Slide 10 text

© 2023, Amazon Web Services, Inc. or its affiliates. Listen Idea Experiment Innovation Flywheel 実験がイノベーションを加速する

Slide 11

Slide 11 text

© 2023, Amazon Web Services, Inc. or its affiliates. ⽅法、プロセス、ツール、組織構造などが アジリティを阻害している DevOps は組織的な変化であり、 単なるツールの変更ではない 開発者はモダンな開発⼿法使⽤した、 モダンアプリケーションを構築できるようになる必要がある 開発者は拡張可能でセルフサービスな プラットフォームを必要とする ⾃動化とテストにより継続的なデリバリをサポートしないと、 ⾃信を持った開発は難しい アジリティが低下する理由...

Slide 12

Slide 12 text

© 2023, Amazon Web Services, Inc. or its affiliates. Self-service Platforms without Gatekeepers 何千人もの人々が大胆に実験や実行が可能な、 強力なセルフサービスプラットフォームを 作り出している そして、Amazonでもそれが使われている

Slide 13

Slide 13 text

© 2023, Amazon Web Services, Inc. or its affiliates. 16 Amazon Web Serviceとは

Slide 14

Slide 14 text

© 2023, Amazon Web Services, Inc. or its affiliates. Amazon が、ビジネス課題解決のために作り上げたITを 誰でもサービスとして利⽤できるようにしたもの ⼀般的にはクラウドコンピューティングと呼ばれている AWS (Amazon Web Services) とは

Slide 15

Slide 15 text

© 2023, Amazon Web Services, Inc. or its affiliates. クラウドとは新しいITリソース利⽤のカタチ 必要な時に、必要なだけ、低価格で ITリソースを提供

Slide 16

Slide 16 text

© 2023, Amazon Web Services, Inc. or its affiliates. Amazon Web Serviceとは データセンター ストレージ機器 サーバー ü 実際の使⽤分 のみ⽀払い ü 市場投⼊と 俊敏性の改善 ü 初期投資不要 ü スピード ü 容易なスケール アップ&ダウン ü 低額の変動費 サービス化 予め⼤規模に投資し準備する 必要な時に、必要なだけ、低価格で

Slide 17

Slide 17 text

© 2023, Amazon Web Services, Inc. or its affiliates. マネージドサービスで さらに運⽤コストを低減 ビジネスの本質ではない作業はAWSにアウトソースし 運用コストを削減、サービス開発やアプリ構築などの作業に注力 AWSサービスの一例 • ロードバランサー(Elastic Load Balancing) • Data Warehouse(Amazon Redshift) • Hadoop/Spark (Amazon EMR) • メールサービス (Amazon Simple Email Service) • VDI(Amazon WorkSpaces,Amazon AppStream 2.0) • IoT (AWS IoT) :

Slide 18

Slide 18 text

© 2023, Amazon Web Services, Inc. or its affiliates. AWSサービスの本質はビルディングブロック。 サービスを組み合わせることで、 素早くアプリケーション構築が可能

Slide 19

Slide 19 text

© 2023, Amazon Web Services, Inc. or its affiliates. AWS は幅広い選択肢を提供

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

© 2023, Amazon Web Services, Inc. or its affiliates. © 2023, Amazon Web Services, Inc. or its affiliates. どこから始めれば良い? 24

Slide 22

Slide 22 text

© 2023, Amazon Web Services, Inc. or its affiliates. やりたいこと別 AWS 開発の始め⽅ • よくあるWeb アプリケーションフレームワーク or コンテナ化されたWeb アプリケーションを開発したい • フロントエンド/モバイルのアプリケーションを開発したい • 開発環境やCI/CD が統合された開発環境が欲しい 25

Slide 23

Slide 23 text

© 2023, Amazon Web Services, Inc. or its affiliates. やりたいこと別 AWS 開発の始め⽅ • よくあるWeb アプリケーションフレームワーク or コンテナ化されたWeb アプリケーションを開発したい • フロントエンド/モバイルのアプリケーションを開発したい • 開発環境やCI/CD が統合された開発環境が欲しい 26

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

© 2023, Amazon Web Services, Inc. or its affiliates. 構築済みのインフラにすぐにデプロイ AWS App Runner インフラや AWS についての経験がなくても、 コンテナ化されたウェブアプリケーションや API を 簡単かつ迅速に AWS 上で動かせるサービス

Slide 26

Slide 26 text

© 2023, Amazon Web Services, Inc. or its affiliates. ソースコード リポジトリ 既存ツールを用いた コンテナイメージのビル ド コンテナイメージを ECR にプッシュ 開発チーム App Runner による アプリケーションのビルド自動実行 アプリケーションの デプロイ or AWS Copilot CLI からのデプロイにも対応 柔軟なアプリケーションのビルドとデプロイ

Slide 27

Slide 27 text

© 2023, Amazon Web Services, Inc. or its affiliates. AWS App Runner の仕様概略 • ソースコード/イメージの変更を検知して⾃動でB/G デプロイ • トラフィック量に応じた⾃動スケール • ログとメトリクスの⾃動収集 • 任意のVPC への接続(DB などの閉域の資源への接続) • TLSの⾃動設定や各コンテナの独⽴した実⾏などのセキュリティ • VPC からのみアクセスできるプライベートエンドポイント • 環境変数やカスタムドメイン • 料⾦ -> コンテナインスタンス課⾦+ アドオン課⾦ ( https://aws.amazon.com/jp/apprunner/pricing/ を参照) 30

Slide 28

Slide 28 text

© 2023, Amazon Web Services, Inc. or its affiliates. デモ App Runner GitHub Repo GitHub コンテナインスタンス ロードバランサー ネットワーク (VPC) App Runner

Slide 29

Slide 29 text

© 2023, Amazon Web Services, Inc. or its affiliates. デモ コンテナインスタンス ロードバランサー ネットワーク (VPC) App Runner エンドユーザー デフォルトドメイン https://xxxxxxxx..awsapprunner.com

Slide 30

Slide 30 text

© 2023, Amazon Web Services, Inc. or its affiliates. デモ 33 Hello World と表⽰/出⼒ Node.js 製 3000 番ポート npm install で依存関係を解決 npm start で起動

Slide 31

Slide 31 text

© 2023, Amazon Web Services, Inc. or its affiliates. やりたいこと別 AWS 開発の始め⽅ • よくあるWeb アプリケーションフレームワーク or コンテナ化されたWeb アプリケーションを開発したい • フロントエンド/モバイルのアプリケーションを開発したい • 開発環境やCI/CD が統合された開発環境が欲しい 34

Slide 32

Slide 32 text

© 2023, Amazon Web Services, Inc. or its affiliates. AWS Amplify フロントエンド開発者がアプリをビルド、デプロイ、スケールするためのツールを提供 ビルド バックエンドの 素早い構築 フロントエンドの シームレスな 作成と接続 デプロイ バックエンド スケール AWS CDK を使⽤した リソースの上書き、 追加、エクスポート

Slide 33

Slide 33 text

© 2023, Amazon Web Services, Inc. or its affiliates. AWS Amplify 開発者のニーズに合わせて作られたツールやサービス AWS Amplify Studio • アプリのバックエンドを視覚的に構成 • データのモデル化 • 認証とクラウドストレージの設定 • AWS Amplify CLIをベースに構築 • AWS CDK を使⽤してカスタマイズし、 既存の CI/CD と統合可能 • 数⼗種類のビルド済みコンポーネント (ボタン、フォーム、など)を使って、 フロントエンド UI の視覚的な構築 • Figma からデザインを React のコードと してインポート AWS Amplify Libraries • アプリを新規または既存の AWS サービ スに接続 • 認証、ストレージ、REST、GraphQL、オ フライン、AI/ML、位置情報、関数などの ライブラリにより、機能豊富なアプリ ケーションを構築可能 • JavaScript、React、Angular、Vue、 React Native、Flutter、iOS、Android に対応 • ユースケース中⼼で、使いやすく、安全 なライブラリ AWS Amplify Hosting • Amazon の信頼性の⾼いコンテンツ デリバリーネットワークを通じて 提供される、Webアプリケーションの デプロイとホスティングのための フルマネージドサービス • 静的レンダリングとサーバーサイドレン ダリング(SSR)React、Angular、Vue 、Next.js • CI/CD ワークフローを内蔵 • フロントエンドとバックエンドを ⼀度にデプロイする Git ワークフロー

Slide 34

Slide 34 text

© 2023, Amazon Web Services, Inc. or its affiliates. AWS Amplify を使ったビルド 12の機能カテゴリにわたるフルスタックデベロッパーの経験 ビルド AWS Amplify CLI AWS Amplify Studio AWS Amplify libraries 機能カテゴリ

Slide 35

Slide 35 text

© 2023, Amazon Web Services, Inc. or its affiliates. これからAmplify を始めてみようという⽅へ 40 AWS Hands-on for Begineers https://bit.ly/3I925oo • 短い動画での解説付きハンズオン • 無償で好きな時に始められます!

Slide 36

Slide 36 text

© 2023, Amazon Web Services, Inc. or its affiliates. やりたいこと別 AWS 開発の始め⽅ • よくあるWeb アプリケーションフレームワーク or コンテナ化されたWeb アプリケーションを開発したい • フロントエンド/モバイルのアプリケーションを開発したい • 開発環境やCI/CD が統合された開発環境が欲しい 41

Slide 37

Slide 37 text

© 2023, Amazon Web Services, Inc. or its affiliates. Amazon CodeCatalyst: 統合ソフトウェア開発サービス 42 ü マネージド ü オールインワン ü 統合されている ü セキュリティ重視 ü フレキシブル ü さらにもっと 計画 プロジェクト マネジメント コラボレーション コード ビルド テスト … デプロイ

Slide 38

Slide 38 text

© 2023, Amazon Web Services, Inc. or its affiliates. Amazon CodeCatalyst: メリット 43 プロジェクトの セットアップを加速 ⽇々のワークフロー を⾃動化 ⾃動化された環境 スムーズな コラボレーション

Slide 39

Slide 39 text

© 2023, Amazon Web Services, Inc. or its affiliates. プロジェクトの セットアップを加速 44 統合プロジェクトツール を数分でセットアップ 適切に設計された アプリケーションパターン のライブラリから選択 GitHub やJira を使い続けることも 既存のプロジェクトの 作業を継続することも

Slide 40

Slide 40 text

© 2023, Amazon Web Services, Inc. or its affiliates. ⽇々のワークフローを⾃動化 45 デプロイメントの⾃動化 セキュアなリリース⾃動化 ビジュアルエディター または YAML による作成 柔軟性に優れたマネージド コンピュートでビルド GitHub アクション との併⽤ テストとレポート作成を 効率化 ビルドの来歴 …

Slide 41

Slide 41 text

© 2023, Amazon Web Services, Inc. or its affiliates. ⾃動化された環境: 開発環境 46 必要に応じて環境の サイズを変更 コンテキストをすばやく 切り替える コードとして定義 オンデマンドで 起動 ⼈気の IDE を利⽤可能 ⾃分のコードだけに集中 開発環境の作成

Slide 42

Slide 42 text

© 2023, Amazon Web Services, Inc. or its affiliates. ⾃動化された環境: デプロイ環境 47 プロジェクト ブループリントで IaC を⽣成 サービスプロビジョニング を⾃動化 環境更新を追跡する コードのデプロイ を追跡する

Slide 43

Slide 43 text

© 2023, Amazon Web Services, Inc. or its affiliates. スムーズなコラボレーション 48 チームメイトを メールで招待 Issueの追跡 ⾃動通知を設定 プロジェクトの アクティビティを フォロー

Slide 44

Slide 44 text

© 2023, Amazon Web Services, Inc. or its affiliates. © 2023, Amazon Web Services, Inc. or its affiliates. これらのサービスを使えば アプリケーション開発が モダンになる?

Slide 45

Slide 45 text

© 2023, Amazon Web Services, Inc. or its affiliates. 最も重要なことは何か ビジネスエキスパートの要件を正しくサービスに反映すること モダンアプリケーションでビジネスをドライブする ビジネスのドメインモデルを正しく設計しコードに落とすこと これが最も重要なこと

Slide 46

Slide 46 text

© 2023, Amazon Web Services, Inc. or its affiliates. でもどうやって? o サービスが価値を提供するためにはビジネスについての理解が必要 o そのためにはビジネスを理解している⼈(ドメインエキスパート)の 知識が必要不可⽋ o ドメインエキスパートの要件を正しくサービスに反映させる必要がある o そのためには正しくドメインモデルの設計を⾏い、 実装コードに反映させる必要がある o ではドメインモデルを正しく設計するにはどうすれば良いのか

Slide 47

Slide 47 text

© 2023, Amazon Web Services, Inc. or its affiliates. ドメイン駆動設計 (Eric Evans - 2003) o ⾼品質なソフトウェアモデルを設計 するためのソフトウェア開発⼿法 o 設計における意思決定とドメイン 設計の議論における技術的な⽤語の 広義のフレームワークを提供 o ユビキタス⾔語 ー ビジネスドメイン エキスパートと開発者の間の意思疎通 として利⽤される⽤語によって モデリングと設計を⾏う o 戦略的な設計のためのガイドライン 境界づけられたコンテキスト、 蒸留、⼤規模な構造の考察

Slide 48

Slide 48 text

© 2023, Amazon Web Services, Inc. or its affiliates. AWS Developer Live Show - 「ドメイン駆動設計のススメ」 https://go.aws/3Q2nNgl 54 AWS公式YouTube Channel

Slide 49

Slide 49 text

© 2023, Amazon Web Services, Inc. or its affiliates. 境界づけられたコンテキスト 境界づけられたコンテキストは特定の モデルを適⽤できる限定された範囲。 コンテキストの境界を定めることで、 チームメンバーは何を⼀致させるべきで何 を独⽴して開発できるのかについての理解 を明確化し、共有できる。 https://www.martinfowler.com/bliki/BoundedContext.html Customer Ticket Product Product version Customer Product Territory Opportunity Pipeline Salesperson Defect Sales context Support context

Slide 50

Slide 50 text

© 2023, Amazon Web Services, Inc. or its affiliates. コンテキストマップ 境界つけられたコンテキストだけでは、ドメインの 全体像を⽰すことはできない。 コンテキストマップは、境界づけられたコンテキスト を統合することにより、異なるが関連するユビキタス ⾔語のマッピングを処理する。 DDDでは境界づけられたコンテキストを統合するため の7つのパターンを説明 • 共有カーネル (Shared Kernel) • 顧客/供給者の開発チーム (Customer/Supplier Development Teams) • 順応者 (Conformist) • 腐敗防⽌層 (Anticorruption layer) • 別々の道 (Separate ways) • 公開ホストサービス (Open/Host service) • 公表された⾔語 (Published language) Sales context Support context Marketing context

Slide 51

Slide 51 text

© 2023, Amazon Web Services, Inc. or its affiliates. 作成したモデルをコードに反映 • 戦術的DDD § ドメインモデルを実装に反映する § モデルと実装は繰り返し改善する § ドメインモデルがビジネスロジックに対する責務を持つ § ドメインモデルとインフラストラクチャを分離する – 依存関係逆転の原則により、ドメイン層をシステム的な関⼼ごとから分離 – ヘキサゴナル/オニオン/クリーンアーキテクチャ

Slide 52

Slide 52 text

© 2023, Amazon Web Services, Inc. or its affiliates. 参考: ヘキサゴナルアーキテクチャ 63 Domain Model Ports Adapters Primary Actor Secondary Actor HTTP Request Event Message Queue … File Storage Database Queue …

Slide 53

Slide 53 text

© 2023, Amazon Web Services, Inc. or its affiliates. 参考: ヘキサゴナルアーキテクチャ 64 Domain Model Ports Adapters Primary Actor Secondary Actor HTTP Request Event Message Queue … File Storage Database Queue … アプリケーションはポートによって接続される アダプタは外界との糊の役⽬を果たす アプリケーションの外側にあってアプリケーションを駆動する側を プライマリアクター、駆動される側をセカンダリーアクターと呼ぶ

Slide 54

Slide 54 text

© 2023, Amazon Web Services, Inc. or its affiliates. 参考︓ヘキサゴナルアーキテクチャのサンプルコード • ヘキサゴナルアーキテクチャを利⽤したLambda関数のドメインモ デルの実装Live § 動画︓ https://www.youtube.com/watch?v=whQ-P05QeDQ § 資料︓ https://pages.awscloud.com/rs/112-TZM-766/images/DEV- 09_LiveCoding_with_hexagonal_architecture.pdf • ヘキサゴナルアーキテクチャを利⽤した AWS Lambda のドメイン モデルオブジェクトサンプルコード https://github.com/aws-samples/aws-lambda-domain- model-sample

Slide 55

Slide 55 text

© 2023, Amazon Web Services, Inc. or its affiliates. © 2023, Amazon Web Services, Inc. or its affiliates. マネージドサービスを使うと ロックインにならない? 66

Slide 56

Slide 56 text

© 2023, Amazon Web Services, Inc. or its affiliates. マネージドサービス == ロックイン?? トラディショナル モノリシック Opsトイル “⾃由” モダン Fine-grained マネージドサービス “ロックイン” ⼀元的な⾒⽅では、不幸せかもしれない

Slide 57

Slide 57 text

© 2023, Amazon Web Services, Inc. or its affiliates. “ロックイン”にもさまざまな⾯がある • ベンダー • プロダクト • バージョン • アーキテクチャ • スキル • 法律 • メンタル

Slide 58

Slide 58 text

© 2023, Amazon Web Services, Inc. or its affiliates. それぞれ潜在的な切り替えコストを含んでいる • ベンダー • プロダクト • バージョン • アーキテクチャ • スキル • 法律 • メンタル https://martinfowler.com/articles/oss-lockin.html ベンダーAからBへの切り替えにかかるコストは? 他のプロダクトに移⾏するためのコストは? アップグレードの難しさは? リファクタリングの難しさは? ラーニングパスは?認知的負荷は? 調整や、規制⾃体の⾒直しは可能? 古くなった思い込みを捨てられるか?

Slide 59

Slide 59 text

© 2023, Amazon Web Services, Inc. or its affiliates. 違う側⾯から⾒ることで新しい気づきを得る OSSはベンダーロックインを緩和するが、 他の形式のロックインは残る (特にプロダクトとアーキテクチャ) メンタルのロックインは最も微妙で、 克服するのが難しくもある

Slide 60

Slide 60 text

© 2023, Amazon Web Services, Inc. or its affiliates. © 2023, Amazon Web Services, Inc. or its affiliates. プロバイダの変更 - サービスマッピング 71

Slide 61

Slide 61 text

© 2023, Amazon Web Services, Inc. or its affiliates. 複数のベンダが同じサービスを提供しているように⾒える 72 メッセージキュー サーバレス関数 NoSQL データベース “こちら” “あちら” 仮想マシン 🤔

Slide 62

Slide 62 text

© 2023, Amazon Web Services, Inc. or its affiliates. サービスアイコンの裏に隠れているもの Amazon EventBridge AWS、既存システム、 SaaS アプリケーション を通じて⼤規模な イベント駆動型アプリ ケーションを構築 • Global endpoints • API destinations • Archive and replay events • AWS Glue Schema Registry • Fully managed and scalable event bus • SaaS integration • Over 100 built-in event sources and targets • Decoupled event publishers and subscribers • Event filtering • Reliable event delivery • Automatic response to operational changes in AWS services • Scheduled events • Monitoring and auditing • Security and compliance 機能 (ドキュメントから抜粋) 加えて、サービスはそれだけで成⽴せずプラットフォームの⼀部である

Slide 63

Slide 63 text

© 2023, Amazon Web Services, Inc. or its affiliates. サービスマッピングはうまくいかない 74 ニーズとアイデア NG! 実⾏環境 “要求” 設計 “こちら” “あちら”

Slide 64

Slide 64 text

© 2023, Amazon Web Services, Inc. or its affiliates. © 2023, Amazon Web Services, Inc. or its affiliates. 抽象化のレイヤ 75

Slide 65

Slide 65 text

© 2023, Amazon Web Services, Inc. or its affiliates. いかなる問題も他のレベルの インダイレクションによって 解決できる。 David J. Wheeler The fundamental theorem of software engineering 76

Slide 66

Slide 66 text

© 2023, Amazon Web Services, Inc. or its affiliates. 共通の要素によって柔軟性を得られる Java “こちら” “あちら” API layer API layer HTTPS, JSON, OAuth, etc.

Slide 67

Slide 67 text

© 2023, Amazon Web Services, Inc. or its affiliates. ボトムアップの抽象化も実際にはうまくいかない 78 NG! ニーズとアイデア 実行環境 “要求” Magic layer Magic layer ?? 設計 “こちら” “あちら” ランタイムの違い 最⼩公分⺟

Slide 68

Slide 68 text

© 2023, Amazon Web Services, Inc. or its affiliates. © 2023, Amazon Web Services, Inc. or its affiliates. パターンによって 設計の意図を維持する 79

Slide 69

Slide 69 text

© 2023, Amazon Web Services, Inc. or its affiliates. サービスマッピングの問題点 80 ニーズとアイデア NG! 実⾏環境 “要求” 設計 “こちら” “あちら” 意図の 消失

Slide 70

Slide 70 text

© 2023, Amazon Web Services, Inc. or its affiliates. サービス利⽤に隠れた”意図”は何か? 81 メッセージフィルター メッセージトランスレーター コンテンツベースのルーター 受信者リスト ? https://www.enterpriseintegrationpatterns.com/ Amazon EventBridge

Slide 71

Slide 71 text

© 2023, Amazon Web Services, Inc. or its affiliates. プラットフォームのサービス だけを考えていると 設計の意図が失われ、 メンタルがロックインされる デザインパターンによって 意図を保つことができる 82

Slide 72

Slide 72 text

© 2023, Amazon Web Services, Inc. or its affiliates. 抽象化とスイッチングコストの⾒直し 84 NG! 意図の消失 ニーズとアイデア 実⾏環境 “要求” Magic layer Magic layer ?? 設計 “こちら” ランタイムの違い 最⼩公分⺟ “あちら”

Slide 73

Slide 73 text

© 2023, Amazon Web Services, Inc. or its affiliates. 抽象化とスイッチングコストの⾒直し 85 ニーズとアイデア NG! 実⾏環境 “要求” Magic layer Magic layer ?? 設計 意図の消失 最⼩公分⺟ “こちら” “あちら” 意図を保持 意義ある抽象化 ニーズにマッチする ランタイムの違い パターン デプロイ ⾃動化 CDK

Slide 74

Slide 74 text

© 2023, Amazon Web Services, Inc. or its affiliates. まとめ • まずは自分が作りたいものを素早く作れる サービスから初めてみましょう!! • 例) Web アプリ -> AWS App Runner フロント、モバイル -> AWS Amplify 開発環境を整えたい -> Amazon CodeCatalyst • 「どのサービスを使うか」ではなく、 「要求を実現するための」設計が大事 • パターンをうまく使って、 サービスの変更のコストは抑えましょう 86

Slide 75

Slide 75 text

© 2023, Amazon Web Services, Inc. or its affiliates. © 2023, Amazon Web Services, Inc. or its affiliates. Thank you! 87 Happy Coding!!