@thorikiriのてょりっき

@thorikiriがWebとかAndroidとかの技術ネタや本を読んだブログです

JAWS-UG勉強会 第12回 に行ってきました #jawsug

夜勤明けに寝て起きて行ってきました。疲れが取れてないので、途中で集中力が途切れてしまってちょっと残念でした。
今回はクラウドDBについてフォーカスしているようですね。
いつも通りメモをアップしておきます。

アジェンダ紹介、JAWS-UG 紹介

AWS最新アップデート AWS堀内さん(@horiuchi)

  • 前フリ
    • 試用期間から正社員になりました
    • 6月後半にJAWS九州ツアーやりますよ
  • 今年3月からアップデート内容サマリ
    • 3月
      • 主要サービス値下げしました
      • ミディアムインスタンスが出来ました
      • 64bitOSに対応した
      • WebコンソールにSSHクライアント対応
      • IAMのよる詳細リリース管理が可能
      • IAM利用料レポート閲覧アカウント
      • RDSの自動アップデート35日まで出来るように
      • BeanstalkでPHPをサポートしました
      • リージョンまたがるルーティングが可能になりました
      • EBSのボリューム監視
      • CloudFrontのFlashMediaサポート。
    • 4月
      • DynamoDB BatchWriteItem機能
      • Beanstalkの東京リージョン
      • DynamoDBのAsia Pasific
      • CloudFormationでVPCを構築可能
      • WindowsServer2008R2サポートなど
    • 5月
      • EC2 MS SQLServer提供
      • RDS for ORacleがMulti-AZサポート
      • RDS SQLServerを選択可能
      • Beanstalkが.NETサポート
      • StrageGatewayのAPI提供可能
      • Billing Alert利用料金の可視化
      • CloudFrontが動的コンテンツサポート
      • SimpleMAilServiceがドメイン検証機能を追加
      • RDSのリードレプリカがVPCでも作成可能
      • ELBマネジメントコンソールからSSLの設定が可能
      • カルフォルニアオレゴンIPv6サポート
      • DynamoDBのテーブル操作をマネジメントコンソールから出来るようになった
      • EC2のVMをエクスポート可能
      • RDS for OracleOracle Enterprise Manager(OEM)が利用可能
  • 宣伝
    • ハンズオンサポートします。AWSは触ってみるのが一番です。
    • 企画すればクーポン持参してくれます。
    • サミット東京 9月13日14日 お台場来てね!
    • AWS re:Invent2012 in ラスベガス11月27日28日29日 メアド登録出来るので、お願いします。
      • ツアー企画します。

