Amplify
AWSをBAASとして扱うためのフロント向けフレームワーク。
iOS / Android / SPAに対応。
cliを使って、AWSのサービスとクライアント側APIの双方の管理が可能。
例えば
amplify add api
によって、ブラウザからアクセス可能なAPIが生成される。
裏側では
- サーバ側のappsync / dynamodbと
- クライアント側のjs コード
が生成される。
メリット
必要なサービスを一括で作れる
Rails Wayみたいに、乗ってけ的な楽さはある。デメリット
結局個々の機能は別々に学習していく必要がある。
情報が個々の機能とAmplifyで分散する。
Cognito
amplify add auth
作成時に「全部デフォルト」すると、ユーザプール名が意味のないIDになってしまって切ない思いをする。
ユーザ管理と認証をしてくれる。
TwitterとかGoogleアカウントとかもやってくれる偉いやつ。
IAMロールを関連づけることができる。
AppSync
DynamoDB/ElasticSearch/Auroraをバックエンドに、スマホから直接クエリーを投げたりデータ同期が出来る。
amplify add api
認証
API_KEYかCOGNITOを選べる
"output": {
"securityType": "API_KEY"
}
https://aws-amplify.github.io/docs/js/api
API_KEY / AWS_IAM / AMAZON_COGNITO_USER_POOLS / OPENID_CONNECT
認証かけてる
https://dev.classmethod.jp/cloud/aws/higobashi-aws-5-angular-appsync/
connection
@connectionで、model同士の関連が作れる。
S3 / Storage
amplify add storage
クライアントから直接S3へアクセスする。
アクセス制御は、CognitoのIAMをベースとする。
そのユーザにしか見えないフォルダも作れるっぽい。