AWS Developer Associate 勉強メモ その7
前回の続きです。
ついに残すところ1/4となりました。
このままラストスパートをかけていきたいと思います。
今回はDynamoDB, API Gateway, SAM, Cognitoです。
セクション20
- DynamoDB
- DynamoDB WCU & RCU
- DynamoDB Basic APIs
- DynamoDB Indexes (GSI + LSI)
- DynamoDB Optimistic Concurrency
- DynamoDB DAX
- DynamoDB Streams
- DynamoDB TTL
- DynamoDB CLI
- DynamoDB Transactions
- DynamoDB Session State
- DynamoDB Partitioning Strategies
- DynamoDB Conditional Writes, Concurrent Writes & Atomic Writes
セクション21
- AWS API Gateway
- API Gateway Stages and Deployment
- API Gateway Canary Deployments
- API Gateway Integration Types & Mappings
- API Gateway Swagger & Open API 3.0
- API Gateway Caching
- API Gateway Usage Plans & API Keys
- API Gateway Monitoring, Logging and Tracing
- API Gateway COR
- API Gateway Authentication and Authorization
- API Gateway REST API vs HTTP API vs WebSocket API
セクション22
- AWS SAM
- SAM CLI
- SAM API Gateway
- SAM DynamoDB
- SAM - CloudFormation Designer and Application Repository
- SAM Policy Templates
- SAM with CodeDeploy
セクション23
- AWS Cognito
- Cognito User Pools
- Cognito Identity Pools
- Cognito Sync
知らなかったこと・忘れてたこと
API Gatewayのエラーコード早見表
- 4xx はクライアントのエラーを意味する
・400: Bad Request
・403: Access Denied, WAF filtered
・429: Quota exceeded, Throttle - 5xxはサーバーエラーを意味する
・502: Bad Gateway Exception
通常は互換性のない出力が Lambda プロキシ統合バックエンドから返された場合や、高負荷による順番外の呼び出しの場合に発生する。
・503: Service Unavailable Exception
・504: Integration Failure
エンドポイントリクエストのタイムアウト例外。API ゲートウェイのリクエストが最大 29 秒後にタイムアウトする
API Gateway HTTP API vs REST API
HTTP API
- REST APIよりも低レイテンシかつコスト効率の良く、AWS Lambda関数やHTTPエンドポイントにリクエストを送信することが可能
- OIDC および OAuth 2.0 認証とCORS、自動デプロイをサポート
- Usage PlanやAPIキーはない
- Native OpenID Connect / OAuth 2.0を除くすべての機能を利用可能
SAM Summary
- SAMはCloudFormation上に構築される
- SAMはTransform および Resources セクションを必要とする
- 知っておきたいコマンド
・-- sam build: 依存関係の取得とローカルのデプロイアーティファクトの作成
・-- sam package:パッケージ化してAmazon S3にアップロードし、CFテンプレートを生成
・-- sam deploy: CloudFormationへのデプロイ - SAMポリシーテンプレートで簡単にIAMポリシーを定義可能
- SAMはCodeDeployと統合されており、Lambdaエイリアスへのデプロイが可能
Cognito User Pools vs Identity Pools
Cognito User Pools
- ウェブおよびモバイルアプリケーションのユーザーのデータベース
- Public Social, OIDC, SAML を通じてログインをフェデレートすることができる
- 認証用のホストUIをカスタマイズ可能(ロゴを含む)
- 認証フロー中にAWS Lambdaを使ったトリガーを使用可能
Cognito Identity Pools
- ユーザーのAWSクレデンシャルを取得し、AWSへのアクセスが可能
- ユーザーはパブリック・ソーシャル、OIDC、SAML、Cognitoのユーザープールを介してログイン可能
- 認証されていないユーザー(ゲスト)も利用可能
- ユーザーはIAMロールとポリシーにマッピングされ、ポリシー変数を活用することができる
CUP + CIP = ユーザー/パスワードの管理 + AWSサービスへのアクセス
まとめ
今回は勉強していて楽しいセクションばかりでした(SAM除く)。
SAMはなんとなくでしか理解できなく、ハンズオンを見てもあまり何をやっているかわからなかったのであとでまとめて勉強し直します。
今回はServerless推しな章ばかりでしたが、残すところもあと少しなので引き続き頑張っていこうと思います。