AWS Amplify を試してみたので、以下簡単にまとめ。
主に公式サンプルチェックや、メモなど。
目次
公式サンプルチェック
まずは、AWS Amplifyのページにある"fullstack samples"をチェックしてみました。
"fullstack samples"の場所はすべてのアプリ > New app > Host web app > From fullstack samples
にあり。
Authentication Starter
デプロイ自体は、指示通りに進めれば、自動で完了。
以下のパッケージが自動でフォークされて、自動連携 → 自動デプロイ。
ローカルで動かす場合は、
- フォークしたリポジトリをクローン
- yarn install
- amplify pull --appId ${appId} --envName ${envName}
- yarn start
3つ目のamplify pull
コマンドは、アプリページ > Backend environments > Local setup instructions
からコピペして実行。
詳細は以下のリンクを参照してください。
手順の2は、2021/11/03 時点だと見当たらず。
amplify pull
コマンドの--envName
オプションあたりでやってそうな感じです。
team-provider-info.json
をgit管理からはずした方が良さげ
team-provider-info.json
にトークンっぽい情報があったので、検索したところ、公開するならGit管理からはずした方が良さげな模様。
ローカルで試した後、commit & push する場合は、team-provider-info.json
をgit管理からはずした方が無難そうです。
詳細は以下より
amplify/team-provider-info.jsonにリソースのARNなどが記載されている点には注意が必要でしょう。 Secret Keyなどが直接書かれているわけではありませんが、AWS Account IdやAmplifyAppIdなどが記載されています。 gitを公開する際は、amplify/team-provider-info.jsonは、除いた方が良いでしょう。
中の人からも推奨されてる模様 ↓
The purpose of this file is basically sharing it within your team-members on the same project and want to update/use the same AWS Infrastructure tied to an environment. If you're open-sourcing your project you can totally get rid of this file (or make it a part of .gitignore).
バックエンド
Cognito
日本語の表記が多くて、見やすい印象。
Cognitoのページでパスワード強度や、所有権の確認設定など細かい設定ができそうな感じです。
コード中のAmplify関連の記述は、以下の3つ
Amplify.configure(aws_exports); ... <AmplifySignOut /> ... export default withAuthenticator(App);
amplify/backend/auth/.../parameters.json
にそれっぽい設定があり。
コードから設定するとしたら、この辺を使いそうだけど、いじっていいかは不明。
Realtime Canvas
セットアップはほぼ上に同じ
以下のパッケージが自動でフォークされて、自動連携 → 自動デプロイ
ローカルだとエラーが出て動かなかったので、ローカルでの動作チェックはパス。
自動デプロイの方は動作。
バックエンド
AppSync
GraphQLでアクセスできるっぽい。
AppSyncのページでスキーマ、クエリチェック、監視ができる。
Caching機能もあるようで、AppSyncのページから設定可能。
Cognito同様に、全体的に日本語表記が多くて見やすい印象。
サンプルでは、DynamoDBを使って描画情報を同期するのに使っている模様。
QuickNotes AI
セットアップはほぼ上に同じ
音声認識で、メモ作成するアプリ。
Predictions
https://docs.amplify.aws/lib/predictions/intro/q/platform/js/
The Predictions category provides a solution for using AI and ML cloud services to enhance your application
AIとかMLとか。
テキストの翻訳やスピーチ変換、画像認識などができる模様。
AppSync
音声認識から変換されたテキスト(メモ)をDynamoDBに保存するのに使ってる模様。
そのほか、メモやリンクなど
「Amplify vs Firebase 比較してみた」
DynamoDBの人気度
※ 下から2つは2ページ目。黄色がFirebase Realtime Database、黄緑がGoogle Cloud Firestore
料金は?
Amplify
Amazon OpenSearch Service (Amazon Elasticsearch Service の後継サービス)
t3.medium.search 2 4 EBS のみ 0.073USD
2592円/月程度。無料枠対象もあり。
エミュレータは?
DynamoDBはDockerイメージがある模様。
Cognito、Lambda、AppSync、S3はリソースのモックが利用可能らしい。
まとめ
Amplifyの存在を最近知って、試してみましたが、Amplify 。。。気になる。
正直Firebaseにどっぷり感があるので、もうちょっと早く知ってたらと後悔してます。
とくにFirestoreは、取得上限だとか、セキュリティルールだとか、ちょっと辛いなぁ…と思う事がちらほらあるので、DynamoDBの方はどんな感じなのかが気になります。
気が向いたら、もうちょっと試してみようかなと思います。
関連リンク
気になるチュートリアル
https://docs.amplify.aws/start/q/integration/react/
https://docs.amplify.aws/start/q/integration/next/
https://docs.amplify.aws/guides/hosting/nextjs/q/platform/js/
「【爆速】React+Amplify+AppSyncでリアルタイム掲示板アプリを15分で作り上げる 〜これが最高のDeveloper Experienceだ〜」
いつかやるかも?