AWS Raju Gulabani VP, Database Services 講演

  • 全般的な話
    • AWSは2006年からスタート。スタートアップ相手だったけど、今では大手が使ってるよ。
      • 日本でも大手が使ってるよ。
      • それ以外でも、アメリカでは国の機関が使ってますよ。お気に入りは財務省だね。お金を扱ってるところがだよ。
      • 本当にセキュアなの?国家機関使ってるんだぜ、国防総省とか。セキュアだぜ!
      • たくさんのリージョンとEdgeロケーションがあるよ。
      • コスト削減と速度がAmazonで出来たように、AWSでもそうだよね、今はそれ以上のものを開発者に提供出来るよ。
      • ソフトウェア、アプリケーション開発に変革をもたらしたよ。
    • 初めに、セキュリティがセキュアであって欲しいと思うよね、今では今までのエンタープライズよりセキュアだぜ。
      • FISMAって言うアメリカでもっとも厳しいセキュリティ企画を満たしてるよ。
    • 分散型アーキテクチャがすげー簡単になったよ。
  • データベースサービス
    • データベースサービスは個人的にもお気に入りだ。複数のオプションがあるよ。
    • AmazonRDS+ElastiCache
      • YesSQL!RDBに使い慣れている人たち向けだね。
      • RDSはManagedServiceでお好みのRDBが使えるぜ。
      • MySQLからはじまってOracleSQLServerもだよ。
      • ElastiCacheもManagedServiceでMemcacheのことだよね。
    • SQL派じゃない人向けにもNoSQLがあるよ。
      • DynamoDBだね。
      • 新しい新世代の大規模なスケーラビリティを必要とするソーシャルゲーム向けだね。
  • YesSQLについて
    • DBで課題なのは、インストールとか、バッチとかパフォーマンスチューニングとか。けっこうめんどい。
    • スケーリングのためのコードとか、パフォーマンスとチューニングとか。
    • Amazon RDSはそういう作業が要らないんだね。
    • Amazon RDSは完全に管理されたサービスなので、開発者は展開してスケールして、アプリケーションの構築をすればいいんだよ。MySQLOracleSQLServerが選べるよ。
  • ハイパフォーマンスのためにオプション
    • PushButtonScaling:管理コンソールでボタンを押すことで小さなDBから大きなDBに透けるアップ出来る
    • ReadReplicas:リードのスループットを上げるために、Readのレプリカを増やして負荷分散するよ。
    • ElastiCache:memcacheを使って、キャッシュして使い回してスループットを上げるよ。
    • Multi-AZ:ユニークです。1つのAZからもう一つのAZにレプリケーションをとっていく。
  • レプリケーションの取り方
  • どれが適切なの?
    • 考え方は簡単。基幹系だったら、RDS Multi-AZを使おう。
    • 読み込みが大事だったら、RDS Readレプリカ(ロジカル、非同期)
    • 信頼性を高めたいなら、両方合わせて使うのがいいよ。
  • ビッグデータについて
    • ビッグデータとは?たくさんのユーザ、様々なデバイスがある。
    • 結果として、毎秒あたりのデータが爆発的に増えていますよ。
    • 大量のデータを格納して、処理しなければならないね。
    • アプリ層とデータベース層があるよね。アプリ層を増やして、データベースは増強する。でもさらに増えたらデータベースはパンクするね。時間の問題だ。
    • なので、NoSQLの存在が求められるようになるわけですね。
    • NoSQLは、そもそもスケーラビリティが求められているんだよ。
    • AmazonはNoSQLのパイオニアですよ。
  • DynamoDB
    • DynamoDBは高速でスケーラビリティがあるよ。
    • 管理が簡単、LowLatency、ReservedCapacity、Unlimited Potential Storage and Throughput
    • DynamoDBは極めて高速である。1桁ミリセカンドのレイテンシーです。
    • データが完全にSSDに保存されているよ。
    • レイテンシーは一貫しているよ。同時アクセス数でも。データの量が1Gでも1テラでも関係ないよ。
    • 高信頼性だよ。データは自動的にAZにレプリカが同期されるよ。
    • 1つのAZが落ちても自動的に別のAZにフェイルオーバーするよ。アプリは停止せずにね。
    • スループットのプロビジョニング。テーブル生成時に値段を決める。APIで変更出来るよ。
  • Hadoopインフラとの統合について
    • S3にCSVで格納されていた場合、それをDynamoDBにロードしたい場合は、EMRでパラレルにDynamoDBに1ステートメントの実行命令で出来る。
    • 逆に分析したい場合も逆にやればいいよ。
  • DynamoDB利用のユースケース
    • AmazonCloudDrive:メタデータをDynamoDBを、オブジェクトをS3に
      • インフラに触れること無く、簡単に開発出来るのがDynamoDBのメリットである。
    • Shazam:スーパーボウルと広告連動する。億を超える人達のデータを格納しなければならない。
      • 1秒間に何十万のリクエストをさばける。EMR/DynamoDBのコネクターを利用して解析したよ。
      • 設計から環境構築まで3日で作ったよ。
  • QA
    • DynamoDBの設計は?
      • RDBならERモデルだよね。モデリングテクニックは存在しない。新しい技術だからね。
      • プライマリーキーを選んでシングルアトリビュートとする。
      • データの全てが1つに集合しないようにすること。まぁ、アプリによって色々あるよ。
    • 他のNoSQLと比べての優位性
      • DynamoDBはCassandraと違ってServiceだと言うことが違うね。
      • なので、インフラ面を気にする必要がないってことだ。

マイネットジャパン

  • 事例
    • カードバトル型のGREEのゲーム作りました。
    • 2012/1/5から開発して、5/23にリリースしました。
    • DBはDynamoDBオンリーです。ランキング集計でEMRを使ってます。
  • ソーシャルゲーム
    • ソーシャルゲームはNoSQLと相性が良い。
    • ユーザIDで検索することが多いので。キーをユーザIDにすれば良いだけです。
    • ソーシャルゲームではアップデートが激しいので、RDBだとALTER TABLEで死ねる。
  • DynamoDBで出来ること
    • 条件付きアップデート 楽観ロックは必須 ただし、等式での条件だけ
    • インクリメント。デクリメントで更新前、更新後の値が取れる
    • トランザクションでは、リランナブル設計。2回実行しても問題ないように設計する。
    • 更新済みならスキップするようにする。
    • 失敗したらキューから取得してもういっかいやる。成功したらキューから消す。
    • 基本5フェーズで実装する。入力チェックエラー、書込み処理開始、書込み処理、。。。。
    • レンジキーと言うものがある、ハッシュキー(ユーザID)+レンジキー(範囲検索が可能な属性)
      • 開始点と検索方向とリミットで制御するよ
    • EMR連携でインデックスを作る検索方法の代替が出来る
    • SQSでリアルタイム更新インデックスを作る
    • AmazonCloudSearchが東京リージョンまだ出てないけど、コレ使えばよくなりそう。
  • バックアップは?
    • EMRでS3にエクスポート。でも一貫性は保証されない。
    • ソーシャルゲームの場合必要なし!とすることも出来るよね。
  • 苦労したうえで、得られること
    • 無制限にスケールするストレージ
    • 安心して旅行にいける権利:運用が楽!

DynamoDBを選んだ理由

集中力が途切れてしまいまして、メモってないです。ごめんなさい。
Twitterみたいなものを作るとき、MySQLだとインデックス増えて大変!ってことは覚えてます。

Klab

同じくメモってないです。ごめんなさい。
ケーラボって読むのかと思ってたけど、クラブって読むんですね。

得上(@tottokug)もSimpleDBとDynamo[DB]への愛を伝えたい

ものすごい愛を感じました。

サーバーワークス 大石さん(@ooishi)のいい話

切腹
昨年の大震災の義援金関連で日本赤十字のサイトをAmazon上に置いた関係で、義援金受け付けるシステムを作った話。
48時間で作られたそうで、ものすごいスピード感ですね。