LoginSignup
2
0

More than 1 year has passed since last update.

AWS Serverless デジタルバッジを取得する④ アーキテクチャ・移行編

Posted at

このデジタルバッジ取得のために、AWS Skill Builderのこのコースを学習している記録

自分のスキルレベルは以下。

  • SAAは取得
    • 4年前ぐらい
  • 実務利用なし
    • 趣味レベルではあり

Architecting Serverless Applications (Japanese) (Sub) 日本語字幕版

サーバーレスに移行する

移行パターン

  • インフラストラクチャの抽象化とアーキテクチャのモダナイズ
    • 容量・コスト
    • 運用モデル・開発モデル
    • モノリシック
    • コンテナ化
    • イベント駆動型マイクロサービス
  • サーバレス移行パターン
    • リープフロッグ
      • 中間を省略して、オンプレをサーバレスに。
    • オーガニック
      • リフトアンドシフト
    • ストラングラー
      • 徐々にAPIを作成して置き換える。
      • 新機能はサーバレスファースト。

移行に関する検討事項

  • 検討すべき質問
    • APが何をするか、コンポーネントの構成
    • コマンドクエリ責務分離 (CQRS) パターンに基づいてデータをどのように分割できるか。
    • スケーリング方法
    • スケジュールベースのタスク
    • キューのリッスンするワーカー
    • 現在の実装に影響を及ぼすことなく、機能をリファクタリングまたは拡張できるのはどこか。
  • 検討要素(コスト観点
    • インフラコスト
    • 開発コスト
    • 時間コスト

参考資料

コンピューティングサービスとデータストアを選択する

サーバーレスコンピューティングに AWS Fargate と AWS Lambda を使用する

  • 比較
    • Fargate
      • リフトアンドシフト
      • 長い処理・大きいパッケージ
      • 予測可能・安定
      • 3GB以上メモリ
      • HTTP以外
      • Docker
    • Lambda
      • 15分未満
      • 予測不可・スパイク発生
      • 軽量・ステートレスコンピューティング
      • リアルタイムでのデータ処理
      • 開発運用の複雑さを軽減
  • データストア
    • S3
      • 柔軟
      • Lambdaの取得したデータのフィルタリング(S3 Select
    • DynamoDB
      • ミリ秒単位
      • Key-Value
      • DynamoDB Streamsで変更キャプチャして、他データストア要インデックス作成
    • ElastiCache for Redis
      • リアルタイム順位表等にに最適
      • ミリ秒単位
      • インメモリデータストア
    • Amazon Quantum Ledger Database (Amazon QLDB)
      • 安全性を証明できる暗号方式で状態の変化をモデル化
      • 分散型台帳
    • Aurora
    • Aurora Serverless
      • トラフィックにおじたスケール
    • RDS
  • データストアの課題
    • 部分的な実行の管理
    • 他ドメインとの共有
    • 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%に出来なくなりました。

image.png

証明書のダウンロードはできるし、プランの画面からは進捗率100%になっているので、デジタルバッジ取得には影響なさそうです。

image.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0