TxKxZxWx's blog

AWS SAA取得に向けて学習

AWS SAA取得に向けて 58日目 「 DynamoDBの概要」 セクション11:データベース

セクション11:「データベース」

------------------------------------------

 

 

「 DynamoDBの概要」

 AWSの代表的なNoSQLデータベースであるDynamoDBについて理解する。

 

 

DynamoDB

完全マネージド型のNoSQLデータベースサービス

 

  • ハイスケーラブルで無制限に性能を拡張できる
  • 負荷が高くなっても応答速度が低下しないレイテンシー
  • 高可用性(SPOFなしでデータは3箇所のAZに保存)
  • マネージド型のためメンテナンスフリー:CloudWatchで運用

 

  • プロビジョンドスループット
    テーブルごとにReadとWriteに、必要なスループットキャパシティを割り当てる例)Read:100/Write:1000
    事前にこのぐらいのキャパシティをこの機能につけておくということができる。

  • ストレージの容量制限がない
    データ容量の増加に応じたディスクやノードの増設は一切不要。
    無限に様々なデータを入れることができる。

 

 

DynamoDBの出来る事

キーバリュー(ワイドカラム型)でデータを簡易に操作することができる。 

 

Image from Gyazo

 

 

 

DynamoDBの整合性モデル

デフォルトで結果整合性モデルであり、一部処理に強い整合性モデルを利用している。

 

Image from Gyazo

 

 

パーティショニング

大量データを高速処理するためにパーティショニングによる分散処理を実施している。

 

DynamoDBの特徴として、高速処理のためにパーティショニングを行う。

例えばテーブルAという一つのテーブルの読み書きをするために、

パーティショニングA ,B, Cとそれぞれの処理を並列で実行することで高速処理を実現させる。

 

 

ユースケース

ビッグデータ処理向けか大量データ処理が必要なアプリケーション向けに利用する。

 

Image from Gyazo

 

 

例えば、大量に発生しうるWEB行動データやログ管理など。 

 

Image from Gyazo

 

 

 

テーブル設計

DynamoDBはテーブル単位から利用が開始され、テーブル→項目→属性と設計する。 

 

まず一つ大きなデータを入れ込むテーブルを作成する。

その中に細かな項目や属性を入れていく。

 

インデックス

DynamoDBは暗黙的に設定するKVSにおけるKeyに値するものと、明示的に設定するキーがインデックスとして利用できる。

 

プライマリーキー

DynamoDBはハッシュキーとレンジキーという2種類のプライマリーキーを利用する。

 

明示的に利用するインデックス

ハッシュキーやレンジキーだけでは検索要件が満たせない場合にLSIとGSIを利用する。

 

テーブル操作

テーブル操作としては以下のようなコマンドを利用する。

 

  • GetItem
    ハッシュキーを条件に一定の項目(アイテム)を取得。

  • PutItem
    1件のアイテムを書き込む。

  • Update
    1件のアイテムを更新。

  • Delete
    1件のアイテムを削除。

  • Query
    ハッシュキーとレンジキーにマッチする項目を取得(最大1MB)

  • Scan
    テーブルを全件検索する(最大1MB)

  • BatchGet
    複数のプライマリーキーに対してマッチする項目を取得。

 

 

DynamoDB Streams

DynamoDB テーブルに保存された項目の追加・変更・削除の発生時の履歴をキャプチャできる機能。 

 

DynamoDB Streamsのユースケース

データ更新をトリガーとしたアプリケーション機能やレプリケーションに活用できる。

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

まとめ 

 

 Amazono DynamoDBとは、

「完全マネージメント型のNoSQLデータベースサービス」

 

 

NoSQLデータベースサービスとリレーショナルデータベースの違い:

  • リレーショナルデータベース
    豊富なクエリ機能を備えている反面、テーブル間の関係が複雑だからスケーリングするには多くのリソースが必要。

  • NoSQLデータベースサービス
    高いスケーラビリティを実現するように設計されている。
    しかし、リレーショナルデータベースほど複雑なクエリ機能は備えていない。

 

DynamoDBの特徴:

Amazono DynamoDBは完全マネージメント型サービスなのでデータベース管理作業について心配する必要がない。

 

ゲーム、広告、モバイルといった信頼性と低レイテンシーで安定したスループットが求められるアプリケーションに使われる。

 

コストについて:

プロビジョニングされたスルーピットの容量と、使用したストレージ分だけ支払う。

 

バックアップについて:

自動的に3カ所の施設にデータのバックアップが取られている。

 

使用法:

ユーザーはテーブルを構築し、必要なスループット(秒あたりの読み取り、書き込み数)を設定するだけ。

ItemAttribute(属性)のテーブルで構成されている。

各Itemは一意のプライマリキーと任意の数のAttribute(属性)を持つ。