« 【AWS発表】 AWS Data Pipelineを使って、DynamoDBのデータをリージョン間でコピー可能に | メイン | 【AWS発表】 EC2 リザーブドインスタンスの予約内容を変更可能に »

【AWS発表】 デスクトップ開発を可能にする DynamoDB Local

ネットワーク接続がない環境で、(AWS無料利用枠が適用されなくなっても)使用料を払うことなく、Amazon DynamoDB APIを使ったコードを書いてテストできたらなと思ったことはありませんか?

もしそうなら、新しいDynamoDBのローカルテストツールをきっと気にいるはずです! DynamoDB Localは、完全にDynamoDB APIをサポートするクライアントサイドのデータベースで、DynamoDB自体に任意のテーブルやデータ操作をすることはありません。通勤中の電車の中でも、海外出張の飛行機の中でも、休暇中のビーチでも、コードを書くことができます。

アプリケーションをデプロイする準備ができたら、単に実際のDynamoDBのエンドポイントに接続するようコードを書きかえるだけです。他に変更することはありません。

DynamoDB Localのインストールと実行
DynamoDBのローカル実行可能なJavaアーカイブ(JAR)ファイルとして入手可能です。Windows、Mac、Linuxシステム上で動作し、Java Runtime Environment(JRE)のバージョン7と互換性があります。これより古いバージョンのJavaでは動作しませんのでご注意ください。

DynamoDB LocalのJARファイルをダウンロードし、任意のディレクトリに配置し、そのディレクトリでコマンドプロンプトを開きます。そして次のコマンドでDynamoDB Localを起動します。

$ java –Djava.library.path=. -jar DynamoDBLocal.jar

DynamoDB LocalはJARファイルと同じディレクトリにローカルデータベースを作成します。ファイル名は、MyAccessKeyId_Region.dbという形式になります。ここで、MyAccessKeyIdはDynamoDB Localにアクセスするのに使用するAWSアクセスキーで、Regionはターゲットリージョンです。

ローカルのエンドポイントを使うようにアプリケーションを設定します。DynamoDB Localはデフォルトでポート8000をリッスンします。ポートは起動時に--portオプションを指定することで変更することができます。デフォルトポートを使う場合は、ローカルエンドポイントはlocalhost:8000になります。

いくつかの注意事項
DynamoDB Localを使いはじめる際に頭に入れておくべきことがいくつかあります。

  • DynamoDB Localはプロビジョンされたスループットの設定を無視します。CreateTableおよびUpdateTableを読んだ時に指定する値は何も影響を与えません。また、DynamoDB Localは読み込み、書き込み処理の絞り込みは行いません。
  • AWSアクセスキーおよびリージョンとして渡した値はデータベースファイル名にのみ使用されます。
  • AWSシークレットキーは無視されますが、設定する必要があります。
  • DynamoDB Localは耐久性、可用性、SLAを持ちませんので、本番環境での使用はお薦めしません。

ローカルで行こう!
こちらからDynamoDB Localをダウンロードできます。是非お試しいただき、フィードバックをいただければと思います。 ドキュメントはこちらにあります。また、新しく用意したAmazon DynamoDB Best Practices, How Tos, and Toolsページも役に立つはずです。

堀内康弘 (Facebook, Twitter)

PS - すっかり忘れていましたが、AWSのお客様によって書かれたDynamoDBのモックレイヤーも是非チェックしてみてください。 昨年公開した記事ですが、内容は数回更新されています。

コメント

トラックバック

この記事のトラックバックURL:
http://www.typepad.com/services/trackback/6a00d8341c534853ef019aff59a968970b

【AWS発表】 デスクトップ開発を可能にする DynamoDB Localを参照しているブログ:

Featured Event

2016年3 月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31