0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ソリューションアーキテクト対策_RDS篇

Last updated at Posted at 2022-09-18

はじめに

試験勉強した際のメモを自分用に記事化。
内容は公式やBlack Beltの写経ですので目新しいことはありません:pray:

RDS

RDSのセキュリティ保護について

データベースの暗号化は、データベースの作成時に行うことができる。

・暗号化の対象
DBインスタンス、自動バックアップ、リードレプリカ、スナップショット

・暗号化方式
AES-256、AWS KMSによる鍵管理
インスタンス作成時にのみ暗号化が可能
スナップショットのコピーの暗号化/リストアが可能

ちなみにDBのリストアとはバックアップしていたスナップショットを突っ込んだり、複製したりの意味。

RDSのリードレプリカについて

RDSは最大5個のリードレプリカを作成して、読み取り処理の負荷を分散させることができる。
それにより、RDSインスタンスのスケールアップを実施することなくコスト最適な対応が可能。

・ちなみにRDSのレプリケーションとは
複製(レプリカ)を作ること。
マスターのデータベースと同じ内容のデータベースを作成するため、負荷分散やホットスタンバイとしての利用が可能。

・ちなみにRDSの主系はマスター、副系をスレーブという。

リードレプリカについては公式がわかりやすい。
https://aws.amazon.com/jp/rds/features/read-replicas/

マスター、スレーブ、リードレプリカを図にすると以下になる。

スクリーンショット 2022-09-20 11.44.26.png

RDSをマルチAZで構成していたら

プライマリに障害が発生した場合、自動でフェールオーバーが発生し切り替わる。
CNAMEレコードをスタンバイから切り替えてプライマリに昇格する。

RDSのパフォーマンス改善

リードレプリカを増加(最大5台)することでパフォーマンスを向上させることが可能。
アプリケーションの大容量読み込みトラフィックを提供することができるらしい。

ちなみにリードレプリカは非同期的にレプリケートされる個別のDBインスタンスであるため、
レプリケーションデータが遅れることが多く、最新のトランザクションのいくつかを表示できない可能性がある。

RDSプロキシとは

RDSの機能。例えばLambdaとRDSを連携させたい場合はRDSプロキシを間に挟んで連携する、コネクション管理機能のこと。
(以前はこの機能が実装されていなかったらしい)

RDSのスケーリングについて

RDSオートスケーリングという機能が存在する。
データ容量が不足した際に、容量を自動でスケーリングする機能。

容量をアップするのであって、パフォーマンスを向上させる訳ではないので注意すること★

RDSとファイルシステム

RDSはファイルシステムへのアクセスがサポートされていないため、ファイルシステムへのアクセスに基づく設定や自社管理を実現するためにはEC2インスタンスにデータベースをインストールしてデータベースサーバーをカスタムで構築する必要がある。

RDSとPostgreSQL

・RDSはPostgreSQL13のサポートを開始している

・RDSではPostGISをサポートしている。
※PostGISはPostgreSQLオブジェクトRDB用の地理空間データベース拡張。地理オブジェクトがサポートされているので、SQLで場所のクエリを実行できるようになる

・RDSはEC2インスタンスとの連携やオンプレミスサーバーとの連携が可能

RDSへの負荷分散(効果が無い対応)

RDSへのアクセス集中を軽減するためにSQSによるキューイング処理を行う。。のは一見効果がありそうだが、負荷分散にはならない。
RDSへのリクエスト処理を並列化しても処理するRDS側のDBインスタンス数は変わらないのが理由。

RDSとOracle RAC

RDSではRAC構成は実現できないので、EC2インスタンスにOracleをインストールして構成する。

ちなみにRACはOracleのクラスタリング機能で、複数のサーバーで1つのデータベースを構成。
「負荷分散」「拡張性向上」「耐久性向上」を実施することができる。

RDSの読み取りパフォーマンス向上

RDSの読み取りパフォーマンスを向上させるためには以下のような対応を行う。

・RDSのリードレプリカを追加して、読み取り処理を分散させる
・Elasticacheによるキャッシュレイヤーを追加して、アクセスが集中する一部クエリをキャッシュ処理することで高速処理を実現し、RDSへの負荷を減少させる。
・ストレージタイプをIOPSの大きなサイズに変更することで、RDS本体のI/Oパフォーマンスを向上させる。
※IOPSはHDDやSSDの性能指標のひとつ

この中で用意に実行できてプロセスの改善効果が高いのはリードレプリカ。
RDSリードレプリカは、DBインスタンスのパフォーマンスと耐久性を強化する。
この機能により、読み取りが多いデータベースワークロードの場合、単一のDBインスタンスの容量の制約を超えて柔軟にスケールアウトできる。
既存のDBインスタンスに対してマネジメントコンソール画面から容易に追加することが可能。

混同しやすい点

RDSインスタンスのサイズをアップグレードする

IOPS性能によってパフォーマンスは向上するが、読み取り処理のスケーリングにはリードレプリカの方が効果的。

RDSのオートスケーリングを有効化する

スケーリングによりデータ容量の増強が可能になるが、パフォーマンスの向上にはならない

インスタンスタイプの変更

ストレージ最適化インスタンスなど、インスタンスの利用目的に合ったインスタンスタイプに変更することで、その特質に応じた性能が向上する可能性はある。
ただし、インスタンスタイプをマグネティックに変更することで、逆に性能が悪くなる可能性が高い。

おわりに

引き続き追記します!

以上です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?