TxKxZxWx's blog

AWS SAA取得に向けて学習

AWS SAA取得に向けて 54日目 「RDSの概要」 セクション9:信頼性の設計

セクション9:「信頼性の設計」

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

 

 

 

「RDSの概要」

AWSのリレーショナルデータベースの代表的なサービスであるRDSについて学ぶ。

 

 

RDS

RDSは様々なデータベースソフトウェアに対応したフルマネージド(マネージド型)なリレーショナルデータベース。

 

以下のような標準ソフトウェアを利用したデータベースを構築できる。

 

 

 

AWSのデータベース構築

AWSにおけるデータベース構築はEC2に自らインストールして構築するか、専用DBサービスを利用するかの2通り。

 

  • EC2
    EC2インスタンスにDBをインストールして、サーバー内にDBを構築していく。

    メリット:「自由にDB構成や機能を利用」
    基本的にいつも同じ設定をそのままEC2側に反映できる。

    デメリット:「構築・運用が手間」
    基本的に設置したユーザー側でDBサーバーをモニタリングして管理しなくてはならないので手間がかかる。

 

  • RDS等
    マネージドで提供されている(AWS側である程度設定を提供してくれている)

    メリット:構築・監理が楽(大部分がAWS側)
    マネージド型なのでインフラ部分のサービスの冗長性などがAWS側で保証されている。

    デメリット:AWS提供の範囲内での利用制限
    一部の機能やバージョンが使用できない。 

 

 

RDSの制約事項

RDSはマネージド型で楽な反面、AWSから提供される機能範囲内での制限を受ける。

 

 

RDSの主な制限事項

  • バージョンが限定される。
    最新バージョンはすぐに使えない。

  • キャパシティに上限がある。
    使えるキャパシティの上限がAWS側で設定されている。

  • OSへのログインができない。
  • ファイルシステムへのアクセスができない。
  • IPアドレスが固定できない。
  • 一部の機能が使えない。
  • 個別パッチは適用できない。

 

 

 

RDSの特徴

RDS自体がマネージド型の高可用なのに加え、マルチAZによるMaster/Slave構成を容易に構築することができる。

 

同期レプリケーションしたり、自動フェイルオーバーするような構成にすることによって、信頼性や耐障害性を高める構成が容易にできる。

 

 

参照専用のレプリカを最大5台(Auroraは15台)設置し、DBの読み取り処理をスケールアウトできる。


非同期でリードレプリカを作る(レプリケーション)ことによって、リードレプリカを介してデータの参照をすることで読み込み速度をスケーリングすることができる。

 

 

自動/主導でスナップショットを取得して保存管理し、耐障害性を確保。

 

S3にトランザクションログなどスナップショットを保存、管理しバックアップとして保存性を高めることができ、耐障害性やスケーリングが簡単にできることがRDSを使用するメリット。 

 

 

 

スケーリング

マネージメントコンソールやAPIからスケールアップ可能。

 

  • インスタンスタイプを変更してスケールアップ/ダウンを実施。
  • コマンドライン (AWS CLI) やAPIからストレージを数クリックで容易にスケールアップ/ダウンをする。
  • 一時的にインスタンスタイプを大きくして、その後戻すことも可能。
  • ストレージサイズは、拡張はできるが縮小はできない。

 

 

データベースシャーディングを利用してRDSの書き込み処理をスケーリングする。

 

シャーディングソフトウェアをEC2に入れて紐付けてRDSを設定することにより、
RDSを2つの構成にして、ID 0~1000 まではこっちのRDS、ID 1001~2000 まではこっちのRDSなどユーザーのIDによってデータベースのアクセス先を変えることができる。

 

 

 

DBインスタンスの暗号化

保管時のインスタンスとスナップショットの暗号化が可能(セキュリティを高める)。

 

暗号化対象

  • DBインスタンス
  • 自動バックアップ
  • リードレプリカ
  • スナップショット

 

 

暗号化方式

  • AES-256暗号化
  • AWS KMSによる鍵管理
  • リードレプリカも同じ鍵を利用
  • インスタンス作成時にのみ設定可能
  • スナップショットのコピーの暗号化/リストア可能

 

暗号化方針などを組織で作成し、それに応じでDBの暗号化処理を行うことで安全なDB管理が可能になる。