インスタンスメタデータ
インスタンスに関するデータで実行中のインスタンスを設定または、管理することができる。
できること
・起動中のユーザーデータにアクセスできる。
・パラメータ指定
・単純なスクリプトを含めることができる。
・ユーザーデータで指定したS3バケットからコンテンツを取得することができる。
ProvisionedThroughputExceededExceptionエラー
原因
現在のパフォーマンスでは要求された量のリクエストを処理できていない(リクエスト多すぎで読み取り処理が間に合ってないよ)
また、パーティションキー が十分に配布されておらず、データの処理が間に合ってない可能性がある。(データを探すのに時間がかかる)
対策
・エクスポネンシャルバックオフ(再試行間を指数的に伸ばしていく)の実施
・Lambdaによる並行処理の使用。
・最小量のRCUを使用するために、結果整合性の読み取りでクエリ処理へとリファクタリングをすることで、発生可能性を抑えることができる。
・パーテションキーで分類する
インスタンスのIPアドレスを取得したい(メタデータの取得)
Curlや
Getコマンドを利用して、http://(リンクローカルアドレス)/latest/meta-data/から直近のメタデータを取得することできる。
SDKを使用するために
アクセスキーを使用して、~/.aws/credentialに認証ファイルを作成する。
遅延キューと可視性タイムアウトの違い
どちらも他のコンシューマーと同じ処理をしないために使用する。
非表示にするタイミングが異なる。
遅延キューは、キューを受け取った時点で非表示にする。可視性タイムアウトはキューの処理が始まってから非表示にする。
予測以上の時間がかかってしまう場合
changeMessageVisibility
コンシューマーに合わせて動的に非表示にさせる時間を延長する。
自動でAMIを最新のやつに変更したい
Systems Manager パラメーターストアを利用して、CloudFormationテンプレートに最新のAMI IDを取得する。+ スタックを更新する
GetSessionToken API
既存のIAMユーザーに対して、一時的アクセス許可を与えることができる。
DynamoDBのテーブルの開発を簡単にするには
DynamoDBMapper、.NET(C#)にはオブジェクト永続性モデルがある。
オブジェクト永続性モデル テーブルをクラスオブジェクトとして使うことで、開発効率をあげることができる。
DynamoDBの特定項目のみ読み取り操作を許可したい
IAMポリシーにConditionを追加して、dynamodb:LeadingKeyを設定する。
Lambda関数のデプロイ
Lambda関数とコードの依存関係をまとめる(ZIP化する)
そのZIPファイル(デプロイパッケージ)が50MBを超えるサイズなら同じリージョンのS3にアップロードして、そこからデプロイする必要がある。
クエリ文字列パラメータ
パッシブパラメータ
ユーザーがどこのURLから飛んできたのかURLの語尾に記載する
アクティブパラメータ
商品の一覧をサイズごとにフィルタリングをしたり、価格順に並べたりすることができる。例:『…/t-shits/size=M』みたいなものでサイズでフィルタリングすることができる。
わかりやすいサイト↓
クエリ文字列(URLパラメーター)とは?Webサービス上の用途とその役割
コメントや要望があれば、下記のツイッターにDMをください。