めっちゃ歩く
フリーランスITエンジニアの
山旅系雑記ブログ
IT PR

5つの観点でAWSの主要DBをまとめてみた【AWS認定試験対策】

AWSのデータベースのアイコン
<商品表示法に基づく表記>記事内にアフィリエイト広告が含まれている場合があります。

今回は5つの観点でAWSの主要なDBをまとめてみました。

AWS認定試験ではたくさんのAWSサービスについての問題が出題されるので覚えるのが大変です。
その中でもDBはそれぞれのサービスの違いについてちゃんと把握できていなかったのでこの機会にまとめておきます。
それぞれのサービスとの違いが分かっていれば適切なサービスを選択することができるのでしっかりを覚えていきたいと思います。

対象のDBと特徴

今回まとめにあたって対象としたDBは以下になります。
なお、AWSには他にもいくつかサービスがありますがここでは取り上げません。

サービス説明
RDS
  • フルマネージド型のRDBサービス。
  • 複数のデータベースエンジンが利用できるが使えない機能もあるので、必要な機能が使えない場合はEC2インスタンスにDBを構築する必要あり。
Aurora
  •  RDSで選択できるデータベースエンジンの1つでクラスタ構成によって高速・高性能な分散型のRDBサービス。
  • 高い並列処理によって大量の読み書きをするのに適している。
DynamoDB
  • 拡張性に優れたKey-Value型のNoSQLDBサービス。
  • ビッグデータや大量データ処理が必要な場合に適している。
Redshift
  • 高速でスケーラブルなデータウェアハウス・データレイク分析のDBサービス。
  • 大量のデータから意思決定に役立つ情報を抽出するための環境を構築する。
ElastiCache
  • インメモリ型のDBサービス。
  • memcachedまたはredisから選択する。
  • インメモリキャッシュや、ゲームなどのセッションストアに適している。

5つの観点でのまとめ

試験で問われるだけでなく、実際にAWSを利用するにあたって重要になってくる以下の観点でDBをまとめます。

  • 冗長(マルチAZ)
  • スケーリング
  • バックアップ
  • セキュリティ(データ保護)
  • 料金体系

冗長(マルチAZ)

サービス説明
RDS
  • デフォルトではシングルAZ。
  • 設定によってマルチAZの構成が可能。
Aurora
  • 設定不要で3つのAZに2つのコピーを設置可能で合計6つのコピーを保持する。
DynamoDB
  • 単一障害点(SPOF)が発生しないように自動的に単一リージョン内で3箇所のAZにデータを保存する。
Redshift
  • Amazon Redshift はシングル AZ 配置のみをサポートしている。
  • Redshift SpectrumとS3を利用して複数AZに配備したRedshiftにデータを共有することでマルチAZ構成を構築することが可能。
ElastiCache
  • Memcacehed:最大20のElastiCacheクラスタで構築することができ、複数のAZにインスタンスを作成することでマルチAZ構成が可能。
  • Redis:クラスターモードの有効・無効に関わらずにマルチAZ構成を作成することができる。

スケーリング

サービス説明
RDS
  • ストレージタイプの変更によるスケールアップ・スケールダウン、リードレプリカの追加・削除によるスケールアップ・スケールダウンが可能。
  • Storage Auto Scalingを有効化することで自動スケーリングが可能。
Aurora
  • クラスターボリュームはデータ量に合わせて自動的にスケーリングする。
  • Auroraレプリカの追加・削除でスケールアウト、スケールインが可能。
  • Aurora Auto Scalingでスケーリングポリシーを定義して、CloudWatchメトリクスをチェックして自動でAuroraレプリカの数を上下に調整する。
DynamoDB
  • 読み込み・書き込みのスループットキャパシティを変更することでスケーリングが可能。
  • DynamoDB Auto Scalingでスケーリングポリシーを定義して、CloudWatchメトリクスをチェックして自動スケーリングも可能。
Redshift
  • Redshiftはリーダノード、コンピュートノードによるクラスタ構成となっているためコンピュートノードのクラスタの追加やリソースを増やすことでスケーリングが可能。
ElastiCache
  • Memcacehed:クラスタのノードの追加・削除、リソースの変更をすることでスケールイン、スケールアウト、スケールアップ、スケールダウンでスケーリングが可能。
  • Redis:リードレプリカの追加・削除、エンジンバージョンのアップグレード、シャードの追加・削除(クラスターモードのみ)することでスケーリングが可能。

バックアップ

サービス説明
RDS
  • 1日1回の自動バックアップ機能あり、手動でのスナップショットの取得も可能。
  • バックアップ、スナップショットしたデータをリージョン間でコピーすることが可能。
Aurora
  • 自動的にクラスターボリュームのバックアップが行われる。
  • バックアップ保持期間の任意の時点に復元が可能。
DynamoDB
  • DynamoDBテーブルのオンデマンドバックアップでバックアップの作成が可能。
  • ポイントインタイムリカバリを使用した連続バックアップも利用が可能。
Redshift
  • 手動でのスナップショットの取得と、指定した時間間隔や特定の時間、曜日などスケジュールに従った自動スナップショットが可能。
ElastiCache
  • Redis:手動・自動(最短間隔60分)でのバックアップが可能。

セキュリティ(データ保護)

サービス説明
RDS
  • 暗号化オプションを有効化することでストレージやスナップショット、ログなどRDSに関連するすべてのデータが暗号化された状態で保存される。
  • すでにあるデータを暗号化するには一度スナップショットを取得し、そのスナップショットの暗号化コピーを作成したのち暗号化したスナップショットからDBインスタンスを作成することで暗号化することができる。
Aurora
  • 暗号化オプションを有効化することでストレージやスナップショット、ログなどRDSに関連するすべてのデータが暗号化された状態で保存される。
DynamoDB
  • デフォルトで保管されるすべてのデータはデフォルトで暗号化される。
Redshift
  • クラスターに対してデータベースの暗号化を有効化することで保管時のデータを暗号化することが可能。
  • クラスタ作成時に暗号化の設定を行う。
ElastiCache
  • Redis:クラスター作成時に暗号化の設定を行うことで保存するデータの暗号化が可能。

料金体系

サービス説明
RDS
  • 従量課金制でストレージ料金とデータ通信料金が応じて料金が決まる。
  • リザーブドインスタンスを選択やライセンス持ち込みをすることでコストの削減が可能。
  • マルチAZ構成にすると保存するデータが倍になるためコストが高くなる。
Aurora
  • 従量課金制でストレージ料金とデータ通信料金が応じて料金が決まる。
DynamoDB
  • 従量課金制でキャパシティーユニット、ストレージ料金、データ通信量に応じて料金が決まる。
  • 使用量の予測がつかない場合はオンデマンドキャパシティモード、予測がつくのであればプロビジョニングキャパシティモードを選択する。
Redshift
  • 従量課金制でコンピュートノードの起動時間とストレージ料金に応じて料金が決まる。
  • リザーブドインスタンスを利用することでコストの削減が可能。
ElastiCache
  • 従量課金制でキャッシュノードの起動時間とデータ通信量に応じて料金が決まる。
  • リザーブドノードキャッシュを利用することでコストの削減が可能。

まとめ

以上、ざっくりした内容になりましたが5つの観点でAWSのDBについてまとめました。

それぞれのサービスの違いをしっかり把握してAWSの理解を深めていきましょう。

AWS認定試験の合格体験記や勉強方法について記事にしているので、興味がある方は読んでみてください。