目次
はじめに
ディーネットの牛尾です。
「データベースってなんか難しそう…」「SQLとか覚えるの大変そう…」
そんな方におすすめなのが、AWS DynamoDB(ダイナモDB)です!
DynamoDBなら、SQLなし・GUI操作だけでデータベースの基本が体験できます。
この記事では、DynamoDBを使って「テーブル作成・データ登録・検索」をやってみましょう!
DynamoDBとは?
DynamoDBは、AWSが提供するNoSQLデータベースサービスです。
特徴
- スキーマレス:あらかじめ列(カラム)を定義しなくてOK
- フルマネージド:サーバーの管理不要
- 高速:1秒間に数千件のアクセスも可能
- 無料枠あり:月間最大 25GBストレージ/200万件のリクエストが無料(12ヶ月)
今回やること(GUIで完結!)
- DynamoDBテーブルの作成
- データ(アイテム)の登録
- 条件付き検索でデータを取り出す
ステップ1:DynamoDBテーブルを作る
-
DynamoDBコンソール にアクセス
-
左メニュー「テーブル」→「テーブルを作成」
-
以下のように入力
項目 | 値 |
---|---|
テーブル名 | Users |
パーティションキー | UserID (文字列) |
ソートキー | (なしでOK) |
その他 | デフォルト設定でOK。「テーブルを作成」で完了! |
ステップ2:データを登録してみる
作成したテーブル「Users」→「項目を作成」をクリック
↓登録するデータ
{
"UserID": { "S": "u001" },
"Name": { "S": "山田太郎" },
"Age": { "N": "28" },
"Email": { "S": "taro@example.com" }
}
{
"UserID": { "S": "u002" },
"Name": { "S": "テスト一郎" },
"Age": { "N": "31" },
"Email": { "S": "test1@example.com" }
}
{
"UserID": { "S": "u003" },
"Name": { "S": "ダミー花子" },
"Age": { "N": "24" },
"Email": { "S": "dummy.h@example.com" }
}
{
"UserID": { "S": "u004" },
"Name": { "S": "モック次郎" },
"Age": { "N": "36" },
"Email": { "S": "mock2@example.com" }
}
{
"UserID": { "S": "u005" },
"Name": { "S": "サンプル三子" },
"Age": { "N": "29" },
"Email": { "S": "sample3@example.com" }
}
{
"UserID": { "S": "u006" },
"Name": { "S": "テスト四朗" },
"Age": { "N": "42" },
"Email": { "S": "test4@example.com" }
}
{
"UserID": { "S": "u007" },
"Name": { "S": "プレース五郎" },
"Age": { "N": "33" },
"Email": { "S": "place5@example.com" }
}
{
"UserID": { "S": "u008" },
"Name": { "S": "デモ六子" },
"Age": { "N": "26" },
"Email": { "S": "demo6@example.com" }
}
{
"UserID": { "S": "u009" },
"Name": { "S": "フィク七美" },
"Age": { "N": "30" },
"Email": { "S": "fict7@example.com" }
}
{
"UserID": { "S": "u010" },
"Name": { "S": "ナナメ八男" },
"Age": { "N": "21" },
"Email": { "S": "naname8@example.com" }
}
{
"UserID": { "S": "u011" },
"Name": { "S": "シード九乃" },
"Age": { "N": "39" },
"Email": { "S": "seed9@example.com" }
}
GUIで登録する場合まとめて追加することはできないため、1つずつ登録する必要があります。
また、登録するときの注意点です。
タグ | 意味 | 対応する型 |
---|---|---|
"S" |
String(文字列) | "山田太郎" , "abc123" など |
"N" |
Number(数値) | 28 , 3.14 , 1000 など(※JSONでは 文字列として記述) |
ステップ3:データを検索してみる
方法①:キー検索(UserIDで検索)
- テーブル画面で「テーブルアイテムの探索」タブを開く
- 検索条件に
UserID = u001
を指定 -
該当するアイテム(例:山田太郎)が表示される!
方法②:フィルターで条件指定(GUIで簡単)
- 「フィルター」をクリック
- 条件を設定
- 属性:
UserID
- 比較演算子:
等しい
- 値:
u00
- 属性:
-
検索実行 → 該当アイテムだけが表示される!
SQLとの違いは?
比較項目 | DynamoDB(NoSQL) | RDB(MySQLなど) |
---|---|---|
スキーマ | 不要(自由) | 必要(事前定義) |
クエリ | GUI or APIで実施 | SQLで実施 |
柔軟性 | 高い(項目自由) | 厳格(整合性あり) |
学習コスト | 低め | 高め(SQL文法が必要) |
よくある疑問
Q. 複雑な検索はできる?
ソートキーやセカンダリインデックス(主キー以外)を追加すれば可能ですが、今回は基本的な検索のみを対象としています。
Q. 実際のアプリでも使われてるの?
Netflix、Amazon.com、Zoom など、実際の大規模サービスでも DynamoDB は使われているようです。
まとめ
- DynamoDBを使えば、SQLなしでも「データベース操作」が体験できる
- GUIだけで、テーブル作成 → 登録 → 検索 まで完結
- NoSQLの基本を実感できるので、初心者の最初の一歩にぴったり!
SRE課に所属しています。