AmazonRDSとDNS
重要度⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
結論をいうとアプリケーションサーバーからRDSに接続するとき、IPアドレスでの直通信はしません。
RDSインスタンスとの接続情報に関するドキュメント
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.Connect.EndpointAndPort.html?utm_source=chatgpt.com
DB インスタンスの接続情報には、エンドポイント、ポート、およびマスターユーザーなどの有効なデータベースユーザーが含まれます。例えば、MySQL DB インスタンスの場合、エンドポイントの値が mydb.123456789012.us-east-1.rds.amazonaws.com であるとします。この場合、ポート値は 3306 であり、データベースユーザーは admin です。この情報を考慮して、接続文字列に次の値を指定します。
つまり、エンドポイント用のURLを指定して接続します。
RDSはプライマリ/セカンダリ構成で冗長化されていますが、セカンダリをプライマリに昇格させる時に内部ではこのDNSレコードを切り替えるという動作を行います。そのため、DNSを経由する通信にしておかなければフェイルオーバーができなくなってしまいます。(←SAP試験で結構聞かれる)
RDS 7日間問題
重要度⭐️⭐️⭐️⭐️⭐️⭐️⭐️
RDSは、通常の方法だと最大7日間までしか停止できない。
7日経つと自動的に起動してしまいます。(もちろん課金も発生。)
この仕様のせいで私は2万近く請求が来たことがあります。
個人で試す場合、RDSは削除しましょう。
DBの勉強をしたいだけであればEC2インスタンスにPostgreやMySQLを入れるでも良いかと思います。
⭐️RDSの停止に関するドキュメント
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_StopInstance.html
DBインスタンスの停止の仕組み
停止操作は、次の段階で実行されます。
DB インスタンスは通常のシャットダウンプロセスを開始します。
DB インスタンスのステータスが stopping に変更されます。
インスタンスは最大 7 日間連続して実行を停止します。
DB インスタンスのステータスが stopped に変更されます。
RDSはリージョンサービス
重要度⭐️⭐️⭐️⭐️
RDSはリージョンサービスなのでグローバルサービスには向きていない
グローバルなユースケースでは、『AuroraGlobalDatabase』を使う(SAPでよく出る)
AmazonRDSの最大同時接続数
重要度⭐️⭐️⭐️⭐️⭐️
インスタンスタイプとRDSの設定で決定
⚫︎AmazonRDSのクォータに関するドキュメント
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections
同時データベース接続の最大数は、DB エンジンのタイプと DB インスタンスクラスのメモリ割り当てによって異なります。最大接続数は、通常は DB インスタンスに関連付けられたパラメータグループで設定されます。例外は、Microsoft SQL Server Management Studio (SSMS) の DB インスタンスのサーバープロパティで設定される Microsoft SQL Server です。
Multi-AZ RDS
重要度⭐️⭐️⭐️⭐️
Multi-AZ設定では、複数のリージョンに読み取り専用のDBを複製/同期し、プライマデータベースが落ちた時に自動的にフェイルオーバーできる。
フェイルオーバー時間
MultiAZのRDSのフェイルオーバーダウンタイムは『60秒以上』でしかサポートされていない。
(Auroraは30秒未満)
SAPの問題文でRTOが指定されてる問題のフェイルオーバーでよく問われる。
後述するRDS Proxyを使うとRDsのフェイルオーバー時間を30秒未満にできます。
RDSの復元とバックアップ
重要度⭐️⭐️⭐️⭐️⭐️
トランザクションログのバックアップ
RDSは5分間隔でトランザクションログをS3に出力する
トランザクションログとは?
データベース内で発生したすべての変更操作(INSERT、UPDATE、DELETEなど)を時系列で記録するログファイル
⚫︎トランザクションログに関するドキュメント
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PIT.html
DBインスタンスのバックアップ
DBインスタンス自体のバックアップ最大保有期間は『35日』が最大
⚫︎DBインスタンスのバックアップ/復元に関するドキュメント
https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/backup-recovery/rds.html
自動バックアップは、新しい DB インスタンスを作成するとデフォルトでオンになっています。
Amazon RDS は、DB インスタンスの作成時に定義したバックアップウィンドウ中にデータの日次バックアップを実行します。自動バックアップの保存期間は最大 35 日まで設定できます。
RDS proxy
Multi-AZと同時に使われることが多い。
データベース間との通信を管理してくれるため、障害時のコネクションのフェイルオーバーやトランザクション維持が可能となる。
⚫︎RDS Proxyに関するドキュメント
https://aws.amazon.com/jp/rds/proxy/
Amazon RDS Proxy では、アプリケーションがデータベースと確立した接続をプールおよび共有でき、データベースの効率とアプリケーションのスケーラビリティが向上します。Amazon RDS Proxy を使用すると、Amazon Aurora と Amazon RDS データベースのフェイルオーバー時間が最大 66% 短縮し、AWS Secrets Manager および AWS Identity and Access Management (IAM) との統合によりデータベースの認証情報、認証、アクセスの管理が可能となります。