🗄️

AWS学習8日目:DynamoDB (2)

に公開

今日のテーマ

AWS学習8日目は、前回学んだDynamoDBを実際に触りました。

具体的にはDynamoDBでテーブルを作成し、itemを追加・確認・削除する流れを体験しました。

今日できたこと

  • DynamoDBの基本単語を学習した
  • DynamoDBテーブルを作成した
  • itemを各種操作した
  • scanとqueryの違いを学んだ
  • partition keyとsort keyの役割を確認した

今日のハンズオン

今回は、DynamoDBの画面を眺めるだけでなく、実際にテーブルを作成し、itemを操作しました。

基本単語学習

今日覚えた用語は次の6つです。

用語 現時点での理解
partition key itemを特定するための基本となるキー
sort key partition keyと組み合わせて、並び順や追加の識別に使うキー
attribute itemが持つ項目
item DynamoDBに保存される1件分のデータ
scan テーブル全体を走査してデータを探す操作
query キーを指定して効率よくデータを取得する操作

DynamoDBの基本構造

DynamoDBでは、データを table に保存します。

そのtableの中に、1件分のデータである item が入ります。

itemの中には、複数の attribute が含まれます。

現時点での理解

DynamoDBの要素 RDSで近いイメージ
table テーブル
item 1行分のデータ
attribute カラムのような項目
partition key 主キーのような識別キー

partition keyとは何か

partition keyは、DynamoDBでitemを特定するための基本となるキーです。

RDSでいう主キーに近い感覚で理解しました。

ただし、DynamoDBではpartition keyがデータの配置やアクセス効率にも関係します。

自分の理解

partition keyは、itemを選択する際に設定するキー。
RDSの主キーのような扱いで、データアクセスの分散にも関係する。

sort keyとは何か

sort keyは、partition keyと組み合わせて使うキーです。

同じpartition keyの中で複数のitemを扱いたい場合に、並び順や追加の識別として使えます。

attributeとは何か

attributeは、itemが持つ項目です。

RDSでいうカラムに近いものとして理解しました。

例えば、タスク管理のitemなら、次のようなattributeを持ちそうです。

attribute item
taskId task-001
title AWS学習をする
status open
dueDate 2026-05-30
priority high

itemとは何か

itemは、DynamoDBに保存される1件分のデータです。

RDSでいうレコードに近い感覚です。

例えば、LifeOSのタスクをDynamoDBに保存するなら、1つのタスクが1つのitemになります。

{
  "taskId": "task-001",
  "title": "AWS学習をする",
  "status": "open",
  "priority": "high"
}

scanとは何か

scanは、テーブル全体を走査してデータを探す操作です。

つまり、テーブル内のitemをすべて見に行くイメージです。

queryとは何か

queryは、キーを指定して効率よくitemを取得する操作です。

scanが全体を見るのに対し、queryは条件に合うデータを狙って取りに行くイメージです。

scanとqueryの違い

比較項目 scan query
探し方 テーブル全体を見る キーを指定して探す
効率 データが多いと重くなりやすい 効率よく取得しやすい
使いどころ 小規模確認、全件確認 実際のアプリでの取得
設計との関係 キー設計の影響が小さい キー設計が重要

ハンズオン

今日のハンズオンでは、DynamoDBでtableを作成し、itemを追加・確認・削除しました。

DynamoDBでやったこと

  • tableを作成
  • partition keyを設定
  • itemを操作

つまずいたこと

今回は特に大きなつまずきはありませんでした。

LifeOSではどう使えそうか

DynamoDBは、LifeOSの中でタスクや学習記録などを保存する用途に使えそうです。

特に、キーで高速に取得したいデータとの相性が良さそうです。

LifeOSでのテーブル例

table partition key sort key 用途
Tasks userId taskId ユーザーごとのタスク管理
StudyLogs userId date 学習記録
Reminders userId reminderId リマインダー管理
Documents userId documentId 書類情報の管理

資格学習として覚えておきたいこと

今日の内容から、まず次の点を覚えておきます。

ポイント 内容
DynamoDB AWSのサーバーレスNoSQLデータベース
table itemを保存する入れ物
item 1件分のデータ
attribute itemが持つ項目
partition key itemを識別・分散するためのキー
sort key partition keyと組み合わせて並びや追加識別に使うキー
scan table全体を走査する
query キーを指定して効率よく取得する

特に重要そうな比較

比較 覚えておきたいこと
RDSとDynamoDB RDSはリレーショナルDB、DynamoDBはNoSQL
partition keyとsort key partition keyは基本の識別、sort keyは並びや追加識別
itemとattribute itemは1件分、attributeは項目
scanとquery scanは全走査、queryはキー指定で効率的
S3とDynamoDB S3はファイル保存、DynamoDBは検索しやすいデータ保存
現時点でまだ曖昧なこと
  • partition keyのベストな決め方
  • sort keyを使うべき場面
  • DynamoDBの料金体系
  • scanがどれくらい非効率になるのか
  • queryを前提にした設計方法
  • LambdaからDynamoDBを操作する方法

今日の振り返り

今日できるようになったこと

  • DynamoDBテーブルを作成できる
  • partition keyを設定できる
  • itemを操作できる
  • attributeがitemの項目であると説明できる
  • scanとqueryの違いが説明できる

次回

次回は、EventBridge を使ってLambdaを動かします。

Discussion