1. AWS Amplifyとは
AWS Amplifyは、Amazon Web Services(AWS)が提供する一連のツールとサービスで、フロントエンドのウェブアプリケーションおよびモバイルアプリケーションの開発、デプロイ、ホスティングを簡素化することを目的とした「クラウドプラットフォームサービス」です。以下の主要なコンポーネントから構成されています。
Amplify CLI
コマンドラインツールで、プロジェクトのセットアップ、リソースのプロビジョニング、アプリケーションのデプロイを行います。
Amplify Console
継続的デプロイメントとホスティングを提供するサービスで、Gitリポジトリと連携してコードの変更を自動的にデプロイします。
Amplify Libraries
クライアントサイドライブラリで、認証、データストレージ、API呼び出し、分析などの機能を簡単に統合できます。
Amplify UI Components
事前に構築されたUIコンポーネントで、開発速度を向上させ、ユーザーエクスペリエンスを向上させます。
2. 他サービス(Firebase)との比較表
クラウドプラットフォームがどのようなサービスなのかを把握するために、Firebaseと比較してみました。いずれのサービスも各項目でサービスが提供されていることがわかります。
機能/サービス | AWS Amplify | Firebase |
---|---|---|
提供元 | AWS | |
主な機能 | フロントエンドとバックエンドの統合、認証、データストレージ、API、ホスティング | 認証、データベース、ストレージ、ホスティング |
ターゲットユーザー | 全ての開発者 | モバイルアプリ開発者、ウェブアプリ開発者 |
料金体系 | 使用量に応じた課金 | 無料枠+使用量に応じた課金 |
認証 | AWS Cognito | Firebase Authentication |
データベース | Amazon DynamoDB, Aurora | Firebase Realtime Database, Firestore |
ストレージ | Amazon S3 | Firebase Storage |
ホスティング | Amplify Hosting | Firebase Hosting |
サーバーレス機能 | AWS Lambda | Cloud Functions for Firebase |
分析 | Amazon Pinpoint | Firebase Analytics |
継続的デプロイ | あり | あり |
カスタマイズ性 | 高い | 高い |
ドキュメントとサポート | 豊富なドキュメント、AWSサポート | 豊富なドキュメント、Firebaseサポート |
3. QuickStartを使ってみた
ここまでキャッチアップしてみて、言葉だけではイメージしづらい箇所が多い...
そこで、以下サイトにある QuickStartを使いました。
簡易的なTODOリポジトリ(ドキュメントでは「starter template」と表現されている)が既に準備されており、手順が丁寧で分かりやすいです。そのため、全体像を把握するにはもってこいの内容だと個人的には感じました。手順に関してはドキュメントがあるので割愛します。
QuickStartで理解できる内容は以下の通りです。
①Amplifyの操作感
私はGitHubアカウントを連携して、Amplifyへの登録からデプロイまでを確認しました。
②TODOアプリを更新・再デプロイ
デプロイ後、削除機能を実装して再デプロイする手順も書かれています。
再デプロイ時にAmplify側でどのような挙動になるかを確認できます。
③認証機能の実装
「Amplify UI Components」で提供されている「Authenticator UIコンポーネント」を使い、ログイン機能を実装できます。思いのほか簡単に実装できました。
④ユーザーごとの認可を実装
すべてのユーザー間で共有されるデータをユーザーごとに分離する実装も学べます。
4. さいごに
ちなみに「starter template」を使わずに一から理解を深めたいという方は、以下から手順に沿って対応ができます。
最後までご覧いただきありがとうございました!
おまけ(用語集)
用語 | 説明 |
---|---|
ホスティング | ウェブサイトやアプリケーションをインターネット上で公開するサービス |
プロビジョニング | 必要なリソースや環境を準備し、利用可能な状態にするプロセス |
リソース | コンピューティング、ストレージ、ネットワークなどの計算資源 |
デプロイ | アプリケーションやサービスをサーバーに配置して稼働させること |
継続的デプロイメント | コードの変更を自動的にデプロイし、即座に本番環境に反映するプロセス |
ユーザーエクスペリエンス | ユーザーが製品やサービスを使用する際の総合的な体験 |
Firebase | Googleが提供するモバイルおよびウェブアプリ開発プラットフォーム |
認証 | ユーザーの身元を確認し、システムにアクセスできるかを判断するプロセス |
認可 | 認証されたユーザーが特定のリソースや機能にアクセスできるかを制御するプロセス |