はじめに
SAA試験の学習備忘録として記事にしました。適宜更新していきたいと思っています!
間違いがあればコメントで教えてください。。m(_ _)m
RDSとは
Amazon Relational Database Service(Amazon RDS)の略でAWSクラウドのリレーショナルデータベースを簡単にセットアップして運用することのできるサービス。
マネージドデータベースサービスであり、ほとんどの管理タスクはAWS側が担ってくれるため、アプリケーションやユーザー管理に集中できる。
以下のDBエンジンをサポートしている。
- Amazon Aurora
- PostgreSQL
- MySQL
- MariaDB
- Oracle Database
- Microsoft SQL Server
RDSの特徴
管理が容易
RDSは、データベースのセットアップ、運用、およびスケールを容易にするフルマネージドサービスである。
バックアップ、自動スナップショット、ソフトウェアパッチの適用、ハードウェアの管理など、多くの管理タスクをAWSが自動化するため、ユーザーはアプリケーションの開発と最適化に集中できる。
高パフォーマンスの実現が可能
RDSはさまざまなインスタンスタイプが提供されており、アプリケーションの要求に合わせて性能をカスタマイズ可能。
また、プロビジョンドIOPSストレージを利用することで、高いIO性能を必要とするワークロードを効率的に処理可能になる。
高可用性と耐久性
Amazon RDSは、マルチAZ配置をサポートしており、自動フェイルオーバー機能を提供している。
この機能により、データベースの稼働率を維持し、障害時のダウンタイムを最小限に抑えることが可能。また、自動バックアップとポイントインタイムリカバリーにより、データの整合性を確保しやすくなっている。
セキュリティ
Amazon RDSでは、データの暗号化を簡単に設定することができる。ストレージとバックアップのデータ暗号化が可能で、TLS/SSLを使用してデータ転送中の暗号化もサポートしている。また、IAMと統合されているため、リソースに対するきめ細かなアクセス制御を実現できる。
高いスケーラビリティ
Amazon RDSは、ストレージのスケーリングと計算リソースのスケーリングを迅速かつ柔軟に実行できる。
アプリケーションの需要に応じてデータベースインスタンスをスケールアップまたはスケールダウンできるため、過剰なリソースのプロビジョニングやコストの無駄を避けられる。また、リードレプリカを使用してリード負荷を分散させることも可能。
コスト面の最適化
従量課金モデルを採用しており、使用したリソースに応じた料金が発生する。これにより、必要なリソースのみを利用してコストを効率的に管理することが可能になる。
標準ストレージ(汎用SSD)やプロビジョンドIOPSストレージなど、ワークロードに応じたストレージタイプを選択できるほかにも、リザーブドインスタンスなど長期間の利用が見込まれる場合、リザーブドインスタンスを活用することで、オンデマンド料金に比べて最大約70%のコスト削減が可能。
参考:Amazon RDS リザーブドインスタンス
その他AWSで用意されているDB
全部はないですが、以下ピックアップします。
DynamoDB
高速で柔軟なNoSQLデータベースサービス。フルマネージドで、低レイテンシかつ高スループットを提供する。
ドキュメントデータとキーバリューデータの保存をサポートし、スケーラブルな分散型データストレージを必要とするアプリケーションに適している。
サーバーレスであるため、プロビジョニングやインフラ管理の負担がなく、オンデマンドでスケール可能。そのほか、DynamoDB Streamsやトランザクション機能など、より高度な機能も備えている。
Redshift
高速でフルマネージドなクラウドデータウェアハウスサービス。
大規模なデータ分析を低コストで実現し、ペタバイト規模のデータを高速にクエリできる。標準SQLやBIツールと互換性があり、データレイクとの統合も容易である。さらに、Redshift Spectrumを使うことで、データを移動せずにS3上のデータを直接クエリすることも可能。
ElastiCache
フルマネージドなインメモリデータストアおよびキャッシュサービス。
低レイテンシで高スループットを必要とするアプリケーションに最適。RedisとMemcachedの2つのエンジンをサポートし、データベースクエリの高速化や、リアルタイムアプリケーションの応答時間短縮に役立つ。
アーキテクチャ
他にもあると思いますが、マルチAZとリードレプリカをピックアップして整理します。
マルチAZ
複数のAZにまたがるようにRDSを構築することで、「高可用性」の実現 を目的としている。
1つのAZのみにRDSインスタンスを配置するアーキテクチャの場合、地震などの災害によりAZに障害が発生するとRDSインスタンスにも影響を与える可能性がありアプリケーションの提供が継続できなくなる。
このようにRDSやEC2などのインスタンスが1台しかないことをシステムの 単一障害点(Single Point Of Failure) という。
また、同期レプリケーション(Synchronous replication) であり、レプリケーションが完了するのを待ってから、クエリ等によるスレーブ(マスターに対して複製されたRDSインスタンスを指す)への書き込み処理を受け付けるため、マスターとスレーブ間の通信の分だけ遅延が発生する。
画像引用元:Amazon RDS のマルチ AZ DB インスタンスデプロイ
リードレプリカ
読み取り専用のDBとしてマスタDBと同じRDSインスタンスを構築することで読み取りスループットを向上させることで拡張性(スケーラビリティ)の向上 を実現する。
ユーザーのDBアクセス数の増加に応じて、DBの読み取り性能を向上させたい場合に読み取り専用のDBとしてリードレプリカを作成することで対応することが可能になる。
マルチAZの同期レプリケーションに対して、リードレプリカ作成の場合は 非同期でレプリケーションする(Asynchronous replication) ため、レプリケーションの完了を待たずにスレーブへの書き込み処理を受け付ける。