Contenu connexe Similaire à 20111215 12 aws-meister-sqs_sns_sdb-public (20) Plus de Amazon Web Services Japan (20) 20111215 12 aws-meister-sqs_sns_sdb-public3. Global Infrastructure for Global Asia Pacific Asia Pacific
US West US East Europe
Enterprises
GovCloud
(US ITAR Region) (Northern (Northern West Region Region
California, Virginia) (Dublin) (Singapore) (Tokyo)
Oregon)
South
America
(San Paulo)
AWS Regions
AWS Edge Locations
12. 動作イメージ
管理者
1.キューの作成/4.キューの削除
(http://sqs.ap-northeast-1.amazonaws.com/123456789012/queue2)
3.メッセージ受信
2.メッセージ送信
メッセージ受信者
メッセージ送信者 (Reader
(Writer or Consumer)
or Producer)
13. メッセージの到達保障
管理者
1.キューの作成/4.キューの削除
(http://sqs.ap-northeast-1.amazonaws.com/123456789012/queue2)
3.メッセージ受信
2.メッセージ送信
Visibility
Timeout
15. Visibility Timeoutとは(2)
あるReader-Aが あるReader-Dが
メッセージ1を依頼 あるReader-Bが あるReader-Cが
メッセージ1を依頼
依頼 依頼
メッセージは メッセージは
返却されない 返却されない
メッセージの返却 削除されてい
ない場合
(メッセージの
返却)
この間にReader-Aは、
・受信したメッセージを処理する
・処理出来たらメッセージを削除する
19. SQSのキューのセキュリティ
IAMまたはポリシーベースでユーザ
とアクションを制限する事が可能
{ "Statement":[{
"Effect":"Allow",
"Action":"sqs:SendMessage",
"Resource":"arn:aws:sqs:*:123456789012:SampleQueue" }
,{
"Effect":"Deny",
"NotAction":"sqs:SendMessage",
"NotResource":"arn:aws:sqs:*:123456789012:SampleQueue"
}]}
23. 顧客はいつSQSを使っているか?
ハイブリッド オンプレミスとAWSクラウド
クラウド連携 連携
イメージ処理、インデクシング
Webアプリケー 等のシステム間の疎結合なやり
ション/SaaS 取りに利用
ビッグデータや EMRやAWSクラウドの
バッチ処理 その他サービスとの連携に利用
30. 動作イメージ
管理者
1.トピックの作成/5.トピックの削除
2.トピック購読
3.メッセージ配信
4.メッセージ受信
メッセージ配信者 メッセージ購読者
(Publisher) (Subscriber)
43. One Size Does Not Fit All
RDBMSが全てではない
EC2+EBSまたはRDSは汎用的
より目的特化なデータベース
シンプルな利用例でより簡単にス
ケールさせる
管理者不要
低コスト
47. SimpleDBの位置づけ
CAP定理
一貫性(C)、可用性(A) 、ネット
ワーク分断耐性(P)のうち、分散
環境では実質上ネットワーク分断
耐性が必須のため、一貫性か可用
性のどちらかを取らなくてはいけ
ない。
49. SimpleDBのデータモデル
ドメイン
アイテムを保持する器=テーブル
アイテム
アトリビュートを保持する1行
アトリビュート
アイテム内にあるKey-Valueまたは
Key-[Value]
52. SimpleDBの読み込み
イベンチュアルコンシステンシな読み込み
デフォルト
パフォーマンス重視
低レイテンシ、高スループット
読み込みの一貫性がない可能性がある
大体1秒程度で一貫性が保たれる
一貫性のある読み込み
比較的低いパフォーマンス
ただしデータは一貫している
ConsistentRead = trueオプション
53. SimpleDBで出来る操作
ドメインへの操作
CreateDomain/DeleteDomain/ListDomains
アイテム/アトリビュートの追加
PutAttributes/BatchPutAttributes
アイテム/アトリビュートの削除
DeleteAttributes/BatchDeleteAttributes
アイテム/アトリビュートの検索
GetAttributes/Select
54. SimpleDBでSelect
SQLライクなシンプルなクエリが書ける
プライマリキーでの検索
select Year from ‘mydb’ where ItemName() = ‘Akio'
レンジクエリ
select Name, category, Year from `mydb` where
every(Year) Between '2005' and '2008'
=, !=, >, <, >=, <=などの演算子
like, not like, in, between, inなどの演算子
order by
count
55. RDBMSとSimpleDBの違い
RDBMS SimpleDB
事前定義したスキーマ スキーマフリー
管理コスト高い 管理コスト低い
1台で稼働する事が前提 オートスケール
SQLによるアクセス SQLライクなクエリ
リニアにはスケールしない スケールする
トランザクションあり トランザクションなし
インデックスは明示的 自動インデックス
構造化データ 半構造化データ
汎用的 やや目的特化型
56. SimpleDBの制約
ドメインサイズ -> 10GB/domain or 10億アトリビュート
ドメイン名 -> 3-255(a-zA-Z0-9_-.) characters
1アカウント100ドメインまで
1アイテム256アトリビュートまで
アトリビュートのname/valueの長さ < 1024 bytes
アイテム名の長さ < 1024 bytes
1回のPutAttributesで登録できるのは256個まで
1回のSelectで検索できるアトリビュートは256個まで
1回のSelectで検索できるアイテムは2500まで
1回のクエリの最大実行時間は5秒まで
1回のレスポンスサイズは1024 bytesまで
58. SimpleDBのベストプラクティス
ソート
ソートのため、数値データは0パディングしてやる
日付はISO 8601フォーマットを使う
Selectクエリ
WHERE句ではなく、コンポジットキーを使う
• Name=“Firstname:Lastname”
AND句を極力使わない
LIMITを設定し、レンジクエリを極小化する。LIMIT
2500など
59. SimpleDBのベストプラクティス
シャーディング
書き込みのスループットを上げるため
ハッシュ値または、より適切なキー分割を指定
一貫性
読み込みではオプションを適切に使う
• イベンチュアルコンシステンシ
• read-after-writeコンシステンシ
書き込みはなるべく非同期書き込み or
ConditionalPutを使う
パフォーマンス
BatchPutまたはBatchDeleteをデフォルト使う
• 25アイテムの書き込みで20-25%程度は向上する
60. SimpleDBのベストプラクティス
巨大データの扱い
BLOB的に使うのではなくS3に保存して、ポインタを
SimpleDBに保存する
• 2ホップかかるがわかりやすい
データを分割し、複数のアトリビュートに圧縮して
押し込める
• 1ホップだが複雑
設計
データは非正規化する前提
スキーマフリーな点を有効に使う
クエリベースで考えて極力ドメインを分ける
• 分割によるスケールメリット
61. SimpleDBの価格
マシンの利用料金
クエリ毎にかかった消費量を計算
$0.162/hour
データトランスファー
インバウンドは無料
アウトバウンドは$0.201/GBから
データストレージ料
$0.29/GB
SimpleDBの利用料は他に比べてかなり安い
ただし先ほどのような制約がある