PR

AWS初心者に向けてDynamoDBとは?をわかりやすく解説!

初心者向けDynamoDB DynamoDB
記事内に広告が含まれています。

初めまして、AWS未経験の状態でAWS認定試験全冠を達成し、2024 Japan AWS All Certifications Engineers にも選出されたエンジニアのwatです!

・AWS認定試験の勉強をしているけど、DynamoDBの理解がイマイチ…
・DynamoDBのベストプラクティスについて知りたい!

このような方に向けてこの記事では、AWS初心者に向けてDynamoDBとは?をわかりやすく解説していきます!

DynamoDBを実際に使ったことがなくても、この記事を最後まで読めばDynamoDBに対する理解を深めることができます!是非、この記事を活用してAWSの勉強に役立ててください!

DynamoDBとは?

Amazon DynamoDBとは、AWSが提供するフルマネージドキーバリュー型のNoSQLデータベースサービスです。

DynamoDBはスキーマレスなデータモデルを採用しているため、従来のSQLを使うリレーショナルデータベース(RDB)と比べて柔軟なデータベース設計が可能になります。

DynamoDBの特徴
・キーバリュー型のNoSQLデータベース
 →柔軟なデータベース設計ができる
・自動スケーリング対応
 →手動で設定する手間が省ける

DynamoDBを活用するメリット

DynamoDBを活用することで得られるメリットはたくさんあります。
ここでは、DynamoDBを活用するべき代表的なメリットを6つ紹介していきます!

1. 自動スケーリングに対応

前述したように、DynamoDBは自動スケーリングに対応しています。

そのため、開発者が設定しなくても、負荷に応じて自動的にデータベースがスケールアウト/インされます。これにより、アクセスが急増してもダウンすることなくリクエストを処理できるようになります。

DynamoDB自動スケーリング イメージ図

2. フルマネージドサービス

DynamoDBはフルマネージドサービスです。

データベースのセットアップ、パッチ処理などをAWS側が管理しています。
そのため、データベースを管理する手間が減り、開発に集中することができます。

3. 高速なデータアクセス

DynamoDBを活用することで、高速なデータアクセスが実現可能になります。

DynamoDBでは、プライマリキーを使った検索はO(1)の計算量で処理されます。
そのため、RDSのようにフルスキャンを行う必要がなく、ミリ秒単位で高速にデータを取得できます。

さらに、GSI(グローバルセカンダリインデックス)やLSI(ローカルセカンダリインデックス)を活用することで、プライマリキー以外の属性を使った柔軟な検索が可能になります。

※プライマリキー、GSI、LSIについては記事後半で解説しています。

4. 柔軟なデータベース設計

DynamoDBは、柔軟なデータ構造(スキーマレス)なため、データの変更や追加が簡単にできます。

通常、リレーショナルデータベースでは、事前にテーブルの構造(カラム名やデータ型など)を定義し、すべてのレコード(行)が同じカラム構成を持つ必要があります。

しかし、DynamoDBにはそのような制約がないため、テーブルの構造に縛られずに柔軟なデータベース設計が可能です。

5. コストが従量課金制

DynamoDBはデータを読み込んだり、書き込んだ際に料金が発生します。
料金は従量課金制のため、低コストでデータベース管理ができます。

DynamoDBの料金オプション
・オンデマンドキャパシティモード
 →使用したリクエスト数に応じて課金
  (低トラフィック or 変動の激しいワークロード向け)
・プロビジョンドキャパシティモード
 →事前に読み書きキャパシティ(RCU/WCU)を指定
  (安定したトラフィックがあるアプリケーション向け)

※RCUとWCUについて
 RCU1秒間にどれだけのデータを読み取れるか、1RCU:4KB
 WCU1秒間にどれだけのデータを書き込めるか、1WCU:1KB

6. マルチリージョンレプリケーション

DynamoDBに保存されたデータは、自動的にマルチリージョンレプリケーションされます。

マルチリージョンレプリケーションとは、DynamoDBのデータを複数のリージョンに複製して保存する仕組みです。

これにより、世界中のユーザーに対して低遅延で高速なデータ提供が可能になります。
また、特定のリージョンで障害が発生しても、他のリージョンにあるデータを利用できるため、システムの可用性が向上します

DynamoDBが活用されるケース

ここからは、DynamoDBが活用されるケースについて紹介していきます!

DynamoDBが活用されるケース
リアルタイム性が求められるシステム(例:ゲームアプリのランキング管理)
大規模なデータを扱うサービス(例:IoTデバイスのデータストレージ)

