

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon RDS Custom 架構
<a name="custom-concept"></a>

Amazon RDS Custom 架構是根據 Amazon RDS，但是有重要差異。下列圖表顯示 RDS Custom 架構的關鍵元件。

![\[RDS Custom 架構元件\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/RDS_Custom_gen_architecture.png)


**Topics**
+ [

## VPC
](#custom-concept.components.VPC)
+ [

## RDS Custom 自動化與監控
](#custom-concept.workflow.automation)
+ [

## Amazon S3
](#custom-concept.components.S3)
+ [

## AWS CloudTrail
](#custom-concept.components.CloudTrail)

## VPC
<a name="custom-concept.components.VPC"></a>

與 Amazon RDS 相同，您的 RDS Custom 資料庫執行個體位於 Virtual Private Cloud (VPC) 中。

![\[RDS Custom 資料庫執行個體元件\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/RDS_Custom_instance.png)


RDS Custom 資料庫執行個體包含下列主要元件：
+ Amazon EC2 執行個體
+ 執行個體端點
+ 安裝在 Amazon EC2 執行個體上的作業系統
+ Amazon EBS 儲存體，其中包含任何其他檔案系統

## RDS Custom 自動化與監控
<a name="custom-concept.workflow.automation"></a>

RDS Custom 具有在資料庫執行個體外部執行的自動化軟體。此軟體會與資料庫執行個體上的代理程式以及整體 RDS Custom 環境中的其他元件進行通訊。

RDS Custom 監控和復原功能提供類似於 Amazon RDS 的功能。根據預設，RDS Custom 處於全自動化模式。自動化軟體具有下列主要責任：
+ 收集指標及傳送通知
+ 執行自動執行個體復原

RDS Custom 自動化的一個重要責任是回應 Amazon EC2 執行個體的問題。由於各種原因，主機可能會受損或無法連線。RDS Custom 透過重新開機或取代 Amazon EC2 執行個體來解決這些問題。

**Topics**
+ [

### Amazon RDS Custom 主機更換
](#custom-troubleshooting.host-problems)
+ [

### RDS Custom 支援周邊
](#custom-troubleshooting.support-perimeter)

### Amazon RDS Custom 主機更換
<a name="custom-troubleshooting.host-problems"></a>

如果 Amazon EC2 主機受損，則 RDS Custom 會嘗試將其重新啟動。如果此工作失敗，RDS Custom 會使用 Amazon EC2 中包含的相同停止和啟動功能。取代主機時，客戶唯一可見的變更是新的公有 IP 地址。

**Topics**
+ [

#### 停止和啟動主機
](#custom-troubleshooting.host-problems.replacement.stop-start)
+ [

#### 主機取代的影響
](#custom-troubleshooting.host-problems.replacement.host-state)
+ [

#### Amazon EC2 主機的最佳實務
](#custom-troubleshooting.host-problems.best-practices)

#### 停止和啟動主機
<a name="custom-troubleshooting.host-problems.replacement.stop-start"></a>

RDS Custom 會自動執行下列步驟，不需要使用者介入：

1. 停止 Amazon EC2 主機。

   EC2 執行個體會執行正常的關機，然後停止執行。所有的 Amazon EBS 磁碟區仍會繼續連結至執行個體，其中的資料也會持續存在。所有存放在執行個體存放區磁碟區中的資料 (RDS Custom 不支援) 或主機電腦的 RAM 中的資料都會遺失。

   如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[停止及啟動您的執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)。

1. 啟動 Amazon EC2 主機。

   EC2 執行個體會遷移至新的基礎主機硬體。在某些情況下，RDS Custom 資料庫執行個體會保留在原始主機上。

#### 主機取代的影響
<a name="custom-troubleshooting.host-problems.replacement.host-state"></a>

在 RDS Custom 中，您可以完全控制根裝置磁碟區和 Amazon EBS 儲存磁碟區。根磁碟區可能包含您不想遺失的重要資料和組態。

RDS Custom for Oracle 會在操作後保留所有資料庫和客戶資料，包括根磁碟區資料。不需要使用者介入。在 RDS Custom for SQL Server 上，會保留資料庫資料，但是 `C:` 磁碟機上的任何資料 (包括作業系統和客戶資料) 都會遺失。

在主機取代程序之後，Amazon EC2 主機會擁有新的公有 IP 地址。新主機會保留下表所示的資料和中繼資料。


| 中繼資料或資料 | RDS Custom for Oracle 保留 | RDS Custom for SQL Server 保留 | 
| --- | --- | --- | 
| EC2 執行個體 ID | 是 | 否 | 
| EC2 執行個體中繼資料 | 是 | 是 | 
| 資料儲存磁碟區資料 | 是 | 是 | 
| 根磁碟區資料 | 是 | 否 | 
| 私有 IP 地址 | 是 | 是 | 
| 彈性 IP 位址 | 是 | 是 | 

#### Amazon EC2 主機的最佳實務
<a name="custom-troubleshooting.host-problems.best-practices"></a>

Amazon EC2 主機取代功能涵蓋大多數 Amazon EC2 受損案例。建議您遵循下列最佳實務：
+ 變更組態或作業系統之前，請先備份您的資料。如果根磁碟區或作業系統損毀，主機取代也無法修復它。您唯一的選項是從資料庫快照或時間點復原還原。
+ 請勿手動停止或終止實體 Amazon EC2 主機。這兩個動作都會導致執行個體放在 RDS Custom 支援周邊外面。
+ (RDS Custom for SQL Server) 如果您將其他磁碟區連接到 Amazon EC2 主機，請將其設定為在重新啟動時重新掛載。如果主機受損，RDS Custom 可能會自動停止和啟動主機。

### RDS Custom 支援周邊
<a name="custom-troubleshooting.support-perimeter"></a>

RDS Custom 提供額外的監控功能，稱為*支援周邊*。此額外監控可確保您的 RDS Custom 資料庫執行個體使用支援的 AWS 基礎設施、作業系統和資料庫。

支援周邊會檢查資料庫執行個體是否符合 [修正 RDS Custom for Oracle 中不支援的組態](custom-troubleshooting.md#custom-troubleshooting.fix-unsupported) 和 [修正 RDS Custom for SQL Server 中不支援的組態](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported) 中所列的需求。如果有任何需求不符合，RDS Custom 會將您的資料庫執行個體視為不在支援周邊。

**Topics**
+ [

#### RDS Custom 中不支援的組態
](#custom-concept.support-perimeter.unsupported-config)
+ [

#### 對不支援的組態進行故障診斷
](#custom-concept.support-perimeter.fix-unsupported-config)

#### RDS Custom 中不支援的組態
<a name="custom-concept.support-perimeter.unsupported-config"></a>

如果資料庫執行個體不在支援周邊，RDS Custom 會將資料庫執行個體的狀態變更為 `unsupported-configuration`，並傳送事件通知。修正組態問題之後，RDS Custom 會將資料庫執行個體狀態變更回 `available`。

當資料庫執行個體處於 `unsupported-configuration` 狀態時，以下為真：
+ 您的資料庫可連線。但資料庫執行個體處於 `unsupported-configuration` 狀態時則例外，因為資料庫會意外關閉。
+ 您無法修改資料庫執行個體。
+ 您無法擷取資料庫快照。
+ 不會建立自動備份。
+ (僅適用 RDS Custom for SQL Server 資料庫執行個體) RDS Custom 不會更換故障的基礎 Amazon EC2 執行個體。如需主機更換的詳細資訊，請參閱 [Amazon RDS Custom 主機更換](#custom-troubleshooting.host-problems)。
+ 您可以刪除資料庫執行個體，但大多數其他 RDS Custom API 操作無法使用。
+ RDS Custom 會透過封存重做日誌檔案並將其上傳至 Amazon S3 的方式，繼續支援時間點復原 (PITR)。處於 `unsupported-configuration` 狀態的 PITR 在以下方面有所不同：
  + PITR 可能需要很長的時間才能完全還原到新的 RDS Custom 資料庫執行個體。發生此情況是因為執行個體處於 `unsupported-configuration` 狀態時，您無法拍攝自動或手動快照。
  + PITR 必須從執行個體進入 `unsupported-configuration` 狀態之前擷取的最近快照開始，重新播放更多重做日誌。
  + 在某些情況下，資料庫執行個體處於 `unsupported-configuration` 狀態是因為您所做的變更使得封存的重做日誌檔案無法上傳。範例包括停止 EC2 執行個體、停止 RDS Custom 代理程式，以及卸離 EBS 磁碟區。在這類情況下，PITR 無法將資料庫執行個體還原至最新的可還原時間。

#### 對不支援的組態進行故障診斷
<a name="custom-concept.support-perimeter.fix-unsupported-config"></a>

RDS Custom 針對 `unsupported-configuration` 狀態提供了故障診斷指引。雖然部分指引同時適用於 RDS Custom for Oracle 和 RDS Custom for SQL Server，但其他指引則取決於您的資料庫引擎。如需引擎專屬的故障診斷資訊，請參閱下列主題：
+ [修正 RDS Custom for Oracle 中不支援的組態](custom-troubleshooting.md#custom-troubleshooting.fix-unsupported)
+ [修正 RDS Custom for SQL Server 中不支援的組態](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported)

## Amazon S3
<a name="custom-concept.components.S3"></a>

若您使用 RDS Custom for Oracle，則會將安裝媒體上傳至使用者建立的 Amazon S3 儲存貯體。RDS Custom for Oracle 使用此儲存貯體中的媒體來建立自訂引擎版本 (CEV)。*CEV* 是資料庫版本和 Amazon Machine Image (AMI) 的二進位磁碟區快照。您可從 CEV 建立 RDS Custom 資料庫執行個體。如需詳細資訊，請參閱[使用 Amazon RDS Custom for Oracle 的自訂引擎版本](custom-cev.md)。

若為 RDS Custom for Oracle 和 RDS Custom for SQL Server 兩者，RDS Custom 會自動建立以字串 `do-not-delete-rds-custom-` 為字首的 Amazon S3 儲存貯體。RDS Custom 使用 `do-not-delete-rds-custom-` S3 儲存貯體來儲存下列類型的檔案：
+ AWS CloudTrail RDS Custom 所建立線索的 日誌
+ 支援周邊成品 (請參閱 [RDS Custom 支援周邊](#custom-troubleshooting.support-perimeter))
+ 資料庫重做日誌檔案 (僅限 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 的首個資料庫執行個體

RDS Custom 為下列各項組合建立一個儲存貯體：
+ AWS 帳戶 ID
+ 引擎類型 (RDS Custom for Oracle 或 RDS Custom for SQL Server)
+ AWS 區域

例如，如果您在單一儲存貯體中建立 RDS Custom for Oracle CEVs AWS 區域，則存在一個儲存`do-not-delete-rds-custom-`貯體。如果您建立多個 RDS Custom for SQL Server 執行個體，且它們位於不同的 中 AWS 區域，則每個執行個體中都會有一個儲存`do-not-delete-rds-custom-`貯體 AWS 區域。如果您在單一 中建立一個 RDS Custom for Oracle 執行個體和兩個 RDS Custom for SQL Server 執行個體 AWS 區域，則有兩個`do-not-delete-rds-custom-`儲存貯體。

## AWS CloudTrail
<a name="custom-concept.components.CloudTrail"></a>

RDS Custom 會自動建立名稱開頭為 的 AWS CloudTrail 線索`do-not-delete-rds-custom-`。RDS Custom 支援依賴來自 CloudTrail 之事件的周邊，來決定您的動作是否會影響 RDS Custom 自動化。如需詳細資訊，請參閱[對不支援的組態進行故障診斷](#custom-concept.support-perimeter.fix-unsupported-config)。

RDS Custom 在您建立第一個資料庫執行個體時建立追蹤。RDS Custom 為下列各項組合建立一個追蹤：
+ AWS 帳戶 ID
+ 引擎類型 (RDS Custom for Oracle 或 RDS Custom for SQL Server)
+ AWS 區域

刪除 RDS Custom 資料庫執行個體時，不會自動刪除此執行個體的 CloudTrail。在此情況下，您的 會 AWS 帳戶 繼續支付未刪除的 CloudTrail。RDS Custom 不負責刪除此資源。若要瞭解如何手動刪除 CloudTrail，請參閱*《AWS CloudTrail 使用者指南》*中的[刪除追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-delete-trails-console.html)。