見出し画像

AWSソリューションアーキテクト取得に向けて~Dynamo DB~

AWS ソリューションアーキテクト アソシエイト取得に向けて学習した内容を備忘的に記載します。

今回はDynamo DB。

Dynamo DBとは

■完全マネージド型のNoSQLデータベースサービス。
■ハイスケーラブルで無制限に性能拡張可能
■負荷が高くても応答速度が低下しない低レイテンシー
■高可用性(SPOFなし。3か所のAZに保存)
■マネージド型のためメンテナンスフリー
■プロビジョンドスループット
 テーブルごとにReadとWriteに必要なスループットキャパシティを割り当てる
■ストレージの容量制限がない

Dynamo DBのできること

■キーに対するバリューのCRUD操作
■簡易なクエリやオーダー
 ex.数万人以上が同時アクセスして処理が必要になるアプリケーションのデータ処理など

Dynamo DBの出来ないこと/向いていないこと

■JOIN/TRANSACTION/COMMIT/ROLLBACKは不可
■複雑なクエリやオーダー
■大量データの読み書きにはコストがかかる

Dynamo DBの整合性モデル

Write
少なくとも2つのAZでの書き込み完了が確認とれた時点で完了

Read
■デフォルト:結果整合性モデル
最新の書き込み結果が即時読み取り処理に反映されない可能性有り
■オプション:強い整合性モデル
GetItem/Query/Scanでは強い整合性のある読み込みオプションが指定可能

ユースケース

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

テーブル設計

テーブル⇒項目⇒属性と設計する。
テーブル:データのコレクションのこと
項目:テーブルの中に項目を作ってデータを作成する。項目間で一意に識別可能な属性グループとなる。
属性:各項目は一つ以上の属性で構成される。それ以上に分割する必要がない最小データ単位。

インデックス

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

明示的に利用するインデックス
ハッシュキーやレンジキーだけでは検索条件が満たせない場合LSIとGSIを利用する。スループットやストレージ容量を追加で必要で書き込みも増大するため、多様すべきではない。

 Local Secondary Index(LSI)
 ■レンジキー以外で絞込検索を行うインデックスで複合キーテーブルに設定できる
 ■複合キーによって整理されている項目に対して、別の規則でのインデックスを可能にする

 Global Secondary Index(GSI)
    ■ハッシュキーの属性の代わり
 ■ハッシュキーテーブルおよび複合キーテーブルどちらにも設定可能
 ■ハッシュキーをまたいで自由に検索可能

プライマリーキー

ハッシュキー
■KVSにおけるキーに相当するデータを一意に特定するためのIDなどのこと
■テーブル作成時に一つの属性を選び、ハッシュキーとして宣言
■ハッシュ関数によってパーティションを決定するためハッシュキーと呼ぶ
■ハッシュキーは単独で重複を許さない

レンジキー
■ハッシュキーにレンジを加えたものをレンジキーまたは複合キーと呼ぶ
■テーブル作成時に2つの属性を選び、一つをハッシュキーとして、もう一つをレンジキーと呼ばれるキーとして宣言
■二つの値の組み合わせによって一つの項目を特定
■複合キーは単独であれば重複が許される

Dynamo DB Streams

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

データの保存
■過去24時間以内のデータ変更履歴を保存し、24時間を経過すると消去される
■データ容量はマネージド型で自動的に管理

データ保存の順番
■操作が実施された順番に応じてデータはシリアライズされる
■特定のハッシュキーに基づいた変更は正しい順番で保存されるが、ハッシュキーが異なる場合は受信した順番が前後される可能性がある

DynamoDB Accelerator(DAX)

DAXはインメモリキャッシュ型の機能を付加する
■インメモリキャッシュとして1桁台のミリ秒単位からマイクロ秒単位まで結果整合性のある読み込みワークロードの応答時間を短縮。マルチAZDAXクラスターは1秒間に数百万件のリクエストを処理できる。
■DAXはDynamoDBを使用するAPIと互換性を持つマネージド型サービスであり、運用上そしてアプリケーションの複雑性を減少させて用意に導入可能
■読み取りの多いワークロードyあ急激に増大するワークロードに対して、DAXはスループットを強化したり、読み込みキャパシティーユニットを必要以上にプロビジョニングしないよう設計することで運用コストを節約できる。

グローバルテーブル

リージョン間で同期されるマルチマスターテーブルを作成可能
■DynamoDBの性能のまま、世界中で複数リージョンにエンドポイントを持つことができる
■読み書きのキャパシティに加えて、クロスリージョンレプリケーションのデータ転送料金に課金される
■オプションで実施できた強い整合性は不可

オンデマンドバックアップ

パフォーマンスに影響なく数百TBのバックアップを実行可能
■任意のタイミングで利用可能な長時間データ保存用バックアップ
■従来はデータパイプラインを利用して取得したバックアップを容易に実施可能

この記事が気に入ったらサポートをしてみませんか?