DynamoDBをKVS(key-value-store)として活用
~各種システムとのデータ連携でNoSQLのメリットを有効活用!

RDBMSイメージ

データベースといえば、OracleやMySQLなどに代表されるRDBMSが広く利用されている。データベース管理システムとしての実績もノウハウも十分に蓄積されており、データの一貫性が保証されている点が非常に大きな強みだ。しかし、データの書き込みにおいてスケールさせることが難しく、カラムやインデックスの追加時にはテーブルがロックされてしまうため、変動の激しいシステムには向いていない。

こうしたRDBMSの弱点を補う存在として生まれたのがNoSQL(Not Only SQL)という概念で、その中のひとつにKVS(Key-Value Store)がある。 KVSは、任意のキー(Key)と保存する値(Value)を一組のペアとして管理する方式をとるため、構造が極めてシンプルで、スケールアウトさせやすいメリットがある。そして、この特性を持つデータベースサービスのひとつが、今話題の「Amazon DynamoDB」だ。

高い拡張性とデータへの高速アクセスを可能にしたDynamoDB
~急なトラフィック増大にも設計変更不要なKVSを実現

AWS(Amazon Web Services)で提供されるDynamoDBは、Amazon本体で提供するサービスを技術的に支えることができるように設計されている。そのため、高いスケーラビリティに加え、特にデータ書き込み時における非常に柔軟な可用性がある。これは、RDBの機能を使用した場合におこる、テーブルがロックされる状況を回避する必要があったからだ。常に書き込みを可能にしたことから、DynamoDBではプロセスの途中でのデータの整合性は弱くなっている。要するに、「結果の整合性が保たれるようになっていれば良い」という考え方である。そのため、大量のセッションや膨大なデータ量をさばく必要のあるソーシャルゲームやビッグデータの解析などには、適しているといえよう。

ただし、前述の通りプロセス途中での整合性が必要となるものには不向きなため、用途に応じてうまく使い分けていく必要がある。Amazonのサービスに照らし合わせて考えるならば、商品情報などのサービス提供側が生成するデータではなく、セッション管理や商品レビューなど、ユーザー側で生成されるデータの処理に向いている。そこで、DynamoDBのECサイトでの活用を考えてみることにする。

爆発的なトラフィックに耐えられる仕組みを構築
~データ容量制限のないDynamoDBでコード改修なしでのスケールを実現

DynamoDBの処理イメージ

ECサイトの運営では、タイムセールなど、一時的なトラフィック増にも耐え得る仕組みを構築する必要がある。RDBではトランザクション処理を確実に行うため、サーバーを増やして簡単にスケールさせることができない。一方DynamoDBは、トランザクション処理よりも並列処理を優先させる設計となっているため、特にコード改修をすることなく、スケールさせることができる。

DynamoDBはスループット保証での課金体系をとっているため、タイムセールなどでカート処理のリクエストが多発した際も、通常時と同様のサービスクオリティを担保することが可能だ。また、ユーザーレビューなど、際限なくレコードが増えていく性質のものへの対応にも向いており、ECサイトでの活用の幅は広いといえるだろう。
大規模サイト向けの印象があるかもしれないが、そんなことはない。その時に必要なデータベースの性能でスモールスタートすることもできるため、新規でECサイトを開設する際などにも導入可能である。たとえば、商品カテゴリを増やすなどテーブルの構造を変えなくてはならないような修正も、カラムをひとつ追加するようなイメージで簡単に行うことができる。取扱商品が頻繁に変化するようなサイトであっても安心だ。

DynamoDBそのものにデータ容量制限がないため、爆発的なトラフィック増にも耐えることができるが、1レコードの容量に関しては制限がある。そのため、レコード自体が大きくなりがちなデータや、ユーザー側から見て商品情報や画像など読み込みのみで書き込みが発生しないデータに関しては、RDBMSと併用したり、別途ストレージ容量を用意したりする必要があるため、各所でのデータ連携が必要となってくる。ECサイトの性質を考えると、MDシステム(マーチャンダイジング システム)や基幹システムなどとの連携の需要も当然あるだろう。

データ連携のために、コード改修やプログラミングを行うという手段もあるが、せっかくコード改修を行うことなく、スケールさせることに成功しているのであれば、データ連携もノーコードで実現したいものである。

そこで利用したいのが、データ連携に特化した業界シェアNo.1のEAIツールASTERIA WarpのAWS DynamoDBコンポーネントだ。GUIでの画面操作だけで、DynamoDBと他システムを直観的に繋ぐことを可能にする。コンポーネントは、PUTとScanにわかれており、実際の手順については下記のASTERIA Warp Developer Network内の記事で解説している。ぜひご一読願いたい。

AWS DynamoDBコンポーネント利用手順

AWS DynamoDB Put

AWS DynamoDB Putコンポーネント
マッピングなどが不要で簡単にデータが登録可能
実際の手順はこちら

AWS DynamoDB Scan

AWS DynamoDB Scanコンポーネント
条件指定で簡単にデータが取得可能
実際の手順はこちら

最後に

AWS DynamoDBコンポーネントは、DynamoDBのテーブルへのデータ登録および取得をノーコードで実現する強力なツールといえる。変更の激しいKVSだからこそ、GUIの簡単操作でデータ連携を試してみてはいかがだろうか?



クラウド版

手ぶら de ASTERIA Warp
体験 5日間を申し込んで
簡単データ連携を体験してみよう!

サーバー準備の手間なくデータ連携ツール「ASTERIA Warp」の
全ての機能を5日間お試しいただけます。

今すぐ体験してみる 書籍の詳細についてはこちらをご覧ください。
基礎と実践 使い方マニュアル

ASTERIA Warp 関連サイトのご紹介

X ASTERIA Warp Developer Network(ADN)サイト

技術情報をお探しの方

ASTERIA Warp Developer Network
(ADN)サイト

ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。

X ASTERIA Warpユーザーグループ(AUG)

ASTERIA Warpデベロッパーの方

ASTERIA Warp オンラインコミュニティ
ADN slack

ASTERIA Warpデベロッパー同士をつなげ、技術情報の共有やちょっとしたASTERIA Warpの疑問解決の場とすることを目的としたコミュニティです。

X ASTERIA Warpユーザーサイト

ASTERIA Warpユーザーの方

ASTERIA Warpユーザーサイト
Login

製品更新版や評価版のダウンロード、各種ドキュメントのご提供、また 技術的なお問合せもこちらで受付ています。

X ASTERIA Warpパートナーサイト

ASTERIA Warpパートナーの方

ASTERIA Warpパートナーサイト
Login

パートナーライセンスの発行や各種ドキュメントのご提供をしています。

ページ先頭へ