さらに詳しくDynamoDBが活用されるケースについて知りたい方はこの記事をチェックしてみてください!

関連記事

DynamoDBの基本

ここでは、DynamoDBの理解度を深めるために重要なキーワードについて解説していきます!

NoSQL

NoSQLを理解するために、まずSQLの特徴について理解していきましょう!
DynamoDBをNoSQLデータベース、RDSをSQLデータベースとして特徴を比較してみました。

項目DynamoDB(NoSQL)RDS(SQL)
データ構造柔軟(スキーマレス)テーブル&カラム(スキーマ固定)
スケーラビリティ水平方向(スケールアウト)垂直方向(スケールアップ)
データの一貫性最終的な整合性が一般的強い整合性(ACID)

関連記事

こちらの記事では、DynamoDBとRDSの違いについて、深掘りして解説しています!
是非、読んでみて下さい!

プライマリキー

プライマリキーとは、テーブル内で各アイテム(レコード)を一意に識別するためのキーです。

DynamoDBでは、2種類のプライマリキー構成が選べます。

プライマリキー構成
1. パーティションキー
 ・検索時はO(1)の計算量で高速アクセスが可能
 ・テーブル内のパーティションキーが被らないように設計する必要がある
2. パーティションキー+ソートキー
 ・範囲検索が可能
 ・ソートキーが異なれば、パーティションキーが同じでも問題ない

関連記事

こちらの記事でDynamoDBのキーについてさらに詳しく解説しています!
気になる方は、チェックしてみてください。

インデックス

DynamoDBでは、プライマリキー以外のキーを使って検索することができます。

そんなときに使うのが、GSI(グローバルセカンダリインデックス)LSI(ローカルセカンダリインデックス)です。

関連記事

こちらの記事でGSIとLSIの違いについて詳しく解説しています!
こちらも是非一読して下さい!

DynamoDBの主な機能

ここではAWS認定試験に出題されそうなDynamoDBの主な機能について紹介していきます!

TTL

TTL(Time To Live)は、DynamoDBのテーブル内のアイテム(レコード)に有効期限を設定し、自動的に削除する機能です。

設定した時間が経過すると、DynamoDBが該当アイテムをバックグラウンドで削除します。
これにより、手動で削除する手間が省け、不要なデータを保存するコストを削減できます。

関連記事

DAX

DAX(DynamoDB Accelerator)は、DynamoDBの高速キャッシュサービスです。
フルマネージドなインメモリキャッシュを提供し、DynamoDBの読み取りパフォーマンスを最大10倍向上させることができます。

DAXにより、ミリ秒レベルの応答がマイクロ秒レベルの応答まで高速化されます。

グローバルテーブル

グローバルテーブル(Global Tables)は、DynamoDBのマルチリージョン・マルチアクティブレプリケーション機能です。

異なるAWSリージョンにまたがってデータを自動的にレプリケーションし、リージョン障害時でも高可用性を確保できます。

関連記事

バックアップ

DynamoDBのデータバックアップ方法には3種類あります。

1. オンデマンドバックアップ
 自分の好きなタイミングで手動バックアップを作成する
 アプリケーションのパフォーマンスに影響を与えない

2. ポイントインタイムリカバリ(PITR)
 過去35日間の任意の時点にデータを復元できる
 バックアップが自動的かつ、継続的に行われる

3. S3エクスポート
 DynamoDBのデータをParquet形式でS3に保存する
 アプリケーションのパフォーマンスに影響を与えない

関連記事

おすすめAWS認定試験参考書

AWS CLFに合格するには…

参考書のポイント
・クラウドコンピューティングの基礎から丁寧に解説しているので、AWS初心者でも読める
・ITの基礎的な知識も一緒に学ぶことができる(IT関連の仕事をしてなくても理解できる
・AWSを学ぶための最初の1冊としてピッタリ
解説と模擬試験がセットになっているので、記憶に残りやすい

AWS SAAに合格するには…

オススメポイント
・一通り読むことで、AWSの基礎を身につけることができる
・AWS初心者から経験者まで、幅広い層に対応している
最新の試験に対応している

まとめ

今回は、DynamoDBとは?についてAWS初心者向けにわかりやすく解説してきました!

この記事を読んで、DynamoDBに対する理解を深めることができれば、AWS認定試験の合格に一歩近づくこと間違いなしです!

また、このサイトではAWS認定試験の対策になるような記事をたくさん紹介しています。
気になる方は関連記事も一緒に読んでみてはいかがでしょうか?

ご精読ありがとうございました!

コメント

タイトルとURLをコピーしました