Skip to content

Instantly share code, notes, and snippets.

@marcy-terui
Created July 17, 2014 07:02
Show Gist options
  • Select an option

  • Save marcy-terui/393e0dfb9194d19dcc79 to your computer and use it in GitHub Desktop.

Select an option

Save marcy-terui/393e0dfb9194d19dcc79 to your computer and use it in GitHub Desktop.

NoSQL Strategy on AWS

  • NoSQLは素晴らしい…が、運用が大変
    → Managed サービス
  • DBMSへの要求は変わらない
    • パフォーマンス
    • 信頼性
    • 所有コスト
    • 管理コスト

ベストなデータベース=扱いやすさ

##クラウドデータベースアーキテクチャ

ワーウロードに応じて専門化

  • 書き込み ElastiCache
  • 分析 redshift
  • ログ s3
  • 検索 CloudSearch
  • 複雑なクエリ RDS

DynamoDB

  • Key/value
  • Rich QUery
  • クラウドのために設計
  • 普遍的なチャレンジ+クラウドに最適化
    • データベースに求められる変わらない要件
    • NoSQL技術の制約を克服

基本コンセプト

  • 高速性しかも安定した
  • 可用性
  • スケーラブル
  • 堅牢性
  • 管理作業なし
  • 低コスト

スケールしても変わらないパフォーマンス

  • TP90 99.99% 1msec

信頼性

  • 書き込み
    • 常にレプリケーションしながら永続化(SSD)
  • 読み込み
    • 強い整合性 or 結果整合性が選択可能
  • 99.999%の可用性

オンラインゲーム

  • 少数精鋭、運用負担軽減
  • DAU向上
    • Elastic Beanstalkのインスタンス数↑
    • DyanamoDBスループット↑
    • だけ

実装

  • Dynamo
    • データ
  • Cache
    • ランキング
    • キャッシュ

デジタル広告&マーケティング

  • 1200億超のキー検索/日
  • 1.5TB/Region
  • 300億超/Region
  • 平均3msec、10msec内99.95%
  • DynamoDB料金よりエンジニアのお菓子大のほうが高いくらいw

アナリティクス×リアルタイム

  • パーソナライズのためのアーキテクチャ
  • リアルタイム情報を定期的にRedshiftへ→分析して書き戻し

動画広告

  • S3にファイル
  • メタデータをDynamoDB

急激な成長

  • Kinesis
    • Dyanamo リアルタイム
    • Redshift 分析
    • s3 アーカイブ
    • すべてのティアにほぼリアルタイムで流せる

ステート情報保持

  • セッション管理
  • バックプレーンを動かす

Redshift

  • ENtity-Rerationship
  • Star/Snowflake
  • Denormalize

ElastiCache

  • アプリケーションの高速化
    • RDBMSの読み込みパフォーマンス最適化
  • Memcached
    • マルチノードクラスタ
    • オートディスカバリ→運用負荷軽減
    • 非永続化
  • Redis
    • リードレプリカ
    • バックアップ・リストア
    • 永続化オプション ※耐性は高くない

まとめ

  • 専門化 ワークロードに合わせて選択
    • マネージドサービスを使えば複数のDBシステムを併用しても管理コストを気にしなくて良い
  • 最適化 スケールする設計
  • 自動化 マネージドサービス
    • 余計な作業をなくさないと専門化難しい
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment