ASTERIA Warp 製品ブログ

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ではプロセスの途中でのデータの整合性は弱くなっている。要するに、「結果の整合性が保たれるようになっていれば良い」という考え方である。そのため、大量のセッションや膨大なデータ量をさばく必要のあるソーシャルゲームやビッグデータの解析などには、適しているといえよう。

DynamoDBの特長はAWSが掲載しているこちらの動画でご覧いただくと分かりやすいかと思います。
Amazon DynamoDB Overview, a fully managed NoSQL database service

ただし、前述の通りプロセス途中での整合性が必要となるものには不向きなため、用途に応じてうまく使い分けていく必要がある。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コンポーネントは、DynamoDBのテーブルへのデータ登録および取得をノン・コーディングで実現する強力なツールといえる。変更の激しいKVSだからこそ、GUIの簡単操作でデータ連携を試してみてはいかがだろうか?

今なら毎月10名様にプレゼント!無料体験版のお申し込みはこちら
【ASTERIA Warp 事例集】業務自動化/RPA、EAI、マスターデータ管理、クラウド連携・・・業務効率化・データ活用事例をまとめ読み

ASTERIA Warp関連サイトのご紹介

X

<技術情報をお探しの方>

ASTERIA Warp Developer Network
(ADN)サイト

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

X

<ASTERIA Warpユーザーの方>

ASTERIA Warpユーザーグループ
(AUG)サイト

ASTERIA Warpユーザー同士の交流の場として、各種イベント案内や開催レポートを掲載しています。

X

<ASTERIA Warpユーザーの方>

ASTERIA Warpユーザーサイト
Login

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

X

<ASTERIA Warpパートナーの方>

ASTERIA Warpパートナーサイト
Login

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