データベースといえば、OracleやMySQLなどに代表されるRDBMSが広く利用されている。データベース管理システムとしての実績もノウハウも十分に蓄積されており、データの一貫性が保証されている点が非常に大きな強みだ。しかし、データの書き込みにおいてスケールさせることが難しく、カラムやインデックスの追加時にはテーブルがロックされてしまうため、変動の激しいシステムには向いていない。
こうしたRDBMSの弱点を補う存在として生まれたのがNoSQL(Not Only SQL)という概念で、その中のひとつにKVS(Key-Value Store)がある。 KVSは、任意のキー(Key)と保存する値(Value)を一組のペアとして管理する方式をとるため、構造が極めてシンプルで、スケールアウトさせやすいメリットがある。そして、この特性を持つデータベースサービスのひとつが、今話題の「Amazon DynamoDB」だ。
目次
AWS(Amazon Web Services)で提供されるDynamoDBは、Amazon本体で提供するサービスを技術的に支えることができるように設計されている。そのため、高いスケーラビリティに加え、特にデータ書き込み時における非常に柔軟な可用性がある。これは、RDBの機能を使用した場合におこる、テーブルがロックされる状況を回避する必要があったからだ。常に書き込みを可能にしたことから、DynamoDBではプロセスの途中でのデータの整合性は弱くなっている。要するに、「結果の整合性が保たれるようになっていれば良い」という考え方である。そのため、大量のセッションや膨大なデータ量をさばく必要のあるソーシャルゲームやビッグデータの解析などには、適しているといえよう。
ただし、前述の通りプロセス途中での整合性が必要となるものには不向きなため、用途に応じてうまく使い分けていく必要がある。Amazonのサービスに照らし合わせて考えるならば、商品情報などのサービス提供側が生成するデータではなく、セッション管理や商品レビューなど、ユーザー側で生成されるデータの処理に向いている。そこで、DynamoDBのECサイトでの活用を考えてみることにする。
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 Putコンポーネント
マッピングなどが不要で簡単にデータが登録可能
実際の手順はこちら
▶ AWS DynamoDB Scanコンポーネント
条件指定で簡単にデータが取得可能
実際の手順はこちら
AWS DynamoDBコンポーネントは、DynamoDBのテーブルへのデータ登録および取得をノーコードで実現する強力なツールといえる。変更の激しいKVSだからこそ、GUIの簡単操作でデータ連携を試してみてはいかがだろうか?
PM・SE・マーケティングなど多彩なバックグラウンドを持つ「データ連携」のプロフェッショナルが、専門領域を超えたチームワークで「データ活用」や「業務の自動化・効率化」をテーマにノウハウやWarp活用法などのお役立ち情報を発信していきます。
Related Posts
ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。
アステリア製品デベロッパー同士をつなげ、技術情報の共有やちょっとしたの疑問解決の場とすることを目的としたコミュニティです。