AWS AmplifyはAWSを用いたWeb/モバイルアプリを爆速でリリースするための開発プラットフォームです。一口にAWS Amplifyと言っても、Amplifyライブラリ、Amplify CLI、Amplify Console、そして新しく登場したAmplify Admin UIと、いろいろなツールチェーン・サービスがあります。今回はこれらAWS Amplifyの全体像についてまるっとご紹介いたします!
© 2021, Amazon Web Services, Inc. or its Affiliates.アマゾン ウェブ サービス ジャパン株式会社⽊村 公哉(こやきむ)Serverlessなみなさん、AWS Amplifyの紹介をします︕@kimyan_udon2
View Slide
© 2021, Amazon Web Services, Inc. or its Affiliates.内容についての注意点o 本資料では2021年3⽉1⽇現在のサービス内容および価格についてご説明しています。最新の情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。o 資料作成には⼗分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。o 価格は税抜表記となっています。⽇本居住者のお客様には別途消費税をご請求させていただきます。o AWS does not offer binding price quotes. AWS pricing is publicly available and is subject tochange in accordance with the AWS Customer Agreement available athttp://aws.amazon.com/agreement/. Any pricing information included in this document isprovided only as an estimate of usage charges for AWS services based on certain informationthat you have provided. Monthly charges will be based on your actual use of AWS services,and may vary from the estimates provided.
© 2021, Amazon Web Services, Inc. or its Affiliates.⽊村 公哉(きむら こうや)所属アマゾン ウェブ サービス ジャパン株式会社技術統括本部 ISV/SaaSソリューション本部ソリューションアーキテクト好きなAWSサービスAWS Amplify AWS Lambda Amazon Kinesis@kimyan_udon2
© 2021, Amazon Web Services, Inc. or its Affiliates.私とServerlesso 2013年、⼤学4年、研究室の先⽣から「地域コミュニティーに関する研究しない︖地域住⺠の位置情報を取得してどこによく集まっているかを知りたいんだけど」と⾔われて、サーバーを購⼊するo Androidアプリを作って、位置情報を収集︕o いろいろとアレでAndroidのローカルストレージに位置情報を貯めて、後ほど集約したo 2014年、AWS Lambdaの登場に衝撃を受けるo そのほか前後で登場したAmazon API Gateway、Amazon Cognito、Amazon Kinesisにも衝撃を受けるo 「先⽣、時代はAWSですよ」と先⽣をそそのかして、研究室でAWSを使い始めるo 以後、研究で作ったアプリケーションはすべてserverlessで構築せっかくなので⾃分語りさせてください
© 2021, Amazon Web Services, Inc. or its Affiliates.本⽇のお品書きl AWS AmplifyはWeb・モバイルアプリ開発者向けに提供される開発プラットフォームであり、⼀連のライブラリ、CLI、ホスティングサービスを指します。l 爆速でプロトタイピングするところから多⼈数でセキュアにスケーラブルに開発するところまで、実⽤的な機能が揃っているAWS Amplify。l 本⽇はServerlessな皆様に向けて、「AWS Amplifyとはなんぞや︖」という疑問にお答えできればと思います︕AWS Amplify、いろいろあるんです
© 2021, Amazon Web Services, Inc. or its Affiliates.本⽇お持ち帰りいただきたいことAWS Amplify は、スタートアップからエンタープライズまで⼩さくはじめて⼤きく育てるビジネスを展開するお客様に最適です︕爆速でアプリを開発できます簡単にアプリを開発できますスケールするアプリを開発できます
© 2021, Amazon Web Services, Inc. or its Affiliates.本セッションの内容l Web・モバイルアプリで考えないといけないことl AWS Amplifyの各要素紹介Amplifyライブラリ、Amplify CLI、Amplify Console、Amplify Admin UIl AWS Amplifyをはじめるためのラーニングパスl まとめ
© 2021, Amazon Web Services, Inc. or its Affiliates.Web・モバイルアプリ開発で考えないといけないこと
© 2021, Amazon Web Services, Inc. or its Affiliates.⼀般的なWeb/モバイルアプリの構成要素
© 2021, Amazon Web Services, Inc. or its Affiliates.⼀般的なWeb/モバイルアプリの構成要素フロントエンド バックエンドWebサーバーバックエンドDBサーバーロジック、UIの実装マルチプラットフォームフロントエンドライブラリロジックの実装 / 認証認可 / 通知サーバーの調達・構築 / 運⽤監視インタフェース定義 / 冗⻑化セキュリティ / メッセージング静的コンテンツ配信 / ログ管理サーバーの調達・構築運⽤監視 / 冗⻑化バックアップ/リストアセキュリティ
© 2021, Amazon Web Services, Inc. or its Affiliates.⼀般的なWeb/モバイルアプリの構成要素ユーザー間チャットプッシュ通知送信他システムとの連携処理ログ収集クライアントイベント収集分析業務
© 2021, Amazon Web Services, Inc. or its Affiliates.アプリ開発者がやりたいことは何かアプリケーションエンジニアサーバーを構築したい︖サーバーを運⽤・監視したい︖バックエンドのネットワーク設定をしたい︖APNs, FCMにアクセスするコードを書きたい︖ログの出⼒⽅法をセットアップしたい︖ミドルウェアをインストール、チューニングしたい︖
© 2021, Amazon Web Services, Inc. or its Affiliates.APNs, FCMにアクセスするコードを書きたい︖ユーザーに通知を送りたい(Push, Email, SMS)サーバーを運⽤・監視したい︖サーバーを構築したい︖バックエンドのネットワーク設定をしたい︖ログの出⼒⽅法をセットアップしたい︖ミドルウェアをインストール、チューニングしたい︖バックエンドのAPIをさくっと作りたいフロントエンドのアプリを書きたいユーザーの⾏動を把握、分析したいバックエンドのロジックをさくっと書きたいWeb コンテンツを配信したいアプリ開発者がやりたいことは何かアプリケーションエンジニア「ユーザーに価値を届けたい」
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplify
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS AmplifyAmplify ライブラリWeb・モバイルアプリとAWSを統合するためのOSSライブラリAmplify CLIWeb・モバイルアプリのバックエンドをインタラクティブに作成・管理するためのOSSツールチェーンAmplify ConsoleフルスタックサーバーレスWebアプリをビルド、テスト、デプロイ、ホスティングするためのAWSサービスAmplify Admin UIWeb・モバイルアプリのバックエンドとコンテンツを管理するためのGUIツールAWSを⽤いたWeb/モバイルアプリを爆速でリリースするための開発プラットフォームNew!
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplifyをはじめる⽅法千⾥の道もAmplify CLIからです︕早速インストールしてみましょう︕https://github.com/aws-amplify/amplify-cli
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplifyの各要素紹介
© 2021, Amazon Web Services, Inc. or its Affiliates.Amplify ライブラリl AWSバックエンドと簡単に統合できるクライアントライブラリl React/Vue/AngularといったJavaScriptライブラリやiOS/Androidに対応l ユースケースベースで直感的な実装ができるインターフェースAmplify for JavaScript/iOS/Android
© 2021, Amazon Web Services, Inc. or its Affiliates.Amplify ライブラリがないとき 😩AWS Mobile SDKを利⽤して実装AWSの個別のサービスを意識したAPIを⽤いて、例外処理なども考慮しながら実装
© 2021, Amazon Web Services, Inc. or its Affiliates.Amplify ライブラリがあるとき 😆直感的なインターフェースを⽤いてサクッと実装「StorageにデータをPutしたい」「ファイル名、アップロードするデータ、オプションを指定」
© 2021, Amazon Web Services, Inc. or its Affiliates.Amplify ライブラリで実装できるカテゴリこれら多くのカテゴリから「やりたいこと」を選んで宣⾔的に実装ができる︕StorageAuthenticationGraphQL APIDataStoreREST APIAnalyticsPush NotificationXRPubSubInteractionsAI / ML Predictions
© 2021, Amazon Web Services, Inc. or its Affiliates.Authentication カテゴリl アプリケーションに認証認可の機能を簡単に実装するためのカテゴリl Amazon Cognitoと統合されたカテゴリl 他のカテゴリと組み合わせることで「認証ユーザのみAPIを呼び出す」といった制御が可能Amazon CognitoAPIベースで実装されるモバイルアプリやWebアプリにユーザー認証機能を提供するサービスAuthentication
© 2021, Amazon Web Services, Inc. or its Affiliates.API カテゴリl アプリケーションにAPIを簡単に実装するためのカテゴリAWS AppSync「GraphQL」形式のAPIを構築するためのサービスAmazon API Gateway「REST」形式のAPIを構築するためのサービスAWS Lambda
© 2021, Amazon Web Services, Inc. or its Affiliates.AI / ML Predictions カテゴリl AWSが提供するAI/MLサービスを簡単に活⽤するためのカテゴリl テキスト翻訳、⽂字読み上げ、物体検出、⽂章のネガポジ判定といった機能を簡単にWeb・モバイルアプリに実装できるAmazon RekognitionAmazon Textract Amazon TranscribeAmazon Polly Amazon TranslateAmazon ComprehendAmazon LexAI / ML Predictions
© 2021, Amazon Web Services, Inc. or its Affiliates.Predictions カテゴリ|実装例少ないコードで簡単に画像認識機能を実装︕画像認識を実装したい場合約98%の精度で猫(Cat)と判定しているAI / ML Predictions
© 2021, Amazon Web Services, Inc. or its Affiliates.Amplify UIコンポーネントUI構築のためのJavaScriptライブラリ向けのUIコンポーネントライブラリ少ないコードで開発⼯数を削減できる︕=本質的な作業に集中できる︕
© 2021, Amazon Web Services, Inc. or its Affiliates.Amplify CLIl AWSに詳しくなくても「やりたいこと」からビルディングブロック構築を⽀援l コマンドを実⾏し、対話的に質問に答えていくだけで、サーバーレスなバックエンドを構築l バックエンドとの接続に必要な設定ファイルやソースコードの⼀部を⾃動で⽣成AWSでサーバーレスなバックエンドを構築・管理するためのCLIツールチェーン
© 2021, Amazon Web Services, Inc. or its Affiliates.Amplify CLIがないとき 😩バックエンドをどうやって実装する︖AWS CloudFormationで記述して実装︖マネジメントコンソールからクリックで実装︖
© 2021, Amazon Web Services, Inc. or its Affiliates.Amplify CLIがあるとき 😆「APIを追加したい」とコマンドを実⾏し、対話的に質問に答えるだけでAPIのためのバックエンドが追加できる︕素早くバックエンドを構築することで、開発速度を向上︕「やりたいこと」から宣⾔的にバックエンドを実装︕AWS AccountAWS AppSync Amazon DynamoDBAWS Amplify
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplify ConsoleSPAで構築されたWebアプリ向けCI/CD&ホスティングサービスAmplify CLIとも連携できる︕CI(継続的インテグレーション)、CD(継続的デリバリー、継続的デプロイ)とは︖いずれもDevOpsソフトウェア開発⼿法で、開発プロセスの⼀部またはすべてを⾃動化することで、バグの早期発⾒、アプリの品質向上、開発速度の向上が期待できる。
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplify ConsoleSPAで構築されたWebアプリ向けCI/CD&ホスティングサービス
© 2021, Amazon Web Services, Inc. or its Affiliates.Amplify Consoleがあるとき 😆価値を届けるために必要⼗分な機能を提供Gitリポジトリを接続するだけで、WebアプリケーションのためのCI/CDパイプラインの構築とホスティングができる︕
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplify Admin UIWeb・モバイルアプリのバックエンドとコンテンツを管理するためのGUIツールマネージメントAdmin UI特徴ü AWSコンソールの外部からアクセス可能ü 開発者以外の関係者とアクセスを共有(QAテスター、プロダクトマネージャー)ü リッチテキストをサポートするコンテンツ管理機能ü ユーザーとグループの管理機能New!
© 2021, Amazon Web Services, Inc. or its Affiliates.Amplify Admin UIの概要ぜひ触ってみてください︕https://aws.amazon.com/jp/blogs/news/aws-amplify-admin-ui-helps-you-develop-app-backends-no-cloud-experience-required-jp/
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplify(再掲)Amplify ライブラリWeb・モバイルアプリとAWSを統合するためのOSSライブラリAmplify CLIWeb・モバイルアプリのバックエンドをインタラクティブに作成・管理するためのOSSツールチェーンAmplify ConsoleフルスタックサーバーレスWebアプリをビルド、テスト、デプロイ、ホスティングするためのAWSサービスAmplify Admin UIWeb・モバイルアプリのバックエンドとコンテンツを管理するためのGUIツールAWSを⽤いたWeb/モバイルアプリを爆速でリリースするための開発プラットフォームNew!
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplifyの特徴例)Webアプリ開発におけるアプリのリリースプロセスAmplifyによって⼀気通貫でアプリ開発に集中できるソースコード管理ビルドとテストステージング プロダクション
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplifyの特徴ソースコード管理l [Libraries] AWSサービスと統合されたクライアントライブラリl [Libraries] ユースケースに基づいた宣⾔的なインターフェースl [Libraries] スタイルが適⽤され、すぐに利⽤可能なUIコンポーネントl [CLI] 宣⾔的なバックエンド構築と管理l [CLI] コードによるリソースのモデル化l [CLI] GraphQLスキーマとLambda関数の⽣成Amplifyによって⼀気通貫でアプリ開発に集中できるソースコード管理ビルドとテストステージング プロダクション
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplifyの特徴ビルドとテストl [CLI] Amplify Mockingによるバックエンドのローカルテストl [CLI] amplify envコマンドによるバックエンド開発環境の分離l [Console] Gitリポジトリの変更を検知し⾃動デプロイl [Console] ビルドフェーズに任意のテストを実⾏可能l [Console] CypressによるE2Eテストが統合済みAmplifyによって⼀気通貫でアプリ開発に集中できるソースコード管理ビルドとテストステージング プロダクション
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplifyの特徴ステージングとプロダクションl [Console] フィーチャーブランチのデプロイl [Console] プルリクエストのプレビューl [Console] ホスティングとCDNによる配信l [Console] 独⾃ドメインとSSL証明書の設定l [AWS Services] 実績豊富なAWSサービスによるバックエンドの構築Amplifyによって⼀気通貫でアプリ開発に集中できるソースコード管理ビルドとテストステージング プロダクション
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplifyを活⽤した多彩な実装パターン簡単なものから複雑なものまで、ビジネスに合わせたアプリケーションの開発ができます︕https://aws.amazon.com/blogs/mobile/appsync-microservices/https://github.com/aws-samples/appsync-refarch-realtimehttps://github.com/aws-samples/aws-serverless-workshops/tree/master/WebApplication
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplifyをはじめるためのラーニングパス
© 2021, Amazon Web Services, Inc. or its Affiliates.AWS Amplifyをはじめる⽅法(再掲)千⾥の道もAmplify CLIからです︕早速インストールしてみましょう︕Amplify CLIの初期セットアップとプロジェクトの初期化が完了し、開発をスタートできる︕
© 2021, Amazon Web Services, Inc. or its Affiliates.ハンズオンをやってみるAWS Amplify Social Network App Workshopl ソーシャルメディアアプリの開発を通して、実践的にAWS Amplifyについて学ぶことができるl スタートアップのCTOになったつもりでハンズオンを進めていきましょう︕「Amplify CLIは⼊れてみたけど…」というあなたに朗報です︕https://amplify-sns.workshop.aws/ja/
© 2021, Amazon Web Services, Inc. or its Affiliates.Stage 1 - シードステージ(第1章〜第4章)ストーリーl あなたはスタートアップ1⼈⽬の開発者ですl CEOと相談し、ソーシャルメディアアプリケーションを開発することが決まりましたl しかし、投資家への説明まではあと3⽇しかありませんl 必要最低限の機能でいいものの、最速での⽴ち上げが求められています学習できることl AWS Amplifyの基礎的な使い⽅に慣れる爆速でアプリケーションを実装できることを実感するl それだけでなく、将来的なスケーラビリティまでサポートすることを理解するスタートアップ1⼈⽬のエンジニア/CTOとして、アプリを開発する︕
© 2021, Amazon Web Services, Inc. or its Affiliates.Stage 2 - アーリーステージ(第5章〜第6章)ストーリーl ひとまず最低限の機能を実装しリリースし、⼀定数のユーザを獲得することに成功しましたl AWS Amplifyで構築したためサーバの運⽤は不要なものの、明確になってきた課題や機能要望に答える必要があります学習できることl これまで登場しなかったAWSサービスの活⽤⽅法を知るl AWS Amplifyのさらに⾼度な利⽤⽅法などを知るユーザを⼀定数獲得し、増え始めた課題や機能要望に対応する︕
© 2021, Amazon Web Services, Inc. or its Affiliates.Stage 3 - ミドルステージ(第7章〜第8章)ストーリーl 機能拡充を続けた結果、ビジネスは軌道に乗り始め、同時にエンジニア組織も拡⼤し始めましたl 並⾏して複数の機能開発が進むことも増えたため、効率の良いチーム開発について考える必要があります学習できることl 実際に機能追加を通して、チーム開発や、AWS Amplify Consoleを⽤いた機能ごとの検証環境の構築について学ぶ事業が軌道に乗りユーザもエンジニアも急拡⼤
© 2021, Amazon Web Services, Inc. or its Affiliates.各種資料を読む[AWS Black Belt Online Seminar]AWS Amplify(⽇本語)l https://aws.amazon.com/jp/blogs/news/webinar-bb-aws-amplify-2020/builders.flash✨l https://aws.amazon.com/jp/builders-flash/そのほか、Advent Calendarや利⽤者のブログなど⽇本語の資料AWS Amplify 検索
© 2021, Amazon Web Services, Inc. or its Affiliates.各種資料を読むl Amplify Docsl https://docs.amplify.aws/l AWS Amplify GitHubリポジトリl https://github.com/aws-amplifyl AWS Mobile Blogl https://aws.amazon.com/blogs/mobile/英語の資料
© 2021, Amazon Web Services, Inc. or its Affiliates.注⽬情報Øawesome-aws-amplify-jaØ https://github.com/aws-amplify-jp/awesome-aws-amplify-jaØ ⽇本語で書かれているAWS Amplifyのツール、チュートリアル、記事などのリンク集です。ØSlack: Amplify Japan User GroupØ https://github.com/aws-amplify-jp/awesome-aws-amplify-ja#slackØ ⽇本のAmplifyコミュニティーSlackです。オープンなコミュニティとして、運営含めて皆さんと成⻑したいと考えています。⽇本語のコンテンツを頑張って増やしています︕
© 2021, Amazon Web Services, Inc. or its Affiliates.直近のイベント情報Ø Amplify Meetup #03Ø 2021年4⽉2⽇ 18:30〜 オンライン開催Ø Amplify Meetupは、AWS Amplifyに興味のあるすべてのエンジニアのためのコミュニティイベントです。AWS Amplifyの知⾒を共有して、⽇本語の情報を増やしていきましょう︕Amplify MeetupではAWS Amplifyに関する情報交換と、AWS Amplifyの⽇本コミュニティの醸成を⽬的とし、様々なイベントを開催予定です。Amplifyハンズオンなども開催予定です︕
© 2021, Amazon Web Services, Inc. or its Affiliates.AWSのフロントエンド関連サービスが気になる⽅、ぜひ connpass のメンバーに⼊ってください︕https://aws-amplify-jp.connpass.com/今後のイベント開催時に通知を受け取ることができます︕
© 2021, Amazon Web Services, Inc. or its Affiliates.まとめ
© 2021, Amazon Web Services, Inc. or its Affiliates.まとめ - AWS Amplifyとは︖l AWSを⽤いたWeb/モバイルアプリを爆速でリリースするための開発プラットフォームl ライブラリ|Web・モバイルアプリとAWSを統合するためのOSSライブラリl CLI|バックエンドをインタラクティブに作成・管理するためのOSSツールチェーンl AWS Amplify Console|フロントエンドとバックエンドに対してビルド、テスト、デプロイ、ホスティングを容易に実現できるサービス群l Admin UI| Web・モバイルアプリのバックエンドとコンテンツを管理するためのGUIツールl ビジネスのスケールに合わせて、アーキテクチャの進化に対応
© 2021, Amazon Web Services, Inc. or its Affiliates.まとめ - AWS Amplifyがないとき 😩アプリケーションエンジニアサーバーを構築したい︖サーバーを運⽤・監視したい︖バックエンドのネットワーク設定をしたい︖APNs, FCM にアクセスするコードを書きたい︖ログの出⼒⽅法をセットアップしたい︖ミドルウェアをインストール、チューニングしたい︖
© 2021, Amazon Web Services, Inc. or its Affiliates.サーバーを運⽤・監視したい︖サーバーを構築したい︖バックエンドのネットワーク設定をしたい︖APNs, FCM にアクセスするコードを書きたい︖ログの出⼒⽅法をセットアップしたい︖ミドルウェアをインストール、チューニングしたい︖バックエンドのAPIをさくっと作りたいフロントエンドのアプリを書きたいユーザーの⾏動を把握、分析したいユーザーに通知を送りたい(Push, Email, SMS)バックエンドのロジックをさくっと書きたいWeb コンテンツを配信したいまとめ - AWS Amplifyがあるとき 😆アプリケーションエンジニア「ユーザーに価値を届けたい」
© 2021, Amazon Web Services, Inc. or its Affiliates.Thank you!こやきむ @kimyan_udon2