[AWS SAA取得向け] ~データベース編~

[AWS SAA取得向け] ~データベース編~

AWSの資格であるSAAで高頻度で出題されるデータベースの内容をまとめてみました。(ほぼ自分向けのところもありますが)

AWSが提供している主なストレージ一覧

サービス名(略) サービス名(フル) 用途
Amazon AuroraAmazonによってカスタマイズされた高性能なRDS
Amazon DynamoDBNoSQLデータベース
Amazon ElastiCacheインメモリキャッシュシステム
Amazon RDS RDSリレーショナルデータベース
Redshift高速なデータウェアハウス

Amazon Aurora

Aurora(オーロラ)は、Amazonがクラウドを前提として1からデータベースを再設計したデータベースサービスです。エンタープライズグレードの可用性とOSSレベルの低コストを実現するという特徴があります。
 データベースエンジンとしてはMYSQLtPostgreSQLが提供されています。通常のRDSを利用するよりも以下の点が優れています。

  • ストレージが10TB~64TBまで自動拡張
  • 3AZに2つずつ、計6つのデータのコピーを保持できる
  • リードレプリカが存在する場合は、1分程度でフェイルオーバーが可能
  • クエリ並列度が高い。データサイズが大きいユースケースで高パフォーマンスを発揮する
  • ゼロダウンタイムパッチ(アップグレードの際、再起動を必要としない)

RDS利用の注意点

  • オートスケールはできない
  • スケールアップ時はダウンタイムが発生する

オートスケールはできない

RDSはEC2のようにオートスケールでスケールアウトして台数を拡張させることはできません。リソースが足りない場合は、自分ではんだんしてスケールアップを行う必要があります。
 リソースコントロールが面倒な場合は、DynamoDBのようにキャパシティを指定するだけでオートスケールが可能なデータベースを選択する必要があります。

スケールアップ時はダウンタイムが発生する

スケールアップを行う際は、インスタンスの再起動が発生して数分間のダウンタイムが発生します。ダウンタイムを少なくしたい場合は、Auroraを選択するか、DynamoDBのようなキャパシティを指定するだけでオートスケールが可能なデータベースを選択する必要があります。

Amazon DynamoDB

Amazon DynamoDBはAWSが開発したフルマネージド型NoSQLサービスです。RDBで対応可能なスケールの限界を感じ、それを超えるために開発したデータベースがDynamoDBです。運用も通常のデータベースよりも容易で、コストも非常に安価なため、KVS(Key Value Store)としては非常にコストパフォーマンスに優れています。

DynamoDBの特徴

  • フルマネージド型NoSQLサービス
  • ハイスケーラブル、低レイテンシー
  • 高可用性(3AZにレプリケーション)
  • シンプルなAPI
  • 運用管理が不要
  • スループットキャパシティ

スループットキャパシティ

DynamoDBはテーブルごとに読み込み(Read)と書き込み(Write)それぞれに対し、必要な分だけスループットキャパシティを割り当てます。

ユースケース

  • KVS(トランザクション処理は行えません)
  • ログや行動履歴データベース
  • モバイルアプリのバックエンド
  • パッチ処理の状態管理
  • メタデータストア
  • Multi AZという概念はありません。自動で3か所のAZに保存され、高い可用性を維持しています。

Amazon ElastiCache

ElastiCacheはフルマネージド型インメモリデータストアサービスです。データベースの種類としてはRedisとMemchachedを選択でき、こうスループットかつ低レイテンシーを必要とするアプリケーションを強化できます。

ElastiCacheの特徴

  • 数クリックでRediaとMemchachedがデプロイ可能
  • 選択するだけでAZレベルでの冗長化やリードレプリカの作成が可能
  • バックアップやリストアも容易に行える

ユースケース

  • セッション管理
  • データベースキャッシュ
  • ストリームデータ分析
  • メタデータストア

Amazon RDS

RDSはリレーショナルデータベースをフルマネージドで提供してくれるサービス。データベースはビジネス上非常に重要なコンポーネントであるため、プロビジョニング、高可用性、パッチ適応、バックアップ運用などを考慮する必要があります。そこで、ある程度の規模のシステムを構築・運用する際に、高度な技術を要するDBA(Databas Administrator、データベース管理者)を配置するなどして管理していました。
 RDSはそれらの作業をカバーするフルマネージドサービスとして、設定や運用を簡略化してくれます。

RDSの特徴

  • 数クリックでOracleやSQL Server MySQL、PostgreSQLなどのデータベースのデプロイが可能となる
  • 選択するだけでAZレベルでの冗長化やリードレプリカを作成できる
  • バッチ適用やアップグレードもGUIレベルで実行できる
  • ポイントタイムインリカバリにより、デフォルトで5分前の状態に復元できる
  • インスタンスタイプを選択するだけでスケールアップが可能となる

ユースケース

RDSは一般なリレーショナルデータベースを必要とする場所で利用されます。ELB、EC2、RDSの3層アプリケーションという構成が鉄板の構成で、RDSはインターネットから直接アクセスさせないサブネットに配置するのが一般的です。

リードレプリカ

リードレプリカはマスターデータベースからデータ同期された読み取り専用データベースで、書き込みすることはできず、読み取り負荷を軽減させる機能です。読み取りのワークロードが多い場合に、データ同期されたリードレプリカに読み取り負荷を分散させ、マスターデータベースの不可を軽減できます。

Redshift

Redshiftはフルマネージド型でペタバイトスケールのデータウェアハウスサービスです。

Redshiftの特徴

  • PostgreSQLをベースとしたデータウェアハウスに特化した高速RDB
  • ペタバイト級までスケールアウト
  • オートスケールではなく自分でパフォーマンス調整が必要
  • 数クリックでデプロイ可能
  • フルマネージド型
  • データウェアハウスに適したカラム型データベース

DWH(Data Ware House:データウェアハウス)とは、様々なシステムからデータを集めて整理する、データの「倉庫」です

データベースサービスの比較

RDSDynamoDBElastiCacheRedshift
概要 リレーショナルデータベース 高速なNoSQL インメモリデータストア ペタバイト規模に拡張できるデータウェアハウス
特徴 ・管理が簡単
・高いスケーラビリティ
・可用性と耐久性
・高速
・セキュア
・安価
・連続した高速なデータ蓄積
・大規模
・サーバー管理が不要
・スケールに応じたパフォーマンス
・整合性モデルを採用
・メモリをストレージとする最も高速なアクセス
・フルマネージド型
・スケーラブル
・複雑なSQLを並列処理で高速に処理(列検索)
・利用可能なクラウドデータウェアハウスの中で最も高速
・大量のデータを短時間で読み出し
・分析することが可能
アクセス速度 高速 超高速 高速
データ量 小~大 特大(無制限)
自動的にスケールアップ/ダウン
小~中 特大(無制限)
サイジングと拡張操作が必要
トランザクション処理 可能