このデジタルバッジ取得のために、AWS Skill Builderのこのコースを学習している記録
自分のスキルレベルは以下。
- SAAは取得
- 4年前ぐらい
- 実務利用なし
- 趣味レベルではあり
Architecting Serverless Applications (Japanese) (Sub) 日本語字幕版
サーバーレスに移行する
移行パターン
- インフラストラクチャの抽象化とアーキテクチャのモダナイズ
- 容量・コスト
- 運用モデル・開発モデル
- モノリシック
- コンテナ化
- イベント駆動型マイクロサービス
- サーバレス移行パターン
- リープフロッグ
- 中間を省略して、オンプレをサーバレスに。
- オーガニック
- リフトアンドシフト
- ストラングラー
- 徐々にAPIを作成して置き換える。
- 新機能はサーバレスファースト。
- リープフロッグ
移行に関する検討事項
- 検討すべき質問
- APが何をするか、コンポーネントの構成
- コマンドクエリ責務分離 (CQRS) パターンに基づいてデータをどのように分割できるか。
- スケーリング方法
- スケジュールベースのタスク
- キューのリッスンするワーカー
- 現在の実装に影響を及ぼすことなく、機能をリファクタリングまたは拡張できるのはどこか。
- 検討要素(コスト観点
- インフラコスト
- 開発コスト
- 時間コスト
参考資料
コンピューティングサービスとデータストアを選択する
サーバーレスコンピューティングに AWS Fargate と AWS Lambda を使用する
- 比較
- Fargate
- リフトアンドシフト
- 長い処理・大きいパッケージ
- 予測可能・安定
- 3GB以上メモリ
- HTTP以外
- Docker
- Lambda
- 15分未満
- 予測不可・スパイク発生
- 軽量・ステートレスコンピューティング
- リアルタイムでのデータ処理
- 開発運用の複雑さを軽減
- Fargate
- データストア
- S3
- 柔軟
- Lambdaの取得したデータのフィルタリング(S3 Select
- DynamoDB
- ミリ秒単位
- Key-Value
- DynamoDB Streamsで変更キャプチャして、他データストア要インデックス作成
- ElastiCache for Redis
- リアルタイム順位表等にに最適
- ミリ秒単位
- インメモリデータストア
- Amazon Quantum Ledger Database (Amazon QLDB)
- 安全性を証明できる暗号方式で状態の変化をモデル化
- 分散型台帳
- Aurora
- Aurora Serverless
- トラフィックにおじたスケール
- RDS
- S3
- データストアの課題
- 部分的な実行の管理
- 他ドメインとの共有
- ETL
- Glue
参考資料
AWS のデータベース: 最適なジョブのための最適なツール
※Skillbuilder内の埋め込み動画
アプリケーションアーキテクチャパターン
サーバーレス IT オートメーション
IT オートメーションはサーバーレスコンポーネントが最初に導入される分野の 1 つです。
IT オートメーションのサーバーレス化はリスクが非常に低く、短期間で成果が得られます。
- 例: 設定変更への自動対応
- セキュリティグループルール
- CloudWatchイベント
- ルール変更をイベントとして検知
- AWS Config
- Lambda関数をトリガー
- Lambda
- 更新が許可されてるルールかを評価。
- NGの場合はルール削除し、SNSでアラート通知。
サーバーレスのウェブアプリケーションとモバイルアプリケーション
- 例: ウェブアプリケーション
- クライアント
- API Gateway
- SQS
- Lambda
- DynamoDB
- Cognito
- ウェブアプリケーション慶友のアクセス認証
- S3
- CloudFront
- 静的コンテンツ配信
- 例: モバイルバックエンド
- ユーザーの要求
- リアルタイムのデータと機能豊富なユーザーエクスペリエンス
- オフライン時や低速接続時にもデータを利用できること
- デバイス間のデータが同期されること
- マイクロサービスベースの課題
- 分散データを取得するのに複数の接続が必要
- トランザクションデータとクエリデータの組み合わせもサポートする必要
- 構成
- クライアント
- Congnito
- Appsync
- 他サービスとのHTTPリクエスト・レスポンスを管理
- DynamoDB
- DynamoDB Streams
- 変更検知し、インデックスをLambda
- Lambda
- OpenSearch
- Amazon Pinpoint
- クライアントからの分析データをキャプチャし、ユーザーデータに基づいた通知を行う
- ユーザーの要求
サーバーレスアプリケーションに関するベストプラクティス
- 使える技術は作り直さず、あるものを使う。
- できる限りマネージドサービスを利用
- 以下も活用
- コードは移植して終わりではない。
- 他最初は移植でも、再検討は必要
- 最新の状態に保つ。
- 最新のサービス・アップデート情報に対するキャッチアップ
- できる限り、べき等でステートレスな関数を使う。
- できない場合は、ステートフルコントロール (再試行、長時間実行) が必要な Step Functions を使用します。
- イベントはできる限り AWS のサービス内で保持する。
- できる限りコードを記述せず、AWS のサービス間直接通信させる
- すべての関連サービスの制限を確認する。
- ほとんどの AWS クォータに関しては、AWS Service Quotas コンソールを使用して、表示および引き上げのリクエストができます。
まとめ・その他。
前のコースがボリュームあったのですが、このコースは比較すると少なかったです。
想定時間が同じ2hと書いてあるので、ここは結構適当かもしれません。
例がシンプルな構成パターン多く、ベストプラクティスの話もあるので、先にこっちのコースをやってからのほうが理解がしやすいかもしれません。
あと、本編とは別に、突如AWS認定の宣伝動画が追加されてました。
これもコース全体の進捗率を表示するインジケーターに含まれているようですが、一度閲覧するとロックされ、視聴を完了出来ず、100%に出来なくなりました。
証明書のダウンロードはできるし、プランの画面からは進捗率100%になっているので、デジタルバッジ取得には影響なさそうです。