AWS Amplifyとはなんなのか3行で表現する


はじめに

こんにちは。
安くて早くて旨いWeb/モバイルアプリケーションの開発を普及させたいと常々考えているLIFULLの高澤です。
そんな私がオススメしたいのがAWS Amplifyです。
https://aws.amazon.com/jp/amplify/

AWSがOSSで公開するAWS Amplifyは非常に便利なサービスです。
便利なんだけどイマイチ流行っていません。

断片的にあれができるこれができると書かれることは多かれど、
簡潔に表現される機会も少なくその実態を理解できている人は少ないと思います。

せっかく便利なので必要な人に便利さが伝わるように、簡潔に表現してみることにします。

いきなり3行で

  • AWSのクラウドサービス上にモバイルアプリケーションを構築するための最も速く、簡単な方法。
  • 利用者はクラウドサービスのバックエンドの構築をツールに任せ、アプリケーション実装に集中できる。
  • ポピュラーなバックエンドの構成とそれを利用するためのフロントエンドの統合を自動で構築できる。

AWS Amplifyとはなんなのか

せっかくなのでもう少し詳しく説明します

誰向けのサービスなのか

こんな人にオススメ

  • CloudFormationを書くのが得意でない、または面倒に思っている人
  • オススメのサーバーレス環境でアプリケーション構築してみたい人
  • とにかく爆速でバックエンドを伴うスケーラブルなアプリケーション開発をしたい人

よく誤解される表現

以下はAmplifyの持つ何かしらの側面について説明しているもので本質ではありません。
- Web,Mobile向けのJavaScriptライブラリ
- サーバーレスのアーキテクチャ
- firebaseのAWS版

何ができるのか

サーバーレスバックエンドの自動構築

Amplify CLIを用いることで対話形式でAWSのサービスでモバイルアプリケーションのバックエンドとしてよく使われるサーバーレス構成を自動でセットアップできます。

Amplifyで構築可能なAWSクラウドサービスの例
- cognitoを用いた認証
- Route53, S3, CloudFrontを用いたホスティング
- AppSync, APIGateway, Lambdaを用いたGraphQLまたはRESTのAPIエンドポイント
- DynamoDB, AmazonAurora, AmazonElasticSearchなどのデータベース
- Pinpointを用いたプッシュ通知、ログ収集

フロントエンドからバックエンドを利用するための設定ファイル、コードの生成

Amplifyフレームワークでは自動構築したバックエンドをフロントエンドから統合的に利用するための一連のライブラリ、UI コンポーネントを提供します。
iOS、Android、ウェブ、React Native、Vueなどの アプリ用が提供されています。

Amplifyをどうやって実現しているのか

AWSのサーバーレスアーキテクチャをよく構築している人ならお分かりかと思いますが、
内部の実装ではCloudFormationを利用しています。

そしてAmplifyはOSSです。
多くの人がAmplifyの改善に関わることでどんどん発展していきます。
https://github.com/aws-amplify

AWSから次々にリリースされる便利なサービスにも追従して使えるよう、多くのDeveloperが貢献してくれています。

Try! Amplify

AWS公式のhansonでは30分かからずにAmplifyを使用して
AWS AppSync & Amazon DynamoDB をバックエンドに使ってTodoアプリを作ることができます。
https://aws.amazon.com/jp/blogs/startup/event-report-amplify-handson/

今年はAWS AmplifyのAdvent Calendarも立ち上がっていますのでより実践的なハンズオンやユースケースなどはこちらが参考になりそうです。
https://qiita.com/advent-calendar/2019/aws-amplify

AWS Amplify ConsoleについてはLIFULL AdventCalendar2 でも ryo0301 さんが取り上げています。

Amplify Consoleでのバックエンド自動構築ユースケース
https://qiita.com/ryo0301/items/96a65f519d8bf9497fd6

参考

スタートアップ用のブログがAmplifyの全貌を把握する上で参考になりました
https://aws.amazon.com/jp/blogs/startup/techblog-3reasons-amplify/