dynamodb (2012-02-18 jaws-ug osaka勉強会 第5回)
DESCRIPTION
JAWS-UG 大阪勉強会 第5回で発表した資料 Amazon DynamoDBについてTRANSCRIPT
⼆二⽉月⼗十⼋八⽇日Japan AWS User Group
(JAWS-‑UG) -‑ Osaka勉強会 第5回
OpenJam
Developer
Summit
2012
昨⽇日デブサミ⾏行ってきた
2012.2.16〜~2012.2.1710年⽬目のけっこういっぱい⼈人が集まる凄いイベント
しゃべってきました。
コミュニティの
紹介と
最近の動向とか
OpenJam
セッションとは別に⽤用意されている、参加コミュニティが発表できる場
勝⼿手にAWSアップデート
瞬間最⼤大
観客動員数:2⼈人
しゃべって来ました。
DynamoDBについて30分間話そうと思ってました。
Amazon DynamoDB勝⼿手にAWSアップデートVPC内でロードバランサ(Elastic Load Balancing)が利⽤用可能に,Amazon ElastiCacheが東京リージョンで利⽤用可能に,Amazon S3にマルチオブジェクトデリートを追加,アーキテクチャのダイアグラムのためのAWSシンプルアイコンの発>表,CloudFrontとRoute 53のエッジロケーションを3か所追加,リザーブドインスタンスに新しい2つの料⾦金モデルを追加,Amazon Simple Email Service (SES)がSMTPをサポート,南⽶米 (サンパウロ) リージョンの発表,CloudFrontが⼤大フ>ァイルサイズ(20GB)のコンテンツ配信をサポート,VPC内でマルチゾーンにまたがったAuto Scalingが利⽤用可能に,Amazon EMRでクラスターコンピュートCC2が使えるように,Virtual Private Cloudの中でネットワークインタフェースを>⾃自在にコントロールできるElastic Network Interfaceの発表,AWS Management Console上で各EC2インスタンス、EBSボリューム から直接アラームを作成できるように,EC2インスタンスのステータスチェックとレポーティング,Amazon S3の有効期限機能の発表,Amazon RDSでも3種類のリザーブドインスタンスが利⽤用可能に,クラウドに専⽤用線接続できるAWS Direct Connectが東京リージョンでも利⽤用可,AWS無料使⽤用枠でEC2のMicrosoft Windowsサーバも利⽤用可能に,
Amazon DynamoDB -‑ インターネット時代のアプリケーションのために 設計された⾼高速でスケーラブルなNoSQLデータストレージ,Identity Federationのコンソール統合,Virtual Private Cloudの中でRelational Database Serviceが利⽤用 可能に,AWS Storage Gateway,Auto Scaling Groupのタギング機能,AWS Premium SupportのThird-‑Party Software SupportとAWS Trusted Advisor (⽇日本では未発表),Amazon S3に保存されているオブジェクトの数は7620億に,EMRの新機能:新メトリクス、VPC、CC2対応,⼤大阪とミラノにAmazon CloudFrontとAmazon Route 53の拠点追加,Amazon S3の価格さらに値下げ
Amazon DynamoDB?Amazon
DynamoDB2012.1.18release
Amazon DynamoDB
クラウドのために作られた⾼高いパフォーマンスを持ったNoSQLデータベース
Amazon.comの売上Amazon DynamoDB
2010年
12⽉月期
出典:wikipedia
Amazon⽈曰くAmazon.comの売上
連結:342億400万ドル
Amazon.comに必要なDB
amazon.com
Amazon⽈曰く
0.1秒遅くなると、売り上げが1%減少する
342億400万ドルその1%は3億4240万ドル⽇日本円だと約260億円昨年の私のブログでのアフィリエイト14円
求められる速度Amazonに必要なDBどんなにレコードが増えてもレスポンスが早いノードが落ちてもシステムは動き続けなくてはいけない在庫のこととかを考えると⼀一貫性も欲しい
って考えたと想像出来ます。
求められる可⽤用性
速度だけなら
やり⽅方は
いくらでもある
速度だけなら
スケールアウト
スケールアップ
どちらでも
求められる 速度
ただ⾼高速に書きこむだけならそんなに難しくない。
RDBMSのツラい所
可⽤用性だけなら
やり⽅方は
いくらでもある
可⽤用性だけなら
冗⻑⾧長
にすればいい
求められる 可⽤用性
サーバが停⽌止してもシステムは⽌止まらないデータセンターが爆発しても⽌止まらない
RDBMSは必要なのか?
(>_̲<)
⼀一貫性と可⽤用性
の両⽴立困難
RDBMSのツラい所
This excess functionality requires expensive hardware and highly skilled personnel for its operation, making it a very inefficient solution. In addition, the available replication technologies are limited and typically choose consistency over availability.
02 Oct 2007
俺達に
RDBMSの
複雑な照会は
いらなかった
殆どの場合
PrimaryKey
だけでいいぜ
RDBMSは必要なのか?
Most of these services only store and retrieve data by primary key and do not require the complex querying and management functionality offered by an RDBMS.
Amazonʼ’s Dynamo
Amazon.comCTO
Werner Vogels
俺が作ったAmazonʼ’s Dynamoの論⽂文だ
02 Oct 2007
Amazonʼ’s Highly Available Key-‑value Storehttp://www.allthingsdistributed.com/2007/10/amazons_̲dynamo.html
absolutely, honored to!
そこから更に進化
Amazonʻ‘s
Dynamo
Amazonʼ’s Dynamo
無駄なHOPはなし、⼀一発でデータにアクセス出来る分散ハッシュテーブルノードが何個か死んでも⼤大丈夫それがAmazon Dynamo
IOPS保証
別物!?
Amazon
DynamoDB
そこから更に進化
論⽂文のDynamoから進化してサービス化
Atomic Counter
Read,Write
IOPS 保証
IOPS保証
IOPS= Input Output Per Second1秒間辺りにどれくらいのreadとwriteが出来るかが保証される。そのIOPSによって時間課⾦金Write:10Unit Read:50Unit で1時間$0.01メンテナンスは、どれくらいのIOPSが必要かをAPIで指⽰示するだけ
⼀一貫性
結果整合性の
弱点
Atomic Counter
値を取ってくる→アプリ側で加算-‑>上書きこんな加算では整合性はすこぶる怪しい。
DynamoDBなら⼤大丈夫。CAS操作が可能
集計とかは⾮非効率?
強⼀一貫性と
結果整合性
⼀一貫性も
欲しいのか?
⼀一貫性
必要のないところでは結果整合性を
コストは倍かかるが必要なところだけ強い⼀一貫性も可能WriteじゃなくてReadのリクエスト毎にこのオプションをつけられる。
Nextタイトル
BatchGet
RDBMSのAVGとかSUMとか
集計とかは⾮非効率?
集計は集計結果を保存するテーブルに⼊入れておけば良い。CAS操作の出来るDynamoDBなら可能。
複数テーブルから同時にデータが取れるBatchGetもある。
バックアップもEMRで
WithAmazon Elastic
MapReduce
Hadoopで
処理
EMRとの連携
⼤大規模な集計であればAmazon ElasticMapReduce(Hadoop)を使って処理が可能。
データ構造信頼性
99.999999999
のS3に
バックアップ
バックアップもEMRで
Amazon Elastic MapReduceを使ってS3にバックアップも可能バックアップしたデータとのJOINも可能
ソフトウェアじゃない
単純な
KeyValue
ではない
データの構造
Keyは2種類 HashKeyとRangeKey RangeKeyは使わなくてもOKValueには4種類の型 STRING,NUMBER, STRING_̲SET,NUMBER_̲SET
vs ソフトウェアとか
メンテナンス
フリー
サービス
サービスとして提供されるから ハードウェアの⼼心配も必要ない。ネットワークや、パフォーマンス確保の為 のインフラエンジニアも必要ない。必要なのは、欲しいパフォーマンスを 知らせる為にAPIを叩く事だけ。
DynamoDBの戦場
欲しいのはスペック?
パフォーマンス?
vs ソフトウェアとか
ハードウェアスペックから、パフォーマンスがある程度⾃自動で決まる=>ハードウェアスペックを調整可能
パフォーマンスからハードウェアの調整を⾃自動でやってくれる。=> パフォーマンスを調整可能
Nextタイトル
スケールする必要があるならとりあえずDynamoDB
スケールが必要なら
データベースのスケールが必要なアプリケーションでアレばDynamoDBは選択肢になる。
急成⻑⾧長を望むならスケールに⼿手間がかかるけど、強⼒力な照会機能があるDBと、メンテフリーなNoSQLどっちを選ぶのか
⼤大規模はE会場へ
⼩小規模からの
データ処理
機会学習で
実現する
なんか事例も話したい
オンライン機械学習で実現する⼩小規模からのデータ処理数Mバイトから、数T,数Pバイトオーダまでを扱うテキストマイニングサービスがもうすぐ出てくるらしい。
どんなサービス
hotaru
テキスト
マイニング
サービス
事例:MiningBrownie社
テキストマイニングをAPIから使えて、従量課⾦金だから、簡単に始められる簡単にやめられるクラウドっぽいサービス
テキストを単語に分割テキストをAPIでpush
APIを使ってテキストを登録していきます。
ベイズ分類起⽤用の計算テキストを単語に分割
送られ てきたテキストは内部で単語に分割される。
そして分類へベイズ分類器⽤用の計算
ベイズ分類器の為に⾊色々計算して、分類の準備完了。
Nextタイトルそして分類へ
この⽂文章を判定してくれやとAPIに尋ねればこいつはこれだと返します。
何に使える?
SimpleDBじゃ
ダメだったの
か?
RDBMSじゃ
ダメだったの
か?
なぜDynamoDB
スモールスタートを提供するためには重量課⾦金のデータベースが必要だった
想定レコード数:10billionのオーダー天井が⾒見えちゃいけない
スケールを⾃自動化(パフォーマンス&容量)
Nextタイトル
DynamoDB
と
戯れる
Dynamoと遊んでみる?
パソコンお持ちの⽅方http://bit.ly/DynamoOsakaここにアクセス。