RDS(Relational Database Service)
サービス概要
リレーショナルデータベースを簡単にセットアップ、運用、スケーリングできるウェブサービス。
費用対効果に優れた拡張機能を備え、一般的なデータベース管理タスクを管理。
特徴
- サーバーを購入するときは、CPU、メモリ、ストレージ、IOPS をすべて一緒にまとめて入手可能。
- バックアップ、ソフトウェアパッチ、自動的な障害検出、および復旧を管理。
- 自動バックアップ実行可能。または、手動で独自のバックアップスナップショットを作成可能。これらのバックアップを使用してデータベースを復元可能。
- プライマリインスタンスと同期しているセカンダリインスタンスがあると、問題が発生したときにセカンダリインスタンスにフェイルオーバーできるため、高可用性を実現できる。
- MySQL、MariaDB、PostgreSQL、Oracle、Microsoft SQL Server など既に使い慣れたデータベース製品を使用可能。
- IAMを使用してユーザーとアクセス許可を定義すると、RDSデータベースにアクセスできるユーザーを制御可能。また、VPCに配置すると、データベースを保護できる。
- DBインスタンス
- クラウド内の独立したデータベース環境。
- DB インスタンスには、ユーザーが作成した複数のデータベースを含めることができる。
- MySQL、MariaDB、PostgreSQL、Oracle、および Microsoft SQL Serverが実行可能。
- ストレージには、マグネティック、汎用 (SSD)、Provisioned IOPS (PIOPS) の 3 タイプがある。
- 汎用SSDはボリュームサイズによって、ボリュームのベースパフォーマンスレベルや I/O クレジットを取得する速さが決まる。
- マルチAZ配置=複数AZのDBインスタンスを実行可能。AmazonによりセカンダリスタンバイDBインスタンスが別AZで自動的にプロビジョニングされる。
- プライマリDBインスタンスは、同期的にAZ間でセカンダリインスタンスにレプリケートされる。データの冗長性およびフェイルオーバーサポートを提供し、I/Oフリーズを排除して、システムのバックアップの際のレイテンシーのスパイクを最小限に抑える。
- セキュリティグループにより、DB インスタンスへのアクセスを制御する。制御するには、アクセスを許可する IP アドレスの範囲または Amazon EC2 インスタンスを指定。
種類やタイプ
ストレージタイプ
| | レイテンシー | ユースケース |
|:-----------------|:------------------|:-------------------|:-------------------|
| 汎用 (SSD) | ベースラインI/Oパフォーマンスは1GiB あたり3IOPS。ボリュームが大きいほどパフォーマンスが向上する。 | さまざまなワークロードで最適。 ||
| マグネティック | 下位互換性としてサポートされているストレージ。 |利用にはいくつかの制限が設けられており、非推奨。 ||
| Provisioned IOPS (PIOPS)| DB インスタンスの作成時に、IOPS レートとボリュームのサイズを指定。 | 高速で一貫した I/O 性能を必要とする本稼働アプリケーション。 ||
類似サービスとの比較
RDS | DynamoDB | Redshift | ElastiCache | |
---|---|---|---|---|
概要 | ・リレーショナルデータベース。 ・主なDBエンジンをサポート、ツールがそのまま使えるため、オンプレからの移行に便利。 ・データベースソフトウェアのパッチは自動パッチが可能。 |
・NoSQL データベースサービス。 ・結果整合性 ・write直後のreadでは整合性が取れない場合あり。 ・「強い整合性」オプションを指定すると性能は落ちる。 ・レコードのサイズに上限あり。 ・リージョンサービスでありプライベートネットワークからはNAT経由でアクセスする必要あり。 |
・データウェアハウスタイプ ・スケーラブル ・高パフォーマンス |
・メモリーキャッシュタイプ ・Memcached:Key-Value Store形式のメインメモリキャッシュ。マルチノートのキャッシュクラスタ。 ・Redis:Memcached:Key-Value Store形式のメインメモリキャッシュ。 |
場所 | AZ サービス(VPC内に配置) | リージョン | AZ サービス | AZ サービス(VPC内に配置) |
バックアップ | スケージュールで1日1回取得可能(手動可)※ただし、バックアップ中はI/O停止、止めたくない場合はマルチAZ利用する必要あり | - | - | (memcached)バックアップ機能はなし(Redis)Snapshotによる永続化 |
ユースケース | OS以下レイヤの管理不要、高可用性な、既存データベースの利用など | 大量のオンライントランザクション処理など | 大容量データの分析など | DBの負荷低減用のメモリキャッシュ |
ベストプラクティス
- RDSリードレプリカ(非同期レプリケーション)を利用することで以下の効果を期待できる。
- DBインスタンスの読み取り頻度の高いDBのワークロードを緩和することで、全体の読み込みスループットを向上させる。
- 必要に応じてスタンドアロンDBに昇格させ、マスターDBのバックアップとして使用できる。
- リードレプリカを使用して、マスターDBやスタンバイDBへ影響することなく、レポート生成をできる。
- データベース作成時にRDSの暗号化オプションを有効化することで、インスタンスとスナップショットを暗号化できる。暗号化には「データ保存時の暗号化」と「通信アクセスの暗号化」()がある。
- メモリ、CPU、ストレージの使用状況をモニタリングする。Amazon CloudWatchで通知するように設定し、システムのパフォーマンスと可用性を維持する。
- 自動バックアップを有効にし、1 日のうちで書き込み IOPS が低くなる時間帯にバックアップが実行されるようにバックアップウィンドウを設定する。
- 読み取りリクエストの増加によるRDSインスタンスの負荷を抑えるには下記の方法などがある。
- RDSリードレプリカの作成
- RDSインスタンスのタイプを高性能なものにする。