AWS Amplify トライアル - メモとかサンプルチェックとか

AWS Amplify を試してみたので、以下簡単にまとめ。

主に公式サンプルチェックや、メモなど。

目次

公式サンプルチェック

まずは、AWS Amplifyのページにある"fullstack samples"をチェックしてみました。

"fullstack samples"の場所はすべてのアプリ > New app > Host web app > From fullstack samplesにあり。

Authentication Starter

デプロイ自体は、指示通りに進めれば、自動で完了。

以下のパッケージが自動でフォークされて、自動連携 → 自動デプロイ。

ローカルで動かす場合は、

  1. フォークしたリポジトリをクローン
  2. yarn install
  3. amplify pull --appId ${appId} --envName ${envName}
  4. 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だ〜」

いつかやるかも?