Closed34

学習メモ:AWS-DVA-C01

ito_110ito_110

Lambda オーソライザー

公式ドキュメントより

Lambda オーソライザー (以前のカスタムオーソライザー) は、Lambda 関数を使用して API へのアクセスを制御する API Gateway の機能です。
Lambda オーソライザーには 2 種類あります。

トークンベース の Lambda オーソライザー

  • TOKEN オーソライザーとも呼ばれる
  • JSON ウェブトークン (JWT) や OAuth トークンなどのベアラートークンで発信者 ID 受け取る。

リクエストパラメータベースの Lambda オーソライザー

  • REQUEST オーソライザーとも呼ばれます
  • ヘッダー、クエリ文字列パラメータ、stageVariables、および $context 変数の組み合わせで発信者 ID を受け取る。
  • WebSocket API では、リクエストパラメータベースのオーソライザーのみがサポート
ito_110ito_110

DynameDBセカンダリインデックス

AWS 認定デベロッパー アソシエイト模擬試験問題集(5回分325問)より

グローバルセカンダリインデックス

ベーステーブルと異なるパーティションキーとソートキーを持つインデックスです。
グローバルセカンダリインデックスは、そのインデックスのクエリは、すべてのパーティションにわたって、ベーステーブルのすべてのデータを対象に実行できるので、「グローバル」と見なされます。

ローカルセカンダリインデックス

ベーステーブルと同じパーティションキーと、異なるソートキーを持つインデックスです。
ローカルセカンダリインデックス内部のすべてのパーティションの範囲が、同じパーティションキーの値を持つベーステーブルパーティションに限定されるという意味で「ローカル」です。

ito_110ito_110

AWS Systems Manager Parameter Store

AWS Systems Manager パラメータストア は、設定データ管理と機密管理のための安全な階層型ストレージを提供

メリットは?

  • セキュアでスケーラブルな、ホストされたシークレット管理サービスを使用します (管理が必要なサーバーはありません)。
  • コードからデータを分離してセキュリティ体制を改善します。
  • 設定データと暗号化された文字列を階層内に保存し、バージョンを追跡します。
  • きめ細かいレベルでアクセスの制御と監査を行います。
  • Parameter Store は AWS リージョン で複数のアベイラビリティーゾーンでホストされるため、パラメータは確実に保存してください

引用

AWS 認定デベロッパー アソシエイト模擬試験問題集(5回分325問)
AWS Systems Manager Parameter Store

ito_110ito_110

Elastic Beanstalkがデプロイ時に依存しているサービスと後から設定できるサービス

CodePipeline

  • Elastic Beanstalk を使用してコードをデプロイするように CodePipeline を設定
  • パイプラインを作成する前または [Create Pipeline] ウィザードのステージのデプロイアクションで使用できるように、Elastic Beanstalk アプリケーションおよび環境を作成

CloudFormation

  • AWS CloudFormationとAWS Elastic Beanstalkは互いに補完するように設計されている

引用

AWS 認定デベロッパー アソシエイト模擬試験問題集(5回分325問)

ito_110ito_110

Lambda関数エイリアス

Lambda のエイリアスとは、特定の関数のバージョンに対するポインタのようなものです。ユーザーは、エイリアス Amazon リソースネーム (ARN) を使用して関数のバージョンにアクセスできます。

エイリアスを介して複数バージョン間の切り替えが可能
Lambda 関数のエイリアス

ito_110ito_110

API Gateway のメトリクス

メトリクス 説明
4XXError 指定された期間に取得されたクライアント側エラーの数
5XXError 指定された期間に取得されたサーバー側エラーの数
CacheHitCount 指定された期間内に API キャッシュから配信されたリクエストの数
CacheMissCount API キャッシュが有効になっている特定の期間における、バックエンドから提供されたリクエストの数
Count 指定期間内の API リクエストの合計数
IntegrationLatency API Gateway がバックエンドにリクエストを中継してから、バックエンドからレスポンスを受け取るまでの時間
Latency API Gateway がクライアントからリクエストを受け取ってから、クライアントにレスポンスを返すまでの時間

