ジョギング
日課
- (腕立て x 50) x 3
- 腹筋はまだ腰が痛くなりそうなので止めてる
今日の AWS ~ 色々メモ ~
DynamoDB
可用性
- DynamoDB では, 同じ AWS リージョン内の 3 つの施設間でデータが同期的にレプリケートされる為, 可用性とデータ耐久性も高まる
整合性モデル
- 結果的に整合性のある読み込み (デフォルト)
- 結果整合性のあるオプションを選択すると, 読み込みスループットが最大限に向上する
- 場合によっては, 最新の書き込み結果が反映されない可能性がる
- 強い整合性の読み込み
- GetItem, Query, Scan においてオプションとして指定可能
- キャパシティユニットを 2 倍消費する
- Read リクエストを受け取る前までの Write が全て反映されたレスポンスを保証
料金体系
- プロビジョンドスループット
- ストレージ利用量
- 無料枠 (25GB)
- 0.25$/GB
- キャパシティユニット
- 書き込み
- 1 ユニット: 最大 1KB のデータを 1 秒に 1 回書き込み可能
- 読み込み
- 1 ユニット: 最大 4KB のデータを 1 秒に 1 回書き込み可能 (強い一貫性を持たない読み込みであれば, 1 秒辺り 2 回)
- 書き込み
テーブル設計
- プライマリキー
- Partation key
- Partation Key と Sort Key
Scaling
- スループット
- テーブル単位で, 読み書きのスループットを指定
- サイズ
- 1 つのアイテムの合計サイズは 400KB
- local secondary index は異なるハッシュキー毎に最大 10GB のデータを格納
Local Secondary Index
- Sort Key 以外に絞り込み検索を行う Key を持つことが出来る
- Partition Key が同一で, 他のアイテムからの検索の為に利用
Global Secondary Index
- Partition Key 属性の代わりとなる
- Partition Key をまたいで検索を行うインデックス
高度なテーブル操作
- 強い一貫性を持った Read オペレーション
- GetItem, Query, Scan には Consistent Read オプションを指定可能
- Read Capacity Unit を 2 倍消費する
- Conditionl Write
- 条件付き書き込み, 更新
- Filter 式による結果の絞り込み
- Query と Scan で利用可能
- UpdateItem における Attribute への操作
- Atomic Counter
Beanstalk 構成, 対応プラットフォーム等
- ウェブサーバー環境
- ワーカー環境
- コード
- 構成要素
SQS
識別子
- Queue URL
- Message ID
- Receipt Handle
- メッセージ削除, Visibility の変更に必要
- メッセージ受信毎に受信する
- 同一メッセージでも受信毎に異なる
コスト
- 100 万キューイングリクエストまでは無料
- SQS リクエスト 100 万件につき 0.476 USD/GB
- データ転送
- 送信にコスト発生
- 同一リージョン内の SQS と EC2 インスタンスのデータ転送は無料
効率化
- Visibility Timeout (Default: 30 秒, 最大 12 時間)
- 複数の受信者がある場合, 受信者 1 が受信後, 他の受信者が受信出来ない (見せない) 状態にする (in Flight)
- スポットインスタンスを使おう
- 1 時間未満の使用料は無課金
- メッセージの送受信は最大 10 件
- SQS へのリクエストが少なければ少ない程コスト効率が良い
- 送信: send-message-batch, 受信: receive-message の
--max-number-of-messages
オプションを利用する (デフォルト 1, 最大 10)
- Long Polling
- Recieve Message Wait Time
メッセージが取得出来るまで
待つ時間を設定出来る (0 秒から 20 秒)
上限
- メッセージの保持期間
- デフォルトでは 4 日間保持
- 60 秒から 14 日間で変更可能
- In Flight されたメッセージ
- 1 キュー毎に 120,000 In Flight メッセージ
- 超過すると OverLimit エラー
- メッセージの最大サイズ
- 64KB から 256KB に拡張された (2013/06)
その他の機能
- Delay Queue
- キューに送られた新しいメッセージを一定期間見えなくする
- 0 〜 900 秒
- 全てのメッセージに適用される
- Message Timer
- 個々のメッセージに対して, 送信されてから見えるようになるまでの時間を設定
- 0 〜 900 秒
- Delay Queue の遅延時間設定を上書きする
- Dead Letter Queue
- Worker 側の不具合等でキュー内に削除されず残ってしまったメッセージについて, 指定回数受信したら Dead Letter Queue に移動する
フムフム.