はじめに
以下の方におすすめです。
- AWS初心者でDynamoDBについて学習したい
- DynamoDBの設定手順やユースケースを知りたい
- AWS認定の試験勉強をしたい
この記事では、AWSの代表的なNoSQLデータベースサービスであるDynamoDBについて解説します。
SAAの試験範囲にも含まれているので、資格試験勉強中の方のも役立つ内容になっています。
手順のみを知りたい方は設定手順を参考にしてください。
DynamoDBについて
DynamoDBはAWSが提供するフルマネージド型のNoSQLデータベースサービス です。
RDB(リレーショナルデータベース)とは異なり、柔軟なスキーマ設計を持つため、高速なデータ読み書きとスケーラビリティがあります。
特徴
特徴として以下の内容が挙げられます。
特徴 | 説明 |
---|---|
フルマネージド | インフラ管理やパッチ適用の必要がない |
高性能 | 低レイテンシーで大量のデータの読み書きが可能 |
スケーラビリティ | 自動的にリソースを増減し、負荷に対応できる |
柔軟 | JSON形式を採用され、柔軟なデータ保存が可能 |
自動的にスケーリングされ、1秒当たり数百万リクエストの処理が可能なため、柔軟で高性能とされています。
ユースケース
DynamoDBは高速性能とスケーラビリティから以下のような場合に使用されています。
一時的なユーザーによるセッション管理
アプリやWebサイトでのログイン状態や一時的なセッション状態の管理に使用されます。
リアルタイムデータ処理
ゲームアプリやIoTデバイス等で、大量のリアルタイムデータの読み書きが必要な場合に使用されます。
データ履歴保存
DynamoDB Streamsと組み合わせて、データの変更履歴を保存・監視する仕組みを作ることが可能です。
商品カタログ・在庫管理
ECサイト等の在庫情報や商品データベースに使用されます。
テーブル設定項目
デフォルト設定のままでも十分に動作しますが、プロビジョンド設定に変更することでテーブルをカスタマイズできます。初心者の方はまずデフォルト設定で試すことをおすすめします。
ここでは、各項目が何なのかを説明していきます。
- キャパシティ計算ツール:性能別でどれくらいコストがかかるかを計算してくれます。
- 読み込み/書き込みキャパシティーの設定:オンデマンドとプロビジョンド設定の変更ができます。プロビジョンドは手動で行う設定です。
- ウォームスループット:読み込みや書き込みの遅延を防ぐ設定です。
- セカンダリインデックス:ローカルインデックスやグローバルインデックスでパーティションキーの追加やキーの設定を行うことができます。
- 保管時の暗号化:デフォルトではAWSが管理しますが、KMSを選択して私たちが管理することができるようになります。
- 削除保護:テーブルが意図せず削除することから保護します。
- リソースベースのポリシー:テーブル単位でアクセス許可を制御できます。
設定手順
DynamoDBのテーブルを作成する手順を解説します。
- DynamoDBサービスを開く
- テーブルの作成
- データの挿入
DynamoDBサービスを開きます。
「テーブル名」と「パーティションキー」を入力します。
パーティションキーがキーバリュー形式で表されるNoSQLの特徴の内のキーに当たる部分です。
テーブル設定に関しては、デフォルト設定にしておきましょう。お試しで使用する分にはオンデマンドの方が料金が少なく済みます。
テーブルの作成を行うとDynamoDBのテーブルが作成されます。一定時間たつと状態がアクティブになります。
テーブルの詳細画面でアクションボタンをクリックすると「項目を作成」というものがあるので、クリックします。
項目の作成で「JSONビュー」というタブがあるのでクリックすると、JSONコードを書く場所が出てくるので追加項目を設定していきます。
ここでは、ユーザーID・ユーザー名・年齢を入力して、それらのレコードを挿入する設定にしています。
{
"user_id": {
"S": "12345"
},
"user_name": {
"S": "Kame"
},
"user_age": {
"N": "26"
}
}
以下のようにデータが挿入されていたらOKです。今回は12345がキーになります。
まとめ
DynamoDBはAWS認定試験にも登場する重要なサービスです。
この記事を参考に、基本的なテーブル作成とデータ挿入を試してみてください。
NoSQLデータベースの柔軟性や高速な性能を理解し、実際のユースケースに活かしていきましょう!