Amazon RDS Custom アーキテクチャ
Amazon RDS Custom アーキテクチャは Amazon RDS に基づいていますが、重要な違いがあります。RDS Custom アーキテクチャのキーコンポーネントを次の図表に示します。
VPC
Amazon RDS と同様に、RDS Custom DB インスタンスは 仮想プライベートクラウド (VPC) 内にあります。
RDS Custom DB インスタンスは、次の主要コンポーネントで構成されています。
-
Amazon EC2 インスタンス
-
インスタンスエンドポイント
-
Amazon EC2 インスタンスにインストールされるオペレーティングシステム
-
追加のファイルシステムを含む Amazon EBS ストレージ
RDS Custom のオートメーションとモニタリング
RDS Custom には、DB インスタンスの外部で実行されるオートメーションフトウェアがあります。このソフトウェアは、DB インスタンス上のエージェントと RDS Custom 環境全体内の他のコンポーネントと通信します。
RDS Customのモニタリングおよびリカバリ機能は、Amazon RDS と同様の機能を提供します。デフォルトでは、RDS Custom はフルオートメーションモードになっています。オートメーションソフトウェアには、主に次のロールがあります。
-
メトリクスを収集して通知を送信する
-
インスタンスの自動復旧を実行する
RDS カスタムオートメーションの重要な責務は、Amazon EC2 インスタンスの問題に対応することです。さまざまな理由で、ホストに障害が発生したり、到達できなくなったりすることがあります。RDS Custom は、Amazon EC2 インスタンスを再起動または置換することによってこれらの問題を解決します。
Amazon RDS Custom ホストの置換
Amazon EC2 ホストに障害が発生すると、RDS Custom は再起動を試みます。この作業に失敗すると、RDS Custom は Amazon EC2 に含まれる同じ停止およびスタート機能を使用します。ホスト交換の際にお客様が見ることのできる変更は、新しいパブリック IP アドレスのみです。
ホストの停止とスタート
RDS Custom は次のステップを自動的に実行し、ユーザーの介入は必要ありません。
-
Amazon EC2 ホストを停止します。
EC2 インスタンスは正常なシャットダウンを実行し、実行を停止します。Amazon EBS ボリュームはインスタンスに接続されたままとなり、そのデータは保持されます。インスタンスストレージのボリューム (RDS Custom ではサポートされていません) またはホストコンピュータの RAM に保存されているデータはすべて消えます。
詳細については、「Amazon EC2 ユーザーガイド」の「インスタンスの停止と起動」を参照してください。
-
Amazon EC2 ホストをスタートします。
EC2 インスタンスは、基盤となる新しいホストハードウェアに移行します。場合によっては、RDS カスタム DB インスタンスは元のホストに残ります。
ホスト交換の影響
RDS Custom では、ルートデバイスボリュームと Amazon EBS ストレージボリュームを完全に制御できます。ルートボリュームは、失いたくない重要なデータや設定を含むことがあります。
RDS Custom for Oracle は、ルートボリュームデータを含めて、すべてのデータベースと顧客データをオペレーション後に保持します。ユーザーによる介入は必要ありません。RDS Custom for SQL Server では、データベースデータは保持されますが、OS や顧客データを含むC: ドライブ上のデータ はすべて失われます。
交換プロセス後、Amazon EC2 ホストには新しいパブリック IP アドレスが割り当てられます。ホストは次のものを保持します。
-
[インスタンス ID]
-
プライベート IP アドレス
-
Elastic IP アドレス
-
インスタンスメタデータ
-
データストレージボリュームデータ
-
ルートボリュームデータ (RDS Custom for Oracleで)
Amazon EC2 のベストプラクティス
Amazon EC2 ホスト交換特徴は、Amazon EC2 障害シナリオの大部分をカバーしています。ACM のベストプラクティスに従うことをおすすめします。
-
設定または OS を変更する前に、データをバックアップしてください。ルートボリュームまたはOSが破損した場合、ホストの交換では修復できません。DB スナップショットまたはポイントインタイムリカバリからの復元が唯一のオプションとなります。
-
物理 Amazon EC2 ホストをマニュアルで停止または終了しないでください。どちらのアクションでも、インスタンスを RDS Custom サポートペリメーターの外に配置することになります。
-
(RDS Custom for SQL Server) Amazon EC2 ホストに追加のボリュームをアタッチする場合は、再起動時に再マウントするように設定します。ホストに障害が発生すると、RDS Custom はホストを自動的に停止してスタートすることがあります。
RDS Custom サポート範囲
RDS Custom は、周辺サポートと呼ばれる追加のモニタリング機能を提供しています。この追加のモニタリングにより、RDS Custom DB インスタンスがサポート対象の AWS インフラストラクチャ、オペレーティングシステム、およびデータベースを使用していることが保証されます。
サポート境界は、DB インスタンスが RDS Custom for Oracle でサポートされていない構成の修正 と RDS Custom for SQL Server DB でサポートされていない構成の修正 にリストされている要件に準拠していることを確認します。これらの要件のいずれかが満たされていないと、RDS Custom は DB インスタンスがサポートペリメーターの範囲外であるとみなします。
RDS Custom でサポートされていない構成
DB インスタンスがサポート範囲外にある場合、RDS Custom は DB インスタンスステータスを unsupported-configuration
に変更し、イベント通知を送信します。設定の問題を修正すると、RDS Custom によって DB インスタンスのステータスが available
に戻されます。
DB インスタンスが unsupported-configuration
状態のときは、次のようになります。
-
データベースにアクセスできる。例外は、データベースが予期せずシャットダウンしているため、DB インスタンスが
unsupported-configuration
である場合です。 -
DB インスタンスを変更できません。
-
DB スナップショットを作成できません。
-
自動バックアップが作成されない。
-
RDS Custom for SQL Server DB インスタンスに限り、RDS Custom は基盤となる Amazon EC2 インスタンスに障害が発生しても置換されません。ホスト置換の詳細については、「Amazon RDS Custom ホストの置換」を参照してください。
-
DB インスタンスは削除できますが、他のほとんどの RDS カスタム API オペレーションは使用できません。
-
RDS Custom は、REDO ログファイルをアーカイブして Amazon S3 にアップロードすることで、ポイントインタイムリカバリ (PITR) を引き続きサポートします。
unsupported-configuration
状態の PITR は、以下の点で異なります。-
PITR は、新しい RDS Custom DB インスタンスに完全に復元するには時間がかかることがあります。この状況は、インスタンスが
unsupported-configuration
の状態にあると、自動スナップショットもマニュアルスナップショットも取得できないためです。 -
PITRは、インスタンスが
unsupported-configuration
状態になる前に取得した最新のスナップショットから始まる、より多くの REDO ログを再生しなければなりません。 -
場合によっては、アーカイブされた redo ログファイルのアップロード機能に影響を与える変更を行ったために、DB インスタンスが
unsupported-configuration
状態になっていることがあります。例としては、EC2 インスタンスの停止、RDS カスタムエージェントの停止、EBS ボリュームのデタッチなどがあります。このような場合、PITR は DB インスタンスを最新の復元可能な時間に復元することができません。
-
サポートされていない構成のトラブルシューティング
RDS Custom は、unsupported-configuration
状態のトラブルシューティングガイダンスを提供します。ガイダンスの一部は RDS Custom for Oracle と RDS Custom for SQL Server 両方に適用されますが、その他のガイダンスはお使いの DB エンジンに依存します。エンジン別のトラブルシューティング情報については、以下のトピックを参照してください。
Amazon S3
RDS Custom for Oracle を使用する場合は、ユーザー作成の Simple Storage Service (Amazon S3) バケットにインストールメディアをアップロードします。RDS Custom for Oracle は、このバケット内のメディアを使用してカスタムエンジンバージョン (CEV) を作成します。CEVは、データベースバージョンと Amazon マシンイメージ (AMI) のバイナリボリュームスナップショットです。CEV から RDS Custom DB インスタンスを作成できます。詳細については、「Amazon RDS Custom for Oracle のカスタムエンジンバージョンでの作業」を参照してください。
RDS Custom for Oracle および RDS Custom for SQL Server の両方で、RDS Custom は、文字列 do-not-delete-rds-custom-
のプレフィックスが付いた Simple Storage Service (Amazon S3) バケットを自動的に作成します。RDS Custom は、do-not-delete-rds-custom-
S3 バケットを使用して、次のタイプのファイルを保存します。
-
RDS Custom によって作成された証跡の AWS CloudTrail ログ
-
境界アーティファクトのサポート (RDS Custom サポート範囲 を参照)
-
データベース REDO ログファイル (RDS Custom for Oracle のみ):
-
トランザクションログ (RDS Custom for SQL Server のみ)
-
カスタムエンジンバージョンのアーティファクト (RDS Custom for Oracle のみ)
次のリソースのいずれかを作成するとき、RDS Custom は、do-not-delete-rds-custom-
S3 バケットを作成します。
-
RDS Custom for Oracle の最初の CEV
-
RDS Custom for SQL Server の最初の DB インスタンス
RDS Custom は、次の組み合わせごとに 1 つのバケットを作成します。
-
AWS アカウント ID
-
エンジンタイプ (RDS Custom for Oracle または RDS Custom for SQL Server のいずれか)
-
AWS リージョン
例えば、RDS Custom for Oracle CEV を 1 つの AWS リージョン に作成すると、1 つの do-not-delete-rds-custom-
バケットが存在します。複数の RDS Custom for SQL Server インスタンスを作成し、それらが異なる AWS リージョン に存在する場合、1 つの do-not-delete-rds-custom-
バケットがそれぞれの AWS リージョン に存在します。1 つの RDS Custom for Oracle インスタンスと 2 つの RDS Custom for SQL Server インスタンスを 1 つの AWS リージョン に作成する場合、2 つのdo-not-delete-rds-custom-
バケットが存在します。
AWS CloudTrail
RDS Custom は、名前が do-not-delete-rds-custom-
で始まる AWS CloudTrail 追跡を自動的に作成します。RDS Custom サポートの周辺構成は CloudTrail からのイベントに依存して、アクションが RDS Custom オートメーションに影響を与えるかどうかを判断します。詳細については、「サポートされていない構成のトラブルシューティング」を参照してください。
RDS Custom は、最初の DB インスタンスを作成するときに追跡を作成します。RDS Custom は、次の組み合わせごとに 1 つの追跡を作成します。
-
AWS アカウント ID
-
エンジンタイプ (RDS Custom for Oracle または RDS Custom for SQL Server のいずれか)
-
AWS リージョン
RDS カスタム DB インスタンスを削除しても、このインスタンスの CloudTrail は自動的に削除されません。この場合、AWS アカウント は、削除されていない CloudTrail の料金を引き続き請求されます。RDS Custom は、このリソースの削除について責任を負いません。CloudTrail を手動で削除する方法については、「AWS CloudTrailユーザーガイド」の「トレイルを削除する」を参照してください。