参考:AWS Amazon API Gateway のディメンションとメトリクス

ito_110ito_110

Amazon ElastiCache キャッシュ戦略

名称 説明
遅延読み込み 必要なときにのみキャッシュにデータを読み込む
書き込みスルー 書き込みスルー戦略では、データがデータベースに書き込まれると常にデータを追加するか、キャッシュのデータを更新
TTL キーの有効期限までの秒数を指定する整数値、一定期間でデータ項目を失効させる

参考:AWS キャッシュ戦略

ito_110ito_110

AWS Elastic Beanstalkのデプロイオプション

名称 説明
AllAtOnce ローリングデプロイを無効にし、常に同時にすべてのインスタンスにデプロイを実行
Rolling 標準的なローリングデプロイを有効にする
RollingWithAdditionalBatch 総容量を維持するために、デプロイ開始前にインスタンスの追加バッチを起動
Immutable すべてのデプロイ時にイミュータブルな更新を実行
TrafficSplitting トラフィック分割デプロイを実行して、アプリケーションのデプロイの Canary テストを実施

参考:AWS デプロイポリシーと設定

ito_110ito_110

API キーを使用した使用量プラン

API GatewayからAPIキーを発行することで、以下が可能になる

  • APIキーを持つユーザのみアクセス可能なAPIを作成できる
  • APIキー毎のアクセス回数を取得できる
  • 使用量プランを作成することで、APIキーにクォータ(アクセス可能回数)、レート(アクセス頻度)、バーストを設定できる(レート、バーストの制限値はAWSアカウント全体、APIステージ毎にも元々存在)

Developer/IO:API GatewayのAPIキーと使用量プランについて調べてみた

ito_110ito_110

AWS KMSの最大データサイズ

AWS KMSの最大データサイズは4KB

ito_110ito_110

CloudFront間のHTTPS通信_Viewer Protocol Policy

CloudFront がディストリビューションに割り当てたドメイン名を使用している場合 (d111111abcdef8.cloudfront.net など)、
1 つ以上のキャッシュ動作の [ビューワープロトコルポリシー] 設定を変更して、HTTPS 通信を必須にします。

Viewer Protocol Policy

  1. Redirect HTTP to HTTPS

    ビューワーは両方のプロトコルを使用できます。HTTP GET および HEAD リクエストは自動的に HTTPS リクエストにリダイレクトされます。CloudFront は新しい HTTPS URL とともに HTTP ステータスコード 301 (Moved Permanently) を返します。ビューワーはこの HTTPS URL を使用して CloudFront にリクエストを再送信します。

  2. HTTPS Only

    ビューワーは、HTTPS を使用している場合にのみ、コンテンツにアクセスできます。ビューワーが HTTPS リクエストではなく HTTP リクエストを送信した場合、CloudFront は HTTP ステータスコード 403 (Forbidden) を返し、オブジェクトは返しません。

参考ドキュメント

AWS公式_ビューワーと CloudFront 間の通信で HTTPS を必須にする

ito_110ito_110

AWS_KMS:エンベロープ暗号化

公式ドキュメントより、

データを暗号化するとデータは保護されますが、暗号化キーを保護する必要があります。1 つの戦略としては、それを暗号化します。エンベロープ暗号化は、データキーでプレーンテキストデータを暗号化してから、そのデータキーを別のキーで暗号化する手法です。

データ暗号化キーを別の暗号化キーで暗号化し、その暗号化キーを別の暗号化キーで暗号化することもできます。しかし、最終的には、キーとデータを復号化するために、1 つのキーをプレーンテキストで保持する必要があります。この最上位プレーンテキストキーの暗号化キーは、ルートキーと呼ばれます。

利点

  • データキーの保護
  • 複数のキーを使用した同じデータの暗号化
  • 複数のアルゴリズムの強度の結合

参考ドキュメント

AWS:エンベロープ暗号化

ito_110ito_110

Amazon DynamoDB Transactions

