CDP:Sharding Writeパターン

提供:AWS-CloudDesignPattern
2012年6月11日 (月) 16:49時点におけるC9katayama (トーク | 投稿記録)による版
(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内, 検索
寄贈したアーキテクト

書き込みの効率化

目次

解決したい課題

 RDBMSの書き込みに対する高速化は非常に重要で、また難易度の高い問題である。スケールアップで実現できる以上のパフォーマンスを出すには、当然、複数のデータベースサーバーを利用することになるが、どのように実現するかは常に課題である。

クラウドでの解決/パターンの説明

 複数のデータベースサーバーで書き込みパフォーマンスを上げる方法に「シャーディング」がある。基本的には、同じ構造のデータベースを用意して適切なテーブルのカラムをキーにして分割し、書き込み処理を分散する。クラウドが提供するRDBMSサービスを用いれば、可用性が高く、運用効率もよいシャーディングが可能になる。

実装

 AWSのRDBMSサービス「RDS」をシャーディングのバックエンドデータベースに用いれば、可用性と運用効率を高めることが可能となる。

  • Spiderストレージエンジンを組み込んだMySQLサーバーなどのシャーディングソフトウェアを、EC2上にインストールする。
  • 複数のRDSを用意し、シャーディングのバックエンドデータベースとする。
  • RDSを複数の地域に分散させることも可能。

構造

6wNg0ISJczU5Pz1m-37E3D.png

利点

  • シャーディングのバックエンドデータベースとしてRDS(Multi-AZ)を利用することで、高い可用性を実現できる。
  • バックエンドデータベースを複数の地域に分散することで、ワールドワイドなシステムの各地域におけるパフォーマンス向上が図れる。

注意点

  • バックエンドデータベースを複数の地域に分散する場合は、シャーディングソフトウエアとの通信を必要に応じて暗号化する必要がある。

寄贈したアーキテクト

Ninja of Three

個人用ツール
名前空間
変種
操作
CDPメニュー
ツールボックス