自分が触っているのはAmplify + React.jsの構成
また別チームでAmplify + ReactNativeでやっていてAmplifyのバックエンドは共有している
ただしCognito User Poolはそれぞれで分ける構成なので、結構しんどめのカスタマイズをせざるを得なかった
というか2020/06/12現在も辛い思いをしている
カスタマイズが必要 ≒ Amplify CLIで質問に答えるだけで構築できるインフラ・機能で十分ではない
- カスタマイズなしに使えるユースケース => 使うと良さそう
- カスタマイズすれば使えるユースケース => 開発は苦労するが運用は楽になるかも
- カスタマイズしても使えないユースケース => もちろん使えない
[追記]
Cognitoを2つ用意する必要があるならAmplifyの利用は慎重に検討したほうが良い。
- Amplifyがauthカテゴリーの利用しか想定していないハードコーディングされているような個所がある。
- 「通常通りAmplifyを使うチーム + DBなどのリソースはAmplifyで作成されたものを使うがそれ以外は自前のサーバーチーム」みたいな構成の方が平和かもしれない。
- ユースケースが合っているのであれば使うことでインフラ管理なども含め大幅に労力が削減できる
- 以下から自分の関係しそうな内容を眺めて使い方の例の範囲でできそうならユースケースに合ってると思って良い
- また
amplify
コマンドを実際に叩いてみると意外といろいろ作成できることがわかるのでそれも余裕があれば確かめると良い - ただし
amplify
コマンドの使い方の心構えは今までのGitHubワークフローとちょっと違うところもあるので注意- Gitでファイルは復元できるからといって油断してはいけない。あくまで中心はAmplifyの
env
である
- 例えば
amplify delete
とかやるとGitでファイルを復元してもクラウド側のAmplifyのリソースは元に戻せない
- https://docs.amplify.aws/cli/teams/overview はよく読んでおくこと
- さらに
amplify
コマンドとgit
コマンドを使っていろいろ実践しておくこと
- 自分の場合はドキュメント読んだだけではこのことが理解できていなかった
- Gitでファイルは復元できるからといって油断してはいけない。あくまで中心はAmplifyの
- カスタマイズが必要な案件の場合はまず本当に実現できるのか慎重に判断すると良い
- ドキュメントや使ってみている人たちの記事などできる限り見たほうが良い
- 安易に予想してアーキテクチャの設計を進めてしまうと「実はできない」とか「バグでできないっぽい」が起こりうる
- カスタマイズする場合はCloudFormationやIAMの知識がそれなりにないとキビシイことになるかも
- ドキュメントが不十分なものが多々
- issueや記事を探さないとわからないことが結構ある
- それでもわからないとソースを読むことになるが、packageが多すぎて探すのもそれなりに苦労する
- カスタマイズが必要な場合は特に注意
- 学習コストがそこそこ高いようには思う
- カスタマイズする場合だけかもしれない
- 関わるサービスの内容自体もそれなりに理解しないと使いこなすのはキビシイ
- 自分はCognitoやAppSync(GraphQL)など初めて触るものも多かったため結構時間を費やした
- ローカル環境での開発(mock)はそこそこできる
- AppSync + DynamoDBなどはmockが使えるのでローカルでも開発できる
- ただしElasticsearchやAurora Serverlessを使ったりなどローカルでテストできないものもある
- 判断するには https://docs.amplify.aws/cli/usage/mock を読むのが早いと思う
amplify pull
によるバックエンドの共有機能は意外と貧弱- 単に
aws-exports.js
を作成するだけ - pullしただけのリポジトリでは
amplify status
のような基本的なコマンドとかも使えない - 一番困ったのは
amplify codegen
はフロントエンドでそれぞれ実施したいはずだけどそれができなかった
- 単に
- カスタマイズが必要だが実現できそうならAmplifyを使うときのメリット
- CloudFormationをなんとか維持しようという考えがAmplifyのおかげで高められる?
- 最初の段階では辛いことも多いがこれは運用に入ったときにとんでもなくメリットになると個人的に思う
- CloudFormationをなんとか維持しようという考えがAmplifyのおかげで高められる?