紙一重の積み重ね

アラフォーのエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【AWS学習】育児の合間に認定デベロッパーアソシエイト学習⑤

f:id:yokoyantech:20200621160338p:plain

はじめに

AWS認定デベロッパーアソシエイト取得に向けた学習ログです。

学習期間

2020年7月13日~7月19日

学習ログ

Lambdaのデッドレターキューが利用されるケース

  • 要件
    • Lambdaは2回再試行を試みる
  • Lambdaの非同期呼び出しが3回失敗した場合、デッドレターキューに入る

aws.amazon.com

SQSのメッセージを10日間キューに格納したい

  • 要件
    • SQSキューのポーリング処理をLambdaが受け取る
  • 実現方法
    • メッセージの最大保持期間を変更する
      • デフォルト設定は、4日間
      • 最大14日間まで変更可能

不正なドメインからAPI GatewayへのAPIアクセスを防ぎたい

  • 実現方法
    • Cross-origin resource sharingの制限をする
  • CORSとは
    • 追加のHTTPヘッダを利用して、あるオリジンで実行されているWEBアプリが、別のオリジンから選択されたリソースにアクセスできるようにブラウザに指示するメカニズム。
    • 自分のオリジンとは異なるオリジン(ドメイン、プロトコル、ポート)をRequestすると、クロスオリジンhttpRequestを実行する

developer.mozilla.org

f:id:yokoyantech:20200720082213p:plain

  • CORSの例
    • 別のドメイン
      • example.comから、amazondomains.com
    • 別のサブドメイン
      • example.comから、petstore.example.com
    • 別のポート
      • example.comから、example.com:10777
    • 別のプロトコル
      • https://example.comから、http:example.com
  • REST APIリソースのCORSを有効にする

docs.aws.amazon.com

Lambdaを同一コードで、複数の各環境で動くようにする

  • 実現方法
    • 環境変数を使う
      • コードの変更なしで、ライブラリに設定値を動的に渡すことができる

ワークロードを均等に分散させて、DynamoDBのパフォーマンス向上したい

  • 要件
    • ECSクラスタで動くDockerアプリ
    • DyamoDBを使用
  • 実現方法
    • カーディナリティの高いパーティションキーを使用する
  • カーディナリティとは
    • cardinality
      • 濃度
    • カラムの値の種類の絶対値のこと
      • カラムのデータの種類が、テーブルのレコード数に比べて高い場合、カーディナリティが高い
  • パーティションキー設計の推奨アプローチ

    高いカーディナリティを持つ attribute を使用する。つまり、e-mail id, employee_no, customerid, sessionid, ordered などの各 Item ごとに異なる値を持つ attribute を利用することです。

API GATEWAYのステージ変数

docs.aws.amazon.com

Lambdaプロキシ統合

REST APIを作成する docs.aws.amazon.com

シャードイテレータが予期せぬ終了をする際の対処法

docs.aws.amazon.com

Cognito Syncによるオフライン同期

docs.aws.amazon.com

Kinesis Data Streamsのスケールアップ

Q: Amazon Kinesis Data Streams の制限事項は何ですか?

Amazon Kinesis データストリームのスループットは、データストリーム内のシャードの数を増やすことによって制限なしにスケールするよう設計されています。ただし、Amazon Kinesis Data Streams を使用する際に考慮する必要のある特定の制限があります。

Q: Amazon Kinesis クライアントライブラリ (KCL) を使用して Amazon Kinesis アプリケーションの処理能力を自動的にスケールアップする方法を教えてください。

Amazon Kinesis アプリケーションの複数のインスタンスを作成し、これらのアプリケーションインスタンスを Auto Scaling グループの一部である Amazon EC2 インスタンスのセットで実行します。

aws.amazon.com

CodeBuildのログ確認方法

  • CloudTrailを有効化する
  • CloudWatchでCodeBuildメトリクスを確認する

docs.aws.amazon.com

docs.aws.amazon.com