share facebook facebook twitter menu hatena pocket slack

2012.01.26 THU

DynamoDBってなんじゃ?(AWSコンソール編)

三浦 悟

WRITTEN BY 三浦 悟

AWSがDynamoDBというサービスをリリースしました。
(リリースペースがとても早いです)
DynamoDBは高可用で超柔軟なスケーラビリティを実現したNoSQLサービスです。
SimpleDBもありますが、DynamoDBは更に柔軟でスケーラブルになっています。

DyanmoDBはSimpleDBと比べて以下のような利点があります。

  • SimpleDBでは、1つのドメイン(DBでいうテーブル)につき10GBというデータ量制限がありましたが、
    DynamoDBでは無制限で、ドメイン制限を超えた場合のスケーリングがアプリケーションレイヤーの
    設計にまで影響していたのが解消され、カスタマイズされたConsistentHashing法により自動的に
    スケーリングが行われます。
  • DynamoDBではスループットを設定できるため、アクセス数が増加しても低レイテンシが保証されます。
  • SimpleDBではマシン時間での課金でしたが、DynamoDBではスループットによる課金です。
    ユーザーはより費用の見積もりがしやすくなりました。
  • SimpleDBではすべてのアトリビュート(カラム)にインデックスが貼られていました。
    DynamoDBではシングルプライマリキーもしくはコンポジットプライマリキーにのみインデックスを
    貼ることで高パフォーマンスを図っています。

それでは、早速試してみます。

AWSコンソールを見ると、右端にDynamoDBのタブがあります。

これをクリックするとDynamoDBのダッシュボードが表示されるので、
「Create Table」をクリックして、テーブルの設定を行います。

はじめに、テーブル名とプライマリキーを設定します。
プライマリキーは単一のHashキーかHashとRangeの複合キーが設定できるので、
ここではbookというテーブル名でシングルHashキーを設定して「Continue」をクリックします。

次に必要なスループットを設定します。
Read CapacityとWrite Capacityの値を設定するのですが、それぞれ1秒に読み書きされる回数の見積もりと
1アイテム(DBでいうところの行)の平均データサイズで決まります。
下記の計算式で設定します。

Read Capacity:1秒間に読み込みされる回数 × 1つのアイテムの平均サイズ
Write Capacity:1秒間に書き込みされる回数 × 1つのアイテムの平均サイズ

また、「Help me calculate …」というチェックを入れると、読み込み回数やデータの平均サイズ等を
入力して求めることもできます。

「Continue」をクリックしますと、Alarmの設定画面に移ります。
ここでは、上記で設定したスループットの何割を超えたら通知するかを設定できます。
設定したスループット以上の性能は出ないので、これで性能を監視し、
必要に応じてスループットをアップするような運用になります。

適宜設定して「Create Table」をクリックするとテーブルが作成されます。

以上で、テーブルの作成が終わりました。
作成されたテーブルが一覧画面に表示され、行を選択すると、プロパティ情報や
現在のスループットやレイテンシ等が表示されます。
また、CloudWatchのメトリクスやアラームの情報等も確認できます。

追加で、book_idとposted_atを複合ハッシュキーにもつcommentというテーブルも作成します。

まずは、テーブルの作成までできましたので、
次回はSDKからDynamoDBにアクセスしてみます。

こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら

三浦 悟

三浦 悟

高円寺在住のなんじゃ系男子 またの名をmemorycraftといいます。 炭水化物大好き 日々の「なんじゃ?」を記事にしてます。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。