公式ドキュメントより

Amazon DynamoDB Transactions を使用すれば、複数のアクションをまとめてグループ化し、1 つのオールオアナッシングの TransactWriteItems
 または TransactGetItemsオペレーションとして送信できます。以下のセクションでは、API オペレーション、容量管理、ベストプラクティス、DynamoDB でのトランザクション操作の使用に関する他の詳細について説明します。

参考ドキュメント

AWS公式:Amazon DynamoDB Transactions: 仕組み

AWS公式:DynamoDB トランザクションの例

ito_110ito_110

概要:AWS X-Ray

勉強前のイメージ

AWS認定試験の勉強中にX-Rayを知る。

分析用のサービスという認識

勉強中のメモ

サービス概要

Cloudwatchとの違い

CloudWatch:インフラレイヤでのパフォーマンスを確認

X-Ray:アプリケーションレイヤを対象としてレスポンスタイムやレスポンスステータスなどの情報を収集

X-Rayの方が包括的という印象

メモ

  • 各リクエストの情報をトレース、セグメント、サブセグメントという階層に整理
  • AWS:サービス別資料やチュートリアルが一番概要を掴みやすい
  • 元のアプリからトレースして分析

参考ドキュメント

AWS:AWS X-Ray の特徴
AWS:サービス別資料
Qiita:AWS X-Ray とは
DevelopersIO:AWS再入門ブログリレー2022 X-Ray編

ito_110ito_110

ECSのタスク戦略

binpack

タスクはコンテナインスタンスに配置され、未使用の CPU またはメモリを最小にします。この戦略は、使用中のコンテナインスタンスの数を最小限に抑えます。
この戦略が使用されてスケールインアクションが実行されると、Amazon ECS はタスクを終了します。タスクが終了した後にコンテナインスタンスに残されたリソース量に基づいてこれが実行されます。タスクの終了後に利用可能なリソースが最も多く残るコンテナインスタンスが、そのタスクを終了されます。

random

タスクはランダムに配置されます。

spread

タスクは指定された値に基づいて均等に配置されます。有効な値は instanceId (または同じ効果を持つ host)、または attribute:ecs.availability-zone などのコンテナインスタンスに適用される任意のプラットフォームまたはカスタム属性です。
サービスタスクはそのサービスからのタスクに基づいて分散されます。スタンドアロンタスクは、同じタスクグループからのタスクに基づいて分散されます。タスクグループの詳細については、「タスクグループ」を参照してください。
spread戦略が使用されてスケールインアクションが実行されると、Amazon ECS は、アベイラビリティーゾーン間のバランスを維持するタスクを選択して終了します。アベイラビリティーゾーン内では、タスクはランダムに選択されます。

Amazon ECS タスク配置戦略

ito_110ito_110

EC2のインスタンスタイプ:ファミリー

汎用

他のインスタンスファミリーの特徴を要するような、尖らない要件ではない限り全般的に利用可能です。ただし、 tシリーズについては前述の特徴から開発環境や一定の時間帯のみリソース負荷がスパイクするユースケースに適しています

コンピューティング最適化

バッチ処理、高性能/高負荷なWebサーバ、動画エンコード、ゲームサーバなど

メモリ最適化

高性能/高負荷なデータベース、キャッシュサーバ、ビッグデータ分析など

ストレージ最適化

NoSQL データベース、インメモリデータベース、データウェアハウスなど

高速コンピューティング

インスタンスタイプによりハードウェアアクセラレータは異なります。・P3:機械学習/深層学習、HPC、計算流体力学 等・G4:機械学習のトレーニングと推論、ビデオトランスコーディング 等・Inf1:レコメンデーションエンジン、画像/動画分析 等(機械学習推論に対しては最も低コスト)・F1:ゲノム研究、財務分析、リアルタイムのビデオ処理 等

EC2 インスタンスタイプの種類や選び方!AWS初心者向けに今一度整理

ito_110ito_110

AWS Systems Manager Parameter StoreとAWS Secrets Managerの使い分け

