Your SlideShare is downloading. ×
0
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SimpleDB, SQS, SNS詳細 - AWSマイスターシリーズ

8,979

Published on

0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,979
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
242
Comments
0
Likes
10
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. AWSマイスターシリーズ SQS, SNS, SimpleDB 2011 12月15日 大谷 晋平 (@shot6 ) ソリューションアーキテクト
  • 2. AWSマイスターシリーズ Simple Queue Service 2011 12月15日 大谷 晋平 (@shot6 ) ソリューションアーキテクト
  • 3. アジェンダSQSとはSQSの機能SQSの使いどころQ&A
  • 4. SQS(Simple Queue Service)とは AWSの隠し技
  • 5. SQS(Simple Queue Service)とは 分散キューサービス AWSをスケールアウトして使うためのキーコ ンポーネント 2006
  • 6. 何故キューが必要か?“分割できないものは、スケール出来ない” by Randy Shoup(eBay) スケールするには疎結合なアーキテクチャに する必要がある 非同期通信
  • 7. SQSの機能 “分散”キューサービス シンプルなAPI、SDKから直接使える
  • 8. 分散キューサービスメッセージは自動的に複数DC間でレプリケーションされる メッセージロストを防ぐ Persistent Message自分で高い耐障害性を持つキューシステムを構築するのは困難
  • 9. シンプルなAPIとSDK CreateQueue SendMessage ReceiveMessage ChangeMessageVisibility DeleteMessage SDKはJava/.NET/PHP/Ruby
  • 10. 動作イメージ 1.キューの作成/4.キューの削除 (http://sqs.ap-northeast-1.amazonaws.com/123456789012/queue2) 3.メッセージ受信2.メッセージ送信 メッセージ受信者メッセージ送信者 (Reader(Writer or Consumer)or Producer)
  • 11. メッセージの到達保障 1.キューの作成/4.キューの削除 (http://sqs.ap-northeast-1.amazonaws.com/123456789012/queue2) 3.メッセージ受信2.メッセージ送信 Visibility Timeout
  • 12. Visibility Timeoutとは Readerがメッセージを受信した場合 に、ある一定期間その他のReaderが メッセージ自体はユーザが明示的に 消さない限り残存する(最大2週間)
  • 13. Visibility Timeoutとは(2) あるReader-Aが あるReader-Dが メッセージ1を依頼 あるReader-Bが あるReader-Cが メッセージ1を依頼 依頼 依頼 メッセージは メッセージは 返却されない 返却されない メッセージの返却 削除されてい ない場合 (メッセージの 返却) この間にReader-Aは、
  • 14. At-Least-Once delivery メッセージは複数DCにコピーデメリット:稀に複数回メッセージが届くこともある 複数回届く前提
  • 15. メッセージサンプリングメッセージは送信後すぐに取れるとは限らない 受信リクエストを送り続ければ取れるイベンチュアルコンシステンシ前提 メッセージの SQSキューの分散 受信者 されたサーバ群 サンプリングした サーバからメッ セージを順次返却 (メッセージEが含 まれていない) サンプリング 対象サーバ (グレー)
  • 16. 月間100,000 requestまで価格10,000リクエストあたり$0.01データトランスファーはAWSから外部に送出する場合に限り、$0.201/GB
  • 17. 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"}]}
  • 18. SQSの制約メッセージの順序性は保証しないメッセージの保存は最大2週間までメッセージのサイズは64KBまでキュー内に入るメッセージ数には制限なしキュー名は80文字まで
  • 19. 最近のSQS機能追加 CloudWatchによるメトリクス監視 AutoScalingと組み合わせやすく ディレイキュー メッセージタイマー バッチAPI
  • 20. SQSをいつ使うか?AWSクラウド内での疎結合アーキテクチャを採用したい場合 コンポーネント間の依存関係を減 らしたいAWSクラウドとオンプレミスの間でのやり取りのインタフェース →
  • 21. 顧客はいつSQSを使っているか? ハイブリッド オンプレミスとAWSクラウド クラウド連携 連携 Webアプリケー 等のシステム間の疎結合なやり ション/SaaS ビッグデータや EMRやAWSクラウドの
  • 22. SQSまとめ AWSが提供するキューサービス 分散キューのためスケールする 高い耐障害性 シンプルにすぐに使える セキュア 低コスト
  • 23. AWSマイスターシリーズ Simple NotificationService 2011 12月15日 大谷 晋平 (@shot6 ) ソリューションアーキテクト
  • 24. アジェンダSNSとはSNSの機能SNSの使いどころQ&A
  • 25. SNS(Simple NotificationService)とは AWSの小道具
  • 26. SNSとは クラウド上の通知サービス 簡単に使えて、マルチプロトコルえる
  • 27. SNSの機能様々なプロトコルに対応した通知プラットフォーム メール、SQSキュー、HTTP/HTTPSコ ールバック、SMS シンプルなAPI/SDK プッシュベースアーキテクチャ 非常に低価格
  • 28. 動作イメージ 1.トピックの作成/5.トピックの削除 2.トピック購読3.メッセージ配信 4.メッセージ受信メッセージ配信者 メッセージ購読者(Publisher) (Subscriber)
  • 29. 様々なプロトコルを通じたアプリケーション間のフックに使う AWSクラウド上のアプリケーション S3 ファイル SNSジョブ &
  • 30. S3上からファイルが削除されたときをフック AWSクラウド上のアプリケーションユーザが削除 S3 削除通知依頼 SNS 削除されたことを通知
  • 31. SQSとSNSの違い SQSはポーリングモデル 1:1コミュニケーション Producer-Consumer SNSはプッシュモデル 1:Nコミュニケーション Publisher-Subscriber
  • 32. 月間100,000 requestまで価格100,000リクエストあたり$0.06HTTPは100,000あたり$0.06メールは100,000通あたり$2.0100SMSあたり、$0.75SQSにはチャージなし
  • 33. SNSの制約 最大1アカウント100トピックまで メッセージは最大8KBまで
  • 34. SNSまとめ クラウド上の通知サービス 簡単に使えて、マルチプロトコルえる
  • 35. AWSマイスターシリーズ SimpleDB 2011 12月15日 大谷 晋平 (@shot6 ) ソリューションアーキテクト
  • 36. SimpleDBとは AWSの
  • 37. アジェンダSimpleDBが出てきた背景SimpleDBとはSimpleDBの機能SimpleDBの使いどころQ&A
  • 38. One Size Does Not Fit All RDBMSが全てではない EC2+EBSまたはRDSは汎用的 より目的特化なデータベース ケールさせる 低コスト
  • 39. SimpleDBの出てきた背景 RDBMSが全てではない EC2+EBSまたはRDSは汎用的 目的特化型サービス NoSQL 低コスト
  • 40. SimpleDBの出てきた背景 多くのアプリケーションでRDBMSの高機能が必要ない場合がある 複雑なトランザクション 複雑なジョイン シンプルにデータを永続化したい データモデルの制約
  • 41. SimpleDBとは AWS独自のNoSQLデータベース スケーラブル 高い可用性・高い耐障害性 データは複数DCに自動レプリケーション データは自動インデクシング 柔軟なデータモデル 圧倒的に低コスト
  • 42. SimpleDBの位置づけ CAP 一貫性(C)、可用性(A) 、ネット ワーク分断耐性(P)のうち、分散 環境では実質上ネットワーク分断 耐性が必須のため、一貫性か可用 性のどちらかを取らなくてはいけ ない。
  • 43. SimpleDBのデータモデル ドメイン アイテムを保持する器=テーブル アイテム アトリビュートを保持する1 アトリビュート アイテム内にあるKey-Valueまたは Key-[Value]
  • 44. SimpleDBのデータモデル
  • 45. SimpleDBの書き込み トランザクションは1アイテムのみ 複数アイテムの同時書き込みにはトランザクシ ョンはかけられない ConditionalPut 現在の値がXXX 楽観的
  • 46. SimpleDBの読み込み イベンチュアルコンシステンシな読み込み デフォルト パフォーマンス重視 低レイテンシ、高スループット 読み込みの一貫性がない可能性がある 大体1 一貫性のある読み込み 比較的低いパフォーマンス ただしデータは一貫している ConsistentRead = trueオプション
  • 47. SimpleDBで出来る操作 ドメインへの操作 CreateDomain/DeleteDomain/ListDomains アイテム/アトリビュートの追加 PutAttributes/BatchPutAttributes アイテム/アトリビュートの削除 DeleteAttributes/BatchDeleteAttributes アイテム/アトリビュートの GetAttributes/Select
  • 48. 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
  • 49. RDBMSとSimpleDBの違いRDBMS SimpleDB 事前定義したスキーマ スキーマフリー コスト高い コスト低い 1台で稼働する事が前提 オートスケール SQLによるアクセス SQLライクなクエリ リニアにはスケールしない スケールする トランザクションあり トランザクションなし インデックスは明示的 自動インデックス 構造化データ 半構造化データ 汎用的 やや目的特化型
  • 50. 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まで
  • 51. SimpleDBをスケールさせるためには?スケールアウトデザインがフィットする 書き込みをスケール→シャーディング 読み込みをスケール→データ構造/クエリの工夫SimpleDBストする • キーの設計がとても重要
  • 52. SimpleDBのベストプラクティス ソート ソートのため、数値データは0パディングしてやる 日付はISO 8601フォーマットを使う Selectクエリ WHERE • Name=“Firstname:Lastname” AND LIMITを設定し、レンジクエリを極小化する。LIMIT 2500など
  • 53. SimpleDBのベストプラクティス シャーディング 書き込みのスループットを上げるため 一貫性 • イベンチュアルコンシステンシ • read-after-writeコンシステンシ 書き込みはなるべく非同期書き込み or ConditionalPutを使う パフォーマンス BatchPutまたはBatchDeleteをデフォルト使う • 25アイテムの書き込みで20-25%
  • 54. SimpleDBのベストプラクティス 巨大データの扱い BLOB的に使うのではなくS3に保存して、ポインタを SimpleDBに保存する • 2ホップかかるがわかりやすい データを分割し、複数のアトリビュートに圧縮して 押し込める • 1ホップだが複雑 設計 データは非正規化する前提 スキーマフリーな点を有効に使う • 分割によるスケールメリット
  • 55. SimpleDBの価格 $0.162/hour データトランスファー アウトバウンドは$0.201/GBから $0.29/GB SimpleDB ただし先ほどのような制約がある
  • 56. SimpleDBをいつ使うか? シンプルなクエリだがスケールが求められる場合 い場合 銀の弾丸ではない ユニークキーによる分散が簡単に出来て、スケールアウ トさせやすいケースの場合 たい場合 低コストでデータベースを持ちたい場合 高い可用性とスケーラビリティが必要な場合
  • 57. SimpleDBで顧客は何を動かしているか?オンラインゲームプラットフォームS3のコンテンツのインデックス設定ファイルなどの置き場所ソーシャルデータの蓄積マイニングデータの解析結果のストア EMRと連携はしないのか?
  • 58. まとめAWS独自のNoSQLデータベーススケーラブル高い可用性・高い耐障害性 データは自動レプリケーション、インデクシ ング柔軟なデータモデル圧倒的に低コスト
  • 59. SQS、SNS、SimpleDBを通じてAWS SシリーズはAWSクラウドをよりよく使うためのコンポーネント SQS=疎結合を提供する SNS=プロトコル非依存な通知 SimpleDB=簡単に使えるDB

×