AWS Systems Manager Parameter Store

構成とシークレット用の単一の保存用ストアが必要な場合

AWS Secrets Manager

ライフサイクル管理を備えた専用のシークレットストアが必要な場合

ito_110ito_110

X-Rayのサンプリングルールの計算方法

サンプリングリクエスト数 = リザーバーサイズ+((1秒あたりの着信リクエスト-リザーバーサイズ)*固定レート)

ito_110ito_110

CloudFormationの各セクション

Parametersセクション

  • 条件において評価する入力を定義
  • これらの入力パラメータの値に基づいて、条件は true または false と評価される
  • 条件で擬似パラメータを評価する場合は、このセクションで擬似パラメータを定義する必要はない
  • 擬似パラメータはCloudFormation によって事前に定義

Conditionsセクション

  • 組み込み関数を使用して条件を定義
  • 条件はCloudFormation が関連するリソースをいつ作成するかを指定

Resources および Outputsセクション

  • 条件付きで作成するリソースまたは出力と条件を関連付け
  • CloudFormation は、true に関連付けられたエンティティを作成し、false に関連付けられたをエンティティを無視
  • Condition キーと条件の論理 ID を使用して、リソースまたは入力と関連付
  • 条件付きでプロパティを指定するには、Fn::If 関数を使用
ito_110ito_110

Amazon ECS のユーザーデータの一般的なユースケース

設定情報を Docker デーモンと Amazon ECS コンテナエージェントに渡すこと

Amazon EC2 Auto Scaling グループを使用してコンテナインスタンスを
起動する場合はecs.configファイルにおいて、
ECS_CONTAINER_INSTANCE_TAGS エージェント設定
パラメータを使用してタグを追加する必要がある。

ito_110ito_110

Amazon RDS DBインスタンスの拡張モニタリングで取得出来るメトリクス

  • RDS Child プロセス
  • OSプロセス
ito_110ito_110

パスベースルーティング

マイクロサービスを実行している場合はパスベースのルーティングを使用して、トラフィックを複数のバックエンドサービスにルーティングできる

ito_110ito_110

Lambda同時実行数のバーストの制限

  • 3000 – 米国西部 (オレゴン)、米国東部(バージニア北部)、欧州 (アイルランド)
  • 1000 – アジアパシフィック (東京)、欧州 (フランクフルト)
  • 500 – その他のリージョン
ito_110ito_110

STSの資格情報の有効時間

資格情報は、15分から1時間の範囲で有効期限が設定
デフォルトでは1時間

ito_110ito_110

Lambdaのメモリ

メモリは 128 MB から 3,008 MB までの間で 64 MB 刻みで設定可能

ito_110ito_110

Lambda@Edge

AWS_Lambda@Edge
Qitta:Lambda@Edge とは

Lambda@Edge は、Amazon CloudFrontの機能で、アプリケーションのユーザーに近いロケーションでコードを実行できるため、パフォーマンスが向上し、待ち時間が短縮されます。

ito_110ito_110

Lambda関数を呼び出す際のInvoke API

InvocationTypeから選択する3つのオプション

  • RequestResponse(デフォルト)
    関数を同期的に呼び出します。関数が応答を返すかタイムアウトになるまで、接続を開いたままにします。API応答には関数応答と追加データが含まれます。
  • Event
    InvocationTypeにEventを指定すると非同期実行になります。非同期呼び出しでは、Lambda関数が直接実行されるのではなく、キューイングされたのち実行されます。 キューイングされるために、EventタイプでInvoke APIを実行すると、API実行後にすぐにレスポンスが返りステータスコードは202となります。
  • DryRun
    パラメーター値を検証し、ユーザーまたはロールに関数を呼び出す権限があることを確認します。
ito_110ito_110

VPC フローログ

VPC のネットワークインターフェイスとの間で行き来する IP トラフィックに関する情報を
キャプチャする機能

ito_110ito_110

2022.7.10に試験合格したので、こちらのスクラップはクローズします。

このスクラップは2022/07/10にクローズされました