

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

# Amazon VPC 和 Amazon RDS
<a name="USER_VPC"></a>

Amazon Virtual Private Cloud (Amazon VPC) 可讓您在 Virtual Private Cloud (VPC) 中啟動 Amazon RDS 資料庫執行個體叢集等 AWS 資源。

使用 VPC 時，您可以掌控您的虛擬聯網環境。您可以選擇自己的 IP 地址範圍、建立子網路，以及設定路由和存取控制清單。在 VPC 中執行資料庫執行個體無需額外成本。

帳戶有預設 VPC。系統會在預設 VPC 中建立所有新的資料庫執行個體，除非您另外指定。

**Topics**
+ [在 VPC 中使用資料庫執行個體](USER_VPC.WorkingWithRDSInstanceinaVPC.md)
+ [更新資料庫執行個體的 VPC](USER_VPC.VPC2VPC.md)
+ [在 VPC 中存取資料庫執行個體的案例](USER_VPC.Scenarios.md)
+ [教學課程：建立要與資料庫執行個體搭配使用的 VPC (僅限 IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md)
+ [教學課程：建立要與資料庫執行個體搭配使用的 (VPC)(雙堆疊模式)](CHAP_Tutorials.CreateVPCDualStack.md)
+ [將不在 VPC 中的資料庫執行個體移入 VPC](USER_VPC.Non-VPC2VPC.md)

在以下內容中，您可以找到 Amazon RDS 資料庫執行個體的 VPC 功能相關的討論。如需 Amazon VPC 的詳細資訊，請參閱 [Amazon VPC 入門指南](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/)和 [Amazon VPC 使用者指南](https://docs.aws.amazon.com/vpc/latest/userguide/)。

# 在 VPC 中使用資料庫執行個體
<a name="USER_VPC.WorkingWithRDSInstanceinaVPC"></a>

您的資料庫執行個體位在虛擬私有雲端 (VPC) 內。VPC 是一種虛擬網路，在邏輯上與 AWS 雲端中的其他虛擬網路隔離。Amazon VPC 可讓您在 VPC 中啟動 AWS 資源，例如 Amazon RDS 資料庫執行個體或 Amazon EC2 執行個體。VPC 可以是您帳戶隨附的預設 VPC，或是您自行建立的 VPC。所有 VPCs都與 AWS 您的帳戶相關聯。

您的預設 VPC 有三個子網路，可供您在 VPC 內隔離資源。預設的 VPC 也有網際網路閘道，只要利用網際網路閘道，即可允許從 VPC 以外的位置存取 VPC 內的資源。

如需涉及 VPC 內外 Amazon RDS 資料庫執行個體的藍本清單，請參閱 [在 VPC 中存取資料庫執行個體的案例](USER_VPC.Scenarios.md)。

**Topics**
+ [在 VPC 中使用資料庫執行個體](#Overview.RDSVPC.Create)
+ [VPC 加密控制](#USER_VPC.EncryptionControl)
+ [使用資料庫子網路群組](#USER_VPC.Subnets)
+ [共用子網路](#USER_VPC.Shared_subnets)
+ [Amazon RDS IP 定址](#USER_VPC.IP_addressing)
+ [在 VPC 中的網際網路中隱藏資料庫執行個體](#USER_VPC.Hiding)
+ [在 VPC 中建立資料庫執行個體](#USER_VPC.InstanceInVPC)

於下列教學課程中，您可學習建立可用於常見 Amazon RDS 案例的 VPC：
+ [教學課程：建立要與資料庫執行個體搭配使用的 VPC (僅限 IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md)
+ [教學課程：建立要與資料庫執行個體搭配使用的 (VPC)(雙堆疊模式)](CHAP_Tutorials.CreateVPCDualStack.md)

## 在 VPC 中使用資料庫執行個體
<a name="Overview.RDSVPC.Create"></a>

在 VPC 中使用資料庫執行個體的要訣如下：
+ 您的 VPC 必須至少要有兩個子網路。這些子網路必須位於 AWS 區域 您要部署資料庫執行個體的 中的兩個不同可用區域。*子網路*是指可供您指定之 VPC 的 IP 地址範圍區段，您可根據安全與運作需求將資料庫執行個體分組。

  對於異地同步備份部署，在 中為兩個或多個可用區域定義子網路， AWS 區域 可讓 Amazon RDS 視需要在另一個可用區域中建立新的待命。即使是單一可用區部署也務必要這麼做，以便未來需要將它們轉換為異地同步備份部署。
**注意**  
本地區域的資料庫子網路群組只能有一個子網路。
+ 如果您要開放資料庫執行個體在 VPC 中供公開存取，須啟用 VPC 屬性 *DNS hostnames* (DNS 主機名稱) 和 *DNS resolution* (DNS 解析)。
+ 您的 VPC 必須具備您所建立的資料庫子網路群組。您可以透過指定您所建立的子網路來建立資料庫子網路群組。Amazon RDS 會選擇該子網路群組內的子網路和 IP 地址，以與您的資料庫執行個體建立關聯。資料庫執行個體使用包含子網路的可用區域。
+ 您的 VPC 必須具備能允許存取資料庫執行個體的 VPC 安全群組。

  如需詳細資訊，請參閱[在 VPC 中存取資料庫執行個體的案例](USER_VPC.Scenarios.md)。
+ 您每個子網路中的 CIDR 區塊大小必須足以容納備用 IP 地址，以供 Amazon RDS 在維護活動 (包括容錯移轉與運算擴展) 期間使用。例如，10.0.0.0/24 和 10.0.1.0/24 等範圍通常就夠大了。
+ VPC 的*執行個體租用*屬性可以是 *default (預設)* 或 *dedicated (專用)*。所有預設 VPC 已將執行個體租用屬性設為預設，且預設的 VPC 可支援任何資料庫執行個體類別。

  若您選擇讓資料庫執行個體位於執行個體租用屬性設為「專用」的專屬 VPC 中，資料庫執行個體的資料庫執行個體類別必須選擇獲核准的 Amazon EC2 專用預留執行個體類型。舉例來說，r5.large EC2 專用預留執行個體對應到 db.r5.large 資料庫執行個體類別。如需 VPC 中執行個體租用的相關資訊，請參閱《Amazon Elastic Compute Cloud 使用者指南》**中的[專用執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)。

  如需進一步了解專用執行個體中可能出現的執行個體類型，請參閱 Amazon EC2 定價頁面上的 [Amazon EC2 專用執行個體](https://aws.amazon.com/ec2/purchasing-options/dedicated-instances/)。
**注意**  
將執行個體租用屬性設定為專用於資料庫執行個體時，並不保證資料庫執行個體會在專用執行個體上執行。
+ 選項群組指派給資料庫執行個體後，就會與資料庫執行個體的 VPC 建立關聯。在這樣的連結設定下，若嘗試將資料庫執行個體還原至不同的 VPC，將無法使用指派給資料庫執行個體的選項群組。
+ 若將資料庫執行個體還原至不同的 VPC，您必須將預設選項群組指派給該資料庫執行個體，指派連結至該 VPC 的選項群組，或是建立新的選項群組並將其指派給該資料庫執行個體。若使用 Oracle TDE 等持續或永久選項，將資料庫執行個體還原至不同的 VPC 時，您必須建立包含持續或永久選項的新選項群組。

## VPC 加密控制
<a name="USER_VPC.EncryptionControl"></a>

VPC 加密控制可讓您針對 VPCs 內的所有網路流量強制執行encryption-in-transit。透過確保在指定的 VPCs 中只能佈建具備加密功能的 Nitro 型硬體，來使用加密控制來符合法規合規要求。加密控制也會在 API 請求時間攔截相容性問題，而不是在佈建期間。您現有的工作負載會繼續運作，而且只會封鎖新的不相容請求。

將 VPC 控制模式設定為 ，以設定您的 VPC 加密控制：
+ *停用* （預設）
+ *監控*
+ *強制執行*

若要檢查 VPC 目前的控制模式，請使用 AWS 管理主控台 或 [DescribeVpcs](https://docs.aws.amazon.com//AWSEC2/latest/APIReference/API_DescribeVpcs.html) CLI 或 API 命令。

如果您的 VPC 強制執行加密，您只能佈建支援該 VPC 中傳輸中加密的 Nitro 型資料庫執行個體。如需詳細資訊，請參閱 [資料庫執行個體類別的類型](Concepts.DBInstanceClass.Types.md)。如需 Nitro 執行個體的相關資訊，請參閱《*Amazon EC2 使用者指南*》中的[在 AWS Nitro 系統上建置的執行個體](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)。

**注意**  
如果您嘗試在加密強制執行的 VPC 中佈建不相容資料庫執行個體，Amazon RDS 會傳回`VpcEncryptionControlViolationException`例外狀況。

## 使用資料庫子網路群組
<a name="USER_VPC.Subnets"></a>

*Subnets* (子網路) 是可供您指定之 VPC 的 IP 地址範圍區段，您可根據安全與運作需求將資源分組。*資料庫子網路群組*是一種子網路集合 (通常為私有)，您必須先在 VPC 中建立這些群組，然後指定群組供您的資料庫執行個體使用。透過使用資料庫子網路群組，您可以在使用 AWS CLI 或 RDS API 建立資料庫執行個體時指定特定 VPC。如果使用主控台，您可以選擇要使用的 VPC 和子網路群組。

各個資料庫子網路群組在指定的 AWS 區域中，皆應在至少兩個可用區域中具有子網路。在 VPC 中建立資料庫執行個體時，您必須為其選擇資料庫子網路群組。從資料庫子網路群組中，Amazon RDS 會選擇子網路和該子網路內的 IP 地址，以便與中的資料庫執行個體建立關聯。資料庫使用包含子網路的可用區域。 Amazon RDS 一律會從具有可用 IP 位址空間的子網路指派 IP 位址。

若多可用區域部署的主要資料庫執行個體發生故障，Amazon RDS 可擢升相對應的待命執行個體，稍後使用任一其他可用區域子網路的 IP 地址建立新的待命執行個體。

資料庫子網路群組中的子網路可設為公開或私有，視您針對子網路的網路存取控制清單 (網路 ACL) 和路由表所設定的組態而定，子網路為公開或私有。若要使資料庫執行個體可公開存取，其資料庫子網路群組中的所有子網路皆必須為公有。若與可公開存取的資料庫執行個體關聯的子網路從公有變更為私有，則可能會影響資料庫執行個體可用性。

如要建立支援雙堆疊模式的資料庫子網路群組，請確保新增至資料庫子網路群組的每個子網路皆具有與其關聯的網際網路通訊協定第 6 版 (IPv6) CIDR 區塊。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的 [Amazon RDS IP 定址](#USER_VPC.IP_addressing) 和[遷移至 IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html)。

**注意**  
本地區域的資料庫子網路群組只能有一個子網路。

Amazon RDS 在 VPC 中建立資料庫執行個體時，會使用來自您資料庫子網路群組的 IP 地址，將網路介面指派給您的資料庫執行個體。然而，我們強烈建議您使用網域名稱系統 (DNS) 名稱，與您的資料庫執行個體連線。我們如此建議，是因為基本的 IP 地址在容錯移轉期間會有所變動。

**注意**  
在資料庫子網路群組的每個子網路中，請確保為 VPC 中執行的每個資料庫執行個體保留至少一個地址，以供 Amazon RDS 執行復原動作。

## 共用子網路
<a name="USER_VPC.Shared_subnets"></a>

您可以在共用 VPC 中建立資料庫執行個體。

使用共用 VPC 時要記住的一些考量：
+ 您可以將資料庫執行個體從共用 VPC 子網路移至非共用 VPC 子網路，反之亦然。
+ 共用 VPC 的參與者必須在 VPC 中建立安全群組，才能允許他們建立資料庫執行個體。
+ 共用 VPC 中的擁有者和參與者可以使用 SQL 查詢存取資料庫。不過，只有資源的建立者才能對資源進行任何 API 呼叫。



## Amazon RDS IP 定址
<a name="USER_VPC.IP_addressing"></a>

IP 地址可讓您 VPC 中的資源彼此互相通訊，也能和網際網路上的資源通訊。Amazon RDS 同時支援 IPv4 和 IPv6 定址通訊協定。依預設，Amazon RDS 和 Amazon VPC 使用 IPv4 定址通訊協定。您無法關閉此行為。當您建立 VPC 時，請務必指定 IPv4 CIDR 區塊 (私有 IPv4 地址的範圍)。您可選擇將 IPv6 CIDR 區塊指派給 VPC 和子網路，並將 IPv6 地址從該區塊指派給子網路中的資料庫執行個體。

對 IPv6 通訊協定的支援擴展受支援的 IP 地址的數量。使用 IPv6 通訊協定，您可以確保擁有足夠的可用地址，可應對網際網路的未來發展。新的和現有的 RDS 資源可於您的 VPC 中使用 IPv4 和 IPv6 地址。在應用程式的不同部分中使用的兩個通訊協定之間進行設定、保護和轉譯網路流量可能會造成操作額外負荷。您可在 IPv6 通訊協定上對 Amazon RDS 資源進行標準化，以簡化您的網路組態。

**Topics**
+ [IPv4 地址](#USER_VPC.IP_addressing.IPv4)
+ [IPv6 地址](#USER_VPC.IP_addressing.IPv6)
+ [雙堆疊模式](#USER_VPC.IP_addressing.dual-stack-mode)

### IPv4 地址
<a name="USER_VPC.IP_addressing.IPv4"></a>

在您建立 VPC 時，必須以 CIDR 區塊的形式為 VPC 指定 IPv4 地址的範圍，例如 `10.0.0.0/16`。*資料庫子網路群組*定義資料庫執行個體可以使用之此 CIDR 區塊中的 IP 地址範圍。這些 IP 地址可為私有或公有。

私有 IPv4 地址是無法在網際網路存取的 IP 地址。您可使用私有 IPv4 地址，在相同 VPC 中的資料庫執行個體及其他資源 (例如 Amazon EC2 執行個體) 之間進行通訊。每個資料庫執行個體具有用於在 VPC 中進行通訊的私有 IP 地址。

公有 IP 地址是可從網際網路存取的 IPv4 地址。您可使用公有地址，在資料庫執行個體和網際網路上的資源 (例如 SQL 用戶端) 之間進行通訊。您控制您的資料庫執行個體是否接收公有 IP 地址。

Amazon RDS 會將來自 EC2 公有 IPv4 地址集區的公有彈性 IPv4 地址用於可公開存取的資料庫執行個體。使用 `describe-addresses` CLI、API 或檢視 中的彈性 IPs(EIP) 區段 AWS 時，這些 IP 地址會顯示在您的帳戶中 AWS 管理主控台。每個 RDS 受管 IP 地址都會以設定為 的`service_managed`屬性標示`"rds"`。

雖然您的帳戶中可以看到這些 IPs，但它們仍由 Amazon RDS 完全管理，且無法修改或釋出。Amazon RDS 會在不再使用時，將 IPs 發行回公有 IPv4 地址集區。

CloudTrail 會記錄與 RDS EIP 相關的 API 呼叫，例如 `AllocateAddress`。服務委託人 會叫用這些 API 呼叫`rds.amazonaws.com`。

**注意**  
Amazon RDS 配置的 IPs 不會計入您帳戶的 EIP 限制。

如需示範如何建立僅包含私有 IPv4 地址以用於常見 Amazon RDS 案例之 VPC 的教學課程，請參閱 [教學課程：建立要與資料庫執行個體搭配使用的 VPC (僅限 IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md)。

### IPv6 地址
<a name="USER_VPC.IP_addressing.IPv6"></a>

您可以選擇性的將 IPv6 CIDR 區塊與您的 VPC 和子網路建立關聯，並指派該區塊的 IPv6 地址給您 VPC 中的資源。每個 IPv6 地址都是全域唯一的。

您的 VPC 的 IPv6 CIDR 區塊會自動從 Amazon 的 IPv6 地址集區自動指派。您無法自行選擇範圍。

連線至 IPv6 地址時，請確保符合下列條件：
+ 用戶端已設定為允許透過 IPv6 進行用戶端至資料庫的流量。
+ 資料庫執行個體使用的 RDS 安全群組已正確設定，允許透過 IPv6 進行用戶端至資料庫的流量。
+ 用戶端作業系統堆疊允許 IPv6 地址上的流量，且作業系統驅動程式和程式庫會進行設定以選擇正確的預設資料庫執行個體端點 (IPv4 或 IPv6)。

如需 IPv6 的詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的 [IP 定址](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html)。

### 雙堆疊模式
<a name="USER_VPC.IP_addressing.dual-stack-mode"></a>

資料庫執行個體可在透過 IPv4 和 IPv6 定址通訊協定進行通訊時，以雙堆疊模式執行。然後，資源可以使用 IPv4, IPv6 或兩種通訊協定與資料庫執行個體通訊。私有雙堆疊模式資料庫執行個體的 IPv6 端點限制為僅限 VPC 存取，可確保您的 IPv6 端點保持私有。公有雙堆疊模式資料庫執行個體提供 IPv4 和 IPv6 端點，您可以從網際網路存取。

**Topics**
+ [雙堆疊模式和資料庫子網路群組](#USER_VPC.IP_addressing.dual-stack-db-subnet-groups)
+ [使用雙堆疊模式資料庫執行個體](#USER_VPC.IP_addressing.dual-stack-working-with)
+ [將僅限 IPv4 的資料庫執行個體修改為使用雙堆疊模式](#USER_VPC.IP_addressing.dual-stack-modifying-ipv4)
+ [區域和版本可用性](#USER_VPC.IP_addressing.RegionVersionAvailability)
+ [雙堆疊網路資料庫執行個體的限制](#USER_VPC.IP_addressing.dual-stack-limitations)

如需示範如何建立包含 IPv4 和 IPv6 兩個地址以用於常見 Amazon RDS 案例之 VPC 的教學課程，請參閱 [教學課程：建立要與資料庫執行個體搭配使用的 (VPC)(雙堆疊模式)](CHAP_Tutorials.CreateVPCDualStack.md)。

#### 雙堆疊模式和資料庫子網路群組
<a name="USER_VPC.IP_addressing.dual-stack-db-subnet-groups"></a>

如要使用雙堆疊式，請確保與資料庫執行個體關聯之資料庫子網路群組中的每個子網路皆有一個與之關聯的 IPv6 CIDR 區塊。您可建立新的資料庫子網路群組或修改現有資料庫子網路群組，以滿足此要求。於資料庫執行個體 處於雙堆疊模式後，用戶端可進行正常連線。確保客戶端安全防火牆和 RDS 資料庫執行個體安全群組已準確設定，允許透過 IPv6 的流量。如要進行連線，用戶端會使用資料庫執行個體的端點。用戶端應用程式可指定連線至資料庫時所偏好的通訊協定。於雙堆疊模式下，資料庫執行個體會偵測用戶端的偏好網路通訊協定 (IPv4 或 IPv6)，並將該通訊協定用於連線。

若資料庫子網路群組因子網路刪除或 CIDR 斷開關聯而停止支援雙堆疊模式，則與資料庫子網路群組相關聯的資料庫執行個體存在網路狀態不相容的風險。此外，建立新的雙堆疊模式資料庫執行個體時，無法使用資料庫子網路群組。

若要使用 判斷資料庫子網路群組是否支援雙堆疊模式 AWS 管理主控台，請在資料庫子網路群組的詳細資訊頁面上檢視**網路類型**。若要使用 判斷資料庫子網路群組是否支援雙堆疊模式 AWS CLI，請執行 [describe-db-subnet-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-subnet-groups.html) 命令並在輸出`SupportedNetworkTypes`中檢視 。

將僅供讀取複本視為獨立的資料庫執行個體，且可具有不同於主資料庫執行個體的網路類型。若您變更僅供讀取複本之主資料庫執行個體的網路類型，則僅供讀取複本不會受到影響。還原資料庫執行個體時，您可將其還原為支援的任何網路類型。

#### 使用雙堆疊模式資料庫執行個體
<a name="USER_VPC.IP_addressing.dual-stack-working-with"></a>

當您建立或修改資料庫執行個體時，您可指定雙堆疊模式，以允許您的資源透過 IPv4、IPv6 或兩者與資料庫執行個體進行通訊。

當您使用 AWS 管理主控台 建立或修改資料庫執行個體時，您可以在**網路類型**區段中指定雙堆疊模式。下圖顯示主控台中的 **Network type** (網路類型) 區段。

![\[主控台中的網路類型區段，選取了雙堆疊模式。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/dual-stack-mode.png)


當您使用 AWS CLI 建立或修改資料庫執行個體時，請將 `--network-type`選項設定為`DUAL`使用雙堆疊模式。當您使用 RDS API 建立或修改資料庫執行個體時，請將 `NetworkType` 參數設定為 `DUAL`，以使用雙堆疊模式。當您修改資料庫執行個體的網路類型時，可能會出現停機時間。若指定的資料庫引擎版本或資料庫子網路群組不支援雙堆疊模式，則會傳回 `NetworkTypeNotSupported` 錯誤。

如需建立資料庫執行個體的詳細資訊，請參閱 [建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。如需修改 資料庫執行個體的詳細資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

若要使用主控台來決定資料庫執行個體是否處於雙堆疊模式，請檢視資料庫執行個體 **Connectivity & security** (連線能力與安全性) 索引標籤上的 **Network type** (網路類型)。

#### 將僅限 IPv4 的資料庫執行個體修改為使用雙堆疊模式
<a name="USER_VPC.IP_addressing.dual-stack-modifying-ipv4"></a>

您可將僅限 IPv4 的資料庫執行個體修改為使用雙堆疊模式。如此，請變更資料庫執行個體的網路類型。修改可能會造成停機。

建議您在維護時段變更 Amazon RDS 資料庫執行個體的網路類型。目前不支援將新執行個體的網路類型設定為雙堆疊模式。您可以使用 `modify-db-instance` 命令手動設定網路類型。

將資料庫執行個體修改為使用雙堆疊模式之前，請確保其資料庫子網路群組支援雙堆疊模式。若與資料庫執行個體關聯的資料庫子網路群組不支援雙堆疊模式，請於修改資料庫執行個體時指定支援該子網路群組的其他資料庫子網路群組。修改資料庫執行個體的資料庫子網路群組可能會導致停機。

若在將資料庫執行個體變更為使用雙堆疊模式之前修改資料庫執行個體的資料庫子網路群組，請確保該資料庫子網路群組在變更前後對資料庫執行個體有效。

對於 RDS for PostgreSQL、RDS for MySQL、RDS for Oracle 和 RDS for MariaDB 單一可用區執行個體，我們建議您僅搭配設定為 `DUAL` 的 `--network-type` 參數執行 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 命令，以將網路變更為雙堆疊模式。在相同的 API 呼叫中新增其他參數和 `--network-type` 參數可能會導致停機時間。若要修改多個參數，請確定已成功完成網路類型修改，然後再傳送另一個具有其他參數的 `modify-db-instance` 請求。

如果您只使用 `--network-type` 參數或在 modify-db-instance 命令中合併參數，則 RDS for PostgreSQL、RDS for MySQL、RDS for Oracle 和 RDS for MariaDB 多可用區資料庫執行個體的網路類型修改會造成短暫停機並觸發容錯移轉。

如果您只使用 `--network-type` 參數或在 `modify-db-instance` 命令中合併參數，則 RDS for SQL Server 單一可用區或多可用區資料庫執行個體的網路類型修改會導致停機。修改網路類型會造成 SQL Server 多可用區執行個體的容錯移轉。

若於變更後無法連線至資料庫執行個體，請確認用戶端和資料庫安全防火牆和路由表已正確設定，以允許流量傳輸至選定網路上的資料庫 (IPv4 或 IPv6)。您可能還需要修改作業系統參數、程式庫或驅動程式才可使用 IPv6 地址進行連線。

當您將資料庫執行個體修改為使用雙堆疊模式時，不可有從單一可用區部署至多可用區部署，或從多可用區部署至單一可用區部署的待處理變更。

**如要將僅限 IPv4 的資料庫執行個體修改為使用雙堆疊模式**

1. 修改資料庫子網路群組以支援雙堆疊模式，或建立支援雙堆疊模式的資料庫子網路群組：

   1. 建立 IPv6 CIDR 區塊與 VPC 的關聯。

      如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[將 IPv6 CIDR 區塊新增至 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/modify-vpcs.html#vpc-associate-ipv6-cidr)。

   1. 將 IPv6 CIDR 區塊連接至資料庫子網路群組中的所有子網路。

      如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[將 IPv6 CIDR 區塊新增至子網路](https://docs.aws.amazon.com/vpc/latest/userguide/modify-subnets.html#subnet-associate-ipv6-cidr)。

   1. 確認資料庫子網路群組支援雙堆疊模式。

      如果您使用的是 AWS 管理主控台，請選取資料庫子網路群組，並確認**支援的網路類型**值為**雙 IPv4**。

      如果您使用的是 AWS CLI，請執行 [describe-db-subnet-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-subnet-groups.html) 命令，並確認資料庫執行個體`SupportedNetworkType`的值為 `Dual, IPv4`。

1. 修改與資料庫執行個體關聯的安全群組，以允許 IPv6 連線至資料庫，或建立允許 IPv6 連線的新安全群組。

   如需說明，請參閱《*Amazon VPC 使用者指南*》中的[安全群組規則](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html)。

1. 修改資料庫執行個體以支援雙堆疊模式。若要這麼做，請將 **Network type** (網路類型) 設為 **Dual-stack mode** (雙堆疊模式)。

   若您使用主控台，請確保下列設定正確：
   + **Network type (網路類型)** – **Dual-stack mode (雙堆疊模式)**  
![\[主控台中的網路類型區段，選取了雙堆疊模式。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/dual-stack-mode.png)
   + **DB subnet group** (資料庫子網路群組) – 您在前一步驟中設定的資料庫子網路群組
   + **Security group (安全群組)** – 您在上一個步驟中設定的安全性

   如果您使用的是 AWS CLI，請確定下列設定正確：
   + `--network-type` – `dual`
   + `--db-subnet-group-name` – 您在前一步驟中設定的資料庫子網路群組
   + `--vpc-security-group-ids` – 您在前一步驟中設定的 VPC 安全群組

   例如：

   ```
   aws rds modify-db-instance --db-instance-identifier my-instance --network-type "DUAL"
   ```

1. 確認資料庫執行個體是否支援雙堆疊模式。

   若您使用主控台，請選擇資料庫執行個體的 **Connectivity & security** (連線能力與安全性) (組態) 索引標籤。在該索引標籤，確保 **Network type** (網路類型) 值為 **Dual-stack mode** (雙堆疊模式)。

   如果您使用的是 AWS CLI，請執行 [ describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令，並確認資料庫執行個體`NetworkType`的值為 `dual`。

   執行資料庫執行個體端點上的 `dig` 命令來辨識與其關聯的 IPv6 地址。

   ```
   dig db-instance-endpoint AAAA
   ```

   使用資料庫執行個體端點 (非 IPv6 地址)，連線至資料庫執行個體。

#### 區域和版本可用性
<a name="USER_VPC.IP_addressing.RegionVersionAvailability"></a>

功能可用性和支援會因每個資料庫引擎的特定版本以及 AWS 區域而有所不同。如需雙堆疊模式的版本和區域可用性的相關資訊，請參閱 [支援 Amazon RDS 中雙堆疊模式的區域和資料庫引擎](Concepts.RDS_Fea_Regions_DB-eng.Feature.DualStackMode.md)。

#### 雙堆疊網路資料庫執行個體的限制
<a name="USER_VPC.IP_addressing.dual-stack-limitations"></a>

下列限制適用於雙堆疊網路資料庫執行個體：
+ 資料庫執行個體無法僅使用 IPv6 通訊協定。其可專門使用 IPv4，也可使用 IPv4 和 IPv6 通訊協定 (雙堆疊模式)。
+ Amazon RDS 不支援原生 IPv6 子網路。
+ 若為 RDS for SQL Server，使用 Always On AG 可用性群組接聽程式端點的雙堆疊模式資料庫執行個體僅提供 IPv4 地址。
+ 您無法將 RDS Proxy 和雙堆疊模式資料庫執行個體搭配使用。
+ 資料庫執行個體上的 RDS AWS Outposts 無法使用雙堆疊模式。
+ 您無法於本機區域中使用雙堆疊模式和資料庫執行個體。

## 在 VPC 中的網際網路中隱藏資料庫執行個體
<a name="USER_VPC.Hiding"></a>

VPC 中，有個 Amazon EC2 執行個體上有開放存取的 Web 應用程式，同時資料庫執行個體上有不可公開存取的資料庫，這樣的 Amazon RDS 藍本並不罕見。例如，您可以建立具有公有子網路和私有子網路的 VPC。作為 Web 伺服器的 EC2 執行個體可部署於公有子網路中，而資料庫執行個體則可部署於私有子網路中。在這樣的部署下，只有 Web 伺服器可以存取資料庫執行個體。如需這種案例的圖示，請參閱 [由相同 VPC 中的 Amazon EC2 執行個體在 VPC 中存取的資料庫執行個體](USER_VPC.Scenarios.md#USER_VPC.Scenario1)。

當您在 VPC 內啟動資料庫執行個體時，資料庫執行個體在 VPC 內具有流量的私人的 IP 地址。此私人 IP 地址無法公開存取。您可以使用 **Public access** (公用存取) 選項來指定除了私有 IP 地址之外，資料庫執行個體是否還具有公有 IP 地址。如果指定資料庫執行個體為可公開存取，則其 DNS 端點會從 VPC 內解析為私人 IP 地址。它會從 VPC 外部解析為公用 IP 地址。資料庫執行個體的存取權限最終是由其使用的安全群組所控制。若指派給該資料庫執行個體的安全群組沒有包含允許的傳入規則，則該資料庫執行個體就無法開放供公開存取。若要開放公開存取資料庫執行個體，其資料庫子網路群組中的子網路必須具備網際網路閘道。如需詳細資訊，請參閱 [無法連線至 Amazon RDS 資料庫執行個體](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)

您可以修改 **Public access** (公用存取) 選項，藉此修改資料庫執行個體以開啟或關閉公開存取性。下圖顯示 **Additional connectivity configuration (其他連線能力組態)** 區段中的 **Public access (公用存取)** 選項。若要設定此選項，請開啟 **Connectivity (連線能力)** 區段中的 **Additional connectivity configuration (其他連線能力組態)** 區段。

![\[將其他連線組態區段中的資料庫公開存取選項設定為否。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/VPC-example4.png)


如需有關修改資料庫執行個體以設定 **Public access (公用存取)** 選項的資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

## 在 VPC 中建立資料庫執行個體
<a name="USER_VPC.InstanceInVPC"></a>

下列步驟可協助您在 VPC 中建立資料庫執行個體。若要使用預設 VPC，您可以從步驟 2 開始，使用系統已為您建立的 VPC 和資料庫子網路群組。您想要建立額外的 VPC 的話，可以建立新的 VPC。

**注意**  
如果您要開放資料庫執行個體在 VPC 中供公開存取，須啟用 VPC 屬性 *DNS hostnames* (DNS 主機名稱) 和 *DNS resolution* (DNS 解析)，更新 VPC 的 DNS 資訊。若要進一步了解如何更新 VPC 執行個體的 DNS 資訊，請參閱[更新 VPC 的 DNS 支援](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。

請依照以下步驟在 VPC 中建立資料庫執行個體：
+ [步驟 1：建立 VPC](#USER_VPC.CreatingVPC) 
+  [步驟 2：建立資料庫子網路群組](#USER_VPC.CreateDBSubnetGroup)
+  [步驟 3：建立 VPC 安全群組](#USER_VPC.CreateVPCSecurityGroup)
+  [步驟 4：在 VPC 中建立資料庫執行個體](#USER_VPC.CreateDBInstanceInVPC) 

### 步驟 1：建立 VPC
<a name="USER_VPC.CreatingVPC"></a>

建立在至少兩個可用區域內有子網路的 VPC。建立資料庫子網路群組時，您會需要使用這些子網路。如有預設的 VPC，則系統會自動為您於所在 AWS 區域的每個可用區域中建立子網路。

如需詳細資訊，請參閱 [建立含私有和公有子網路的 VPC](CHAP_Tutorials.WebServerDB.CreateVPC.md#CHAP_Tutorials.WebServerDB.CreateVPC.VPCAndSubnets) 或 *Amazon VPC 使用者指南*中的[建立 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC)。

### 步驟 2：建立資料庫子網路群組
<a name="USER_VPC.CreateDBSubnetGroup"></a>

資料庫子網路群組是一種子網路集合 (通常為私有)，您必須先為 VPC 建立這些群組，然後指定給資料庫執行個體使用。當您使用 AWS CLI 或 RDS API 建立資料庫執行個體時，資料庫子網路群組可讓您指定特定的 VPC。若使用主控台，只需選擇要使用的 VPC 和子網路即可。各個資料庫子網路群組在 AWS 區域中，須至少於兩個可用區域中具有至少一個子網路。作為最佳實務，每個資料庫子網路群組應於 AWS 區域中，為每個可用區域擁有至少有一個子網路。

對於異地同步備份部署，定義 中所有可用區域的子網路 AWS 區域 可讓 Amazon RDS 視需要在另一個可用區域中建立新的待命複本。即使是單一可用區域部署，您也可以遵循此最佳實務，因為未來可能會將它們轉換為多可用區域部署。

若要開放資料庫執行個體供公開存取，資料庫子網路群組中的子網路必須具備網際網路閘道。如需子網路網際網路閘道的詳細資訊，請參閱 *Amazon VPC 使用者指南*中的[使用網際網路閘道連線至網際網路](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)。

**注意**  
本地區域的資料庫子網路群組只能有一個子網路。

在 VPC 中建立資料庫執行個體時，您可以選擇資料庫子網路群組。Amazon RDS 會選擇子網路和該子網路內的 IP 地址，以便與您的資料庫執行個體建立關聯。如果資料庫子網路群組不存在，建立預設資料庫執行個體時，Amazon RDS 會建立預設子網路群組。Amazon RDS 會建立彈性網路界面，並透過該 IP 地址將該界面與資料庫執行個體相關聯。資料庫執行個體使用包含子網路的可用區域。

對於異地同步備份部署，在 中為兩個或多個可用區域定義子網路 AWS 區域 ，允許 Amazon RDS 在需要時在另一個可用區域中建立新的待命。即使是單一可用區部署也需要這麼做，以便未來需要將它們轉換為多可用區部署。

在此步驟中，您會建立資料庫子網路群組，並新增您為 VPC 建立的子網路。

**建立資料庫子網路群組**

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

1. 在導覽窗格中選擇 **Subnet groups (子網路群組)**。

1. 選擇 **Create DB Subnet Group** (建立資料庫子網路群組)。

1. 在 **Name (名稱)** 欄位輸入您資料庫子網路群組的名稱。

1. 在 **Description (描述)** 欄位輸入您資料庫子網路群組的描述。

1. 對於 **VPC**，選擇預設 VPC 或先前建立的 VPC。

1. 在 **Add subnets (新增子網路)** 區段中，選擇包含 **Availability Zones (可用區域)** 中子網路的可用區域，然後從 **Subnets (子網路)** 選擇子網路。  
![\[建立資料庫子網路群組。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/RDSVPC101.png)
**注意**  
如果您已啟用「本地區域」，您可以在 **Create DB subnet group** (建立資料庫子網路群組) 頁面中選擇「可用區域」群組。在此情況下，請選擇 **Availability Zone group (可用區域群組)**、**Availability Zones (可用區域)** 和 **Subnets (子網路)**。

1. 選擇**建立**。

   您的新資料庫子網路群組會顯示在 RDS 主控台的資料庫子網路群組清單中。您可以選擇資料庫子網路群組，在視窗底部的詳細資訊窗格查看詳細資訊，包括與該群組相關聯的所有子網路。

### 步驟 3：建立 VPC 安全群組
<a name="USER_VPC.CreateVPCSecurityGroup"></a>

建立資料庫執行個體之前，您必須先建立 VPC 安全群組，才能與您的資料庫執行個體建立關聯。如果您沒有建立 VPC 安全群組，您可以在建立資料庫執行個體時使用預設安全群組。如需如何建立資料庫執行個體安全群組的說明，請參閱 [建立私有資料庫執行個體的 VPC 安全群組](CHAP_Tutorials.WebServerDB.CreateVPC.md#CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB)，或參閱 *Amazon VPC 使用者指南*中的[使用安全群組控制到資源的流量](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

### 步驟 4：在 VPC 中建立資料庫執行個體
<a name="USER_VPC.CreateDBInstanceInVPC"></a>

在此步驟中，您將建立資料庫執行個體，並使用您在先前步驟中建立的 VPC 名稱、資料庫子網路群組以及 VPC 安全群組。

**注意**  
如果您要開放資料庫執行個體在 VPC 中供公開存取，須啟用 VPC 屬性 *DNS hostnames* (DNS 主機名稱) 和 *DNS resolution* (DNS 解析)。如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的 [VPC 的 DNS 屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。

如需如何建立資料庫執行個體的詳細資訊，請參閱[建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。

**Connectivity** (連線) 區段中顯示提示訊息時，請輸入 VPC 名稱、資料庫子網路群組以及 VPC 安全群組。

# 更新資料庫執行個體的 VPC
<a name="USER_VPC.VPC2VPC"></a>

您可以使用AWS 管理主控台將您的資料庫執行個體移動至不同的 VPC。

如需修改資料庫執行個體的相關資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。如下所示，在修改頁面的 **Connectivity** (連線) 區段中，為 **DB Subnet group** (資料庫子網路群組) 輸入新的資料庫子網路群組。新的子網路群組必須是新 VPC 中的子網路群組。

![\[修改資料庫執行個體子網路群組。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/EC2-VPC.png)


如果滿足以下條件，便無法變更資料庫執行個體的 VPC：
+ 資料庫執行個體位於多個可用區域。您可以將資料庫執行個體轉換至單一可用區域、移至新的 VPC，然後再轉換回多可用區域資料庫執行個體。如需詳細資訊，請參閱 [設定及管理 Amazon RDS 的多可用區域部署](Concepts.MultiAZ.md)。
+ 資料庫執行個體具有一或多個僅供讀取複本。您可以移除僅供讀取複本、將資料庫執行個體移到新的 VPC，然後再次新增僅供讀取複本。如需詳細資訊，請參閱 [使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。
+ 資料庫執行個體為僅供讀取複本。您可以提升僅供讀取複本，然後將獨立資料庫執行個體移至新的 VPC。如需詳細資訊，請參閱 [提升僅供讀取複本為獨立的資料庫執行個體](USER_ReadRepl.Promote.md)。
+ 目標 VPC 中的子網路群組在資料庫執行個體的可用區域中沒有子網路。您可以將資料庫執行個體可用區域中的子網路新增到資料庫子網路群組，然後將資料庫執行個體移至新的 VPC。如需詳細資訊，請參閱 [使用資料庫子網路群組](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets)。

# 在 VPC 中存取資料庫執行個體的案例
<a name="USER_VPC.Scenarios"></a>

Amazon RDS 支援下列在 VPC 中存取資料庫執行個體的使用案例：
+ [相同 VPC 中的 Amazon EC2 執行個體](#USER_VPC.Scenario1)
+ [EC2 執行個體位於不同 VPC](#USER_VPC.Scenario3)
+ [連上網際網路的用戶端應用程式](#USER_VPC.Scenario4)
+ [私有網路](#USER_VPC.NotPublic)

## 由相同 VPC 中的 Amazon EC2 執行個體在 VPC 中存取的資料庫執行個體
<a name="USER_VPC.Scenario1"></a>

資料庫執行個體在 VPC 中常見的使用方式，是與在同一 VPC 之 Amazon EC2 執行個體中執行的應用程式伺服器共用資料。

此案例可以下列圖表顯示。

![\[具有公有 Web 伺服器和私有資料庫的 VPC 案例。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp.png)


若要管理相同 VPC 中 EC2 執行個體與資料庫執行個體之間的存取權限，最簡單的方式如下：
+ 建立將包含資料庫執行個體的 VPC 安全群組。此安全群組可用來限制資料庫執行個體的存取權限。例如，您可以為此安全群組建立自訂規則，允許使用您在建立自訂規則時指派給資料庫執行個體的連接埠存取 TCP，並可建立一組存取資料庫執行個體的 IP 地址，做為開發或其他用途使用。
+ 建立將包含 EC2 執行個體 (web 伺服器和用戶端) 的 VPC 安全群組。若有需要，此安全群組可允許藉由使用 VPC 路由表存取網際網路上的 EC2 執行個體。舉例來說，您可以在此安全群組上設定規則，允許 TCP 透過連接埠 22 存取 EC2 執行個體。
+ 在您資料庫執行個體的安全群組中建立自訂規則，允許來自您為 EC2 執行個體所建立之安全群組的連線要求。這些規則可能會允許安全群組的所有成員存取資料庫執行個體。

在單獨的可用區域中，還有一個額外的公有和私有子網路。RDS 資料庫子網路群組需要至少兩個可用區域中的子網路。額外的子網路可讓您在未來輕鬆切換到多可用區域資料庫執行個體部署。

如需相關教學課程，了解如何為此案例建立包含公有和私有子網路的 VPC，請參閱[教學課程：建立要與資料庫執行個體搭配使用的 VPC (僅限 IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md)。

**提示**  
您可以在建立資料庫執行個體時，自動設定 Amazon EC2 執行個體與資料庫執行個體之間的連線。如需更多詳細資訊，請參閱 [設定與 EC2 執行個體的自動網路連線](USER_CreateDBInstance.md#USER_CreateDBInstance.Prerequisites.VPC.Automatic)。

**若要在允許其他安全群組連線要求的 VPC 安全群組中建立規則，請按照以下步驟操作：**

1.  登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/vpc](https://console.aws.amazon.com/vpc)：// 開啟 Amazon VPC 主控台。

1.  在導覽窗格中，選擇**安全群組**。

1. 選擇或建立要允許其他安全群組成員存取的安全群組。在前一個藍本中，這是您用於資料庫執行個體的安全群組。選擇 **Inbound rules** (傳入規則) 索引標籤，然後選擇 **Edit inbound rules** (編輯對內規則)。

1. 在 **Edit inbound rules** (編輯對內規則) 頁面上，選擇 **Add rule** (新增規則)。

1. 對於**類型**，選擇對應您在建立資料庫執行個體時所使用之連接埠的項目，例如 **MYSQL/Aurora**。

1. 在**來源**方塊中，開始輸入安全群組 ID，這會列出相符的安全群組。選擇安全群組，允許其成員存取由此安全群組所保護的資源。在前一個藍本中，這是您用於 EC2 執行個體的安全群組。

1. 視需要使用**所有 TCP** 做為**類型**並在**來源**方塊中輸入安全群組來建立規則，以重複 TCP 通訊協定的步驟。若您打算使用 UDP 通訊協定，請使用 **All UDP** (所有 UDP) 作為 **Type** (類型)，並在 **Source ** (來源) 中輸入安全群組，以建立規則。

1. 選擇**儲存規則**。

下列畫面顯示安全群組針對其來源的對內規則。

![\[為其他安全群組規則新增安全群組。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/con-vpc-add-sg-rule.png)


如需從 EC2 執行個體連線至資料庫執行個體的詳細資訊，請參閱[連接至 Amazon RDS 資料庫執行個體](CHAP_CommonTasks.Connect.md) 。

## 由不同 VPC 中的 EC2 執行個體存取 VPC 中的資料庫執行個體
<a name="USER_VPC.Scenario3"></a>

當您的資料庫執行個體與您用來存取資料庫執行個體叢集的 EC2 執行個體不在相同 VPC 中時，您就能使用 VPC 對等連線存取該資料庫執行個體。

此案例可以下列圖表顯示。

![\[由不同 VPC 中的 Amazon EC2 執行個體存取 VPC 中的資料庫執行個體。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/RDSVPC2EC2VPC.png)


VPC 對等連線是指兩個 VPC 之間的網路連線，透過此機制，您就可以使用私有 IP 地址在兩者之間路由流量。這兩個 VPC 中的資源能彼此通訊，有如位於相同網路中一樣。您可以在自己的 VPCs 之間建立 VPC 對等互連、在另一個 AWS 帳戶中建立 VPC，或在不同的 VPC 之間建立 VPC 對等互連 AWS 區域。若要進一步了解 VPC 互連，請參閱《Amazon Virtual Private Cloud 使用者指南》**中的 [VPC 互連](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html)。

## 由用戶端應用程式透過網際網路存取 VPC 中的資料庫執行個體
<a name="USER_VPC.Scenario4"></a>

若要由用戶端應用程式透過網際網路存取 VPC 中的資料庫執行個體，您必須設定單一公有子網路的 VPC 以及網際網路閘道，啟用網際網路通訊。

此案例可以下列圖表顯示。

![\[由用戶端應用程式透過網際網路存取 VPC 中的資料庫執行個體。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/GS-VPC-network.png)


我們建議您使用下列組態：

 
+ 大小為 /16 的 VPC (例如，CIDR: 10.0.0.0/16)。此大小可提供 65,536 個私有 IP 地址。
+ 大小為 /24 的子網路 (例如，CIDR: 10.0.0.0/24)。此大小可提供 256 個私有 IP 地址。
+ 與 VPC 和子網路相關聯的 Amazon RDS 資料庫執行個體。Amazon RDS 會將子網路中的 IP 地址指派給資料庫執行個體。
+ 網際網路閘道會將 VPC 連線至網際網路和其他 AWS 產品。
+ 與資料庫執行個體相關聯的安全群組。安全群組的傳入規則允許您的用戶端應用程式存取您的資料庫執行個體。

如需有關在 VPC 中建立資料庫執行個體的資訊，請參閱 [在 VPC 中建立資料庫執行個體](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.InstanceInVPC)。

## 透過私有網路存取 VPC 中的資料庫執行個體
<a name="USER_VPC.NotPublic"></a>

如果您的資料庫執行個體無法公開存取，可以使用下列選項從私有網路存取：
+ An AWS Site-to-Site VPN 連接。如需詳細資訊，請參閱[什麼是 AWS Site-to-Site VPN？](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)
+  Direct Connect 連線。如需詳細資訊，請參閱[什麼是 Direct Connect？](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)
+  AWS Client VPN 連線。如需詳細資訊，請參閱[什麼是 AWS Client VPN？](https://docs.aws.amazon.com//vpn/latest/clientvpn-admin/what-is.html)

下圖顯示具有 AWS Site-to-Site連線的案例。

![\[透過私有網路存取 VPC 中的資料庫執行個體。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/site-to-site-vpn-connection.png)


如需詳細資訊，請參閱[網際網路流量隱私權](inter-network-traffic-privacy.md)。

# 教學課程：建立要與資料庫執行個體搭配使用的 VPC (僅限 IPv4)
<a name="CHAP_Tutorials.WebServerDB.CreateVPC"></a>

常用案例包括以 Amazon VPC 服務為基礎的虛擬私有雲端 (VPC) 中的資料庫執行個體。此 VPC 與在相同 VPC 中執行的 Web 伺服器共用資料。在本教學課程中，您會針對此案例建立 VPC。

此案例可以下列圖表顯示。如需其他案例的相關資訊，請參閱[在 VPC 中存取資料庫執行個體的案例](USER_VPC.Scenarios.md)。

![\[單一 VPC 案例\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp.png)


您的資料庫執行個體僅需供您的 Web 伺服器使用，無需供公有網際網路使用。因此，您建立同時包含公有和私有子網路的 VPC。Web 伺服器是在公有子網路中託管，以便它可以到達公有網際網路。資料庫執行個體被託管於私有子網路中。Web 伺服器可連線至資料庫執行個體，因為其託管於相同 VPC 中。但是，公有網際網路無法使用資料庫執行個體，提供更高的安全性。

本教學課程會在單獨的可用區域中設定額外的公有子網路和私有子網路。教學課程不會使用這些子網路。RDS 資料庫子網路群組需要至少兩個可用區域中的子網路。額外的子網路可讓您在未來更輕鬆地切換到多可用區域資料庫執行個體部署。

本教學課程說明為 Amazon RDS 資料庫執行個體配置 VPC。如需展示如何為此 VPC 案例建立 Web 伺服器的教學課程，請參閱[教學：建立 Web 伺服器和 Amazon RDS 資料庫執行個體](TUT_WebAppWithRDS.md)。如需 Amazon VPC 的詳細資訊，請參閱 [Amazon VPC 入門指南](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/)和 [Amazon VPC 使用者指南](https://docs.aws.amazon.com/vpc/latest/userguide/)。

**提示**  
當您建立資料庫執行個體時，您可以在 Amazon EC2 執行個體和資料庫執行個體之間自動設定網路連線。網路組態與本教學課程中描述的組態類似。如需詳細資訊，請參閱 [設定與 EC2 執行個體的自動網路連線](USER_CreateDBInstance.md#USER_CreateDBInstance.Prerequisites.VPC.Automatic)。 

## 建立含私有和公有子網路的 VPC
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.VPCAndSubnets"></a>

使用下列程序來建立一個同時含公有和私有子網路的 VPC。

**建立 VPC 和子網路**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在 的右上角 AWS 管理主控台，選擇要在其中建立 VPC 的區域。此範例使用 美國西部 (奧勒岡) 區域。

1. 在左上角，選擇 **VPC Dashboard** (VPC 儀表板)。若要開始建立 VPC，請選擇 **Create VPC** (建立 VPC)。

1. 在 **VPC Settings** (VPC 設定) 的 **Resources to create** (建立資源) 下，選擇 **VPC and more** (VPC 和更多)。

1. 對於 **VPC settings** (VPC 設定)，設定這些值：
   + **Name tag auto-generation** (自動產生名稱標籤) – **tutorial**
   + **IPv4 CIDR block** (IPv4 CIDR 區塊) – **10.0.0.0/16**
   + **IPv6 CIDR block** (IPv6 CIDR 區塊) – **No IPv6 CIDR Block** (無 IPv6 CIDR 區塊)
   + **Tenancy** (租用) – **Default** (預設)
   + **Number of Availability Zones (AZs)** (可用區域 (AZ) 的數量) – **2**
   + **Customize AZs** (自訂可用區域) - 保留預設值。
   + **Number of public subnet** (公有子網路數量) – **2**
   + **Number of private subnets** (私有子網路數量) – **2**
   + **Customize subnets CIDR blocks** (自訂子網路 CIDR 區塊) – 保留預設值。
   + **NAT gateways (\$1)** (NAT 閘道 (\$1)) – **None** (無)
   + **VPC endpoints** (VPC 端點) – **None** (無)
   + **DNS options** (DNS 選項) – 保留預設值。
**注意**  
Amazon RDS 需要至少兩個不同可用區域中的子網路，以支援多可用區域資料庫執行個體部署。本教學課程會建立單一可用區部署，但這項需求可讓您更輕鬆地在未來轉換為多可用區域資料庫執行個體部署。

1. 選擇**建立 VPC**。

## 建立公有 Web 伺服器的 VPC 安全群組
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupEC2"></a>

接著建立公開存取的 VPC 安全群組。若要連線至 VPC 中的公有 EC2 執行個體，請將傳入規則新增至 VPC 安全群組。這些規則允許流量從網際網路連線。

**建立 VPC 安全群組**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 選擇 **VPC Dashboard (VPC 儀表板)**，再選擇 **Security Groups (安全群組)**，然後選擇 **Create security group (建立安全群組)**。

1. 在 **Create security group (建立安全群組)** 頁面上，設定下列值：
   + **安全群組名稱：****tutorial-securitygroup**
   + **描述:** **Tutorial Security Group**
   + **VPC:** 選擇您先前建立的 VPC，例如：**vpc-*識別符* (tutorial-vpc)** 

1. 將傳入規則新增至安全群組

   1. 決定用於使用安全殼層 (SSH) 連接至 VPC 中 EC2 執行個體的 IP 地址。若要判斷公有 IP 地址，您可以在不同的瀏覽器視窗或索引標籤中使用 [https://checkip.amazonaws.com](https://checkip.amazonaws.com) 中的服務。IP 地址的範例為 `203.0.113.25/32`。

      在許多情況下，您可能透過網際網路服務供應商 (ISP) 或是從沒有靜態 IP 地址的防火牆進行連線。若是如此，請找出用戶端電腦所使用的 IP 地址範圍。
**警告**  
如果您使用 `0.0.0.0/0` 進行 SSH 存取，則可讓所有 IP 地址使用 SSH 存取您的公有執行個體。通常在測試環境中短暫使用此方法是沒有問題的，但在生產環境則不安全。在生產環境中，您應只授權特定 IP 地址或特定範圍的地址可使用 SSH 存取您的執行個體。

   1. 在 **Inbound rules (傳入規則)** 區段中，選擇 **Add rule (新增規則)**。

   1. 針對您的新傳入規則設定下列值，以允許透過 SSH 存取您的 Amazon EC2 執行個體。若是這麼做，則您可以連線至 Amazon EC2 執行個體來安裝 Web 伺服器和其他公用程式。您也會連線至 EC2 執行個體來上傳 Web 伺服器的內容。
      + **類型:** **SSH**
      + **Source (來源):** 來自步驟 a 的 IP 地址或範圍，例如：**203.0.113.25/32**。

   1. 選擇**新增規則**。

   1. 針對您的新傳入規則設定下列值，以允許透過 HTTP 存取您的 Web 伺服器。
      + **Type (類型)**：**HTTP**
      + **來源**：**0.0.0.0/0**

1. 請選擇 **Create security group (建立安全群組)** 以建立安全群組。

   請記下安全群組 ID，因為稍後在本教學中會需要它。

## 建立私有資料庫執行個體的 VPC 安全群組
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB"></a>

若要讓您的資料庫執行個體保持私有，請建立第二個安全群組供私有存取。若要連接至 VPC 中的私有資料庫執行個體，請將傳入規則新增至 VPC 安全群組，僅允許來自 Web 伺服器的流量。

**建立 VPC 安全群組**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 選擇 **VPC Dashboard (VPC 儀表板)**，再選擇 **Security Groups (安全群組)**，然後選擇 **Create security group (建立安全群組)**。

1. 在 **Create security group (建立安全群組)** 頁面上，設定下列值：
   + **安全群組名稱：****tutorial-db-securitygroup**
   + **描述:** **Tutorial DB Instance Security Group**
   + **VPC:** 選擇您先前建立的 VPC，例如：**vpc-*識別符* (tutorial-vpc)**

1. 將傳入規則新增至安全群組

   1. 在 **Inbound rules (傳入規則)** 區段中，選擇 **Add rule (新增規則)**。

   1. 針對您的新傳入規則設定下列值，來允許連接埠 3306 上來自 Amazon EC2 執行個體的 MySQL 流量。如果這樣做，您可以從 Web 伺服器連線至資料庫執行個體。這樣做，您可以將 Web 應用程式中的資料存放並擷取至資料庫。
      + **Type (類型)**：**MySQL/Aurora**
      + **Source** (來源)： 您先前在本教學課程中建立的 **tutorial-securitygroup** 安全群組的識別符，例如：**sg-9edd5cfb**。

1. 請選擇 **Create security group (建立安全群組)** 以建立安全群組。

## 建立資料庫子網路群組
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.DBSubnetGroup"></a>

*資料庫子網路群組*是您在 VPC 中建立，然後指派給資料庫執行個體的子網路的集合。資料庫子網路群組可讓您在建立資料庫執行個體時指定特定的 VPC。

**建立資料庫子網路群組**

1. 識別 VPC 中資料庫的私有子網路。

   1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **Subnets** (子網路)。

   1. 記下名為 **tutorial-subnet-private1-us-west-2a** 和 **tutorial-subnet-private2-us-west-2b** 之子網路的子網路 ID。

      建立資料庫子網路群組時，您會需要這些子網路 ID。

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

   請確定您連接到 Amazon RDS 主控台，而非 Amazon VPC 主控台。

1. 在導覽窗格中選擇 **Subnet groups (子網路群組)**。

1. 選擇 **Create DB Subnet Group** (建立資料庫子網路群組)。

1. 在 **Create DB subnet group** (建立資料庫子網路群組) 頁面上，於 **Subnet group details** (子網路群組詳細資訊) 中設定下列值：
   + **名稱:** **tutorial-db-subnet-group**
   + **描述:** **Tutorial DB Subnet Group**
   + **VPC:** **tutorial-vpc (vpc-*識別符*)** 

1. 在 **Add subnets (新增子網路)** 區段中，選擇 **Availability Zones (可用區域)** 和 **Subnets (子網路)**。

   對於此教學課程，為 **Availability Zones** (可用區域) 選擇 **us-west-2a** 和 **us-west-2b**。對於 **Subnets** (子網路)，選擇您在上一個步驟找到的私有子網路。

1. 選擇**建立**。

   您的新資料庫子網路群組會顯示在 RDS 主控台的資料庫子網路群組清單中。您可以選擇資料庫子網路群組，在視窗底部的詳細資訊窗格查看詳細資訊。這些詳細資料包括與群組關聯的所有子網路。

**注意**  
如果您已建立此 VPC 以完成 [教學：建立 Web 伺服器和 Amazon RDS 資料庫執行個體](TUT_WebAppWithRDS.md)，請依照 [建立 Amazon RDS 資料庫執行個體](CHAP_Tutorials.WebServerDB.CreateDBInstance.md) 中的下列指示建立資料庫執行個體。

## 刪除 VPC
<a name="CHAP_Tutorials.WebServerDB.CreateVPC.Delete"></a>

為此教學課程建立 VPC 和其他資源後，如果不再需要這些資源，便可以將它們刪除。

**注意**  
若您在針對此教學課程建立的 VPC 中新增資源，則可能需要先刪除這些資源，才能刪除 VPC。例如，這些資源可能包括 Amazon EC2 執行個體或 Amazon RDS 資料庫執行個體。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[刪除 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting)。

**刪除 VPC 和相關資源**

1. 刪除資料庫子網路群組。

   1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

   1. 在導覽窗格中選擇 **Subnet groups (子網路群組)**。

   1. 選取您要刪除的資料庫子網路群組，例如 **tutorial-db-subnet-group**。

   1. 選擇 **Delete** (刪除)，然後在確認視窗中選擇 **Delete** (刪除)。

1. 請注意 VPC ID。

   1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **VPC**。

   1. 在清單中，找到您建立的 VPC，例如 **tutorial-vpc**。

   1. 請記下您所建立的 VPC 的 **VPC ID**。在稍後的步驟中，您需要 VPC ID。

1. 刪除安全群組。

   1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **Security Groups** (安全群組)。

   1. 選取 Amazon RDS 資料庫執行個體的安全群組，例如 **tutorial-db-securitygroup**。

   1. 若為 **Actions (動作)**，選擇 **Delete security groups (刪除安全群組)**，然後在確認頁面上選擇 **Delete (刪除)**。

   1. 在 **Security Groups** (安全群組) 頁面上，選取 Amazon EC2 執行個體的安全群組，例如 **tutorial-securitygroup**。

   1. 若為 **Actions (動作)**，選擇 **Delete security groups (刪除安全群組)**，然後在確認頁面上選擇 **Delete (刪除)**。

1. 刪除 VPC。

   1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **VPC**。

   1. 選取您要刪除的 VPC，例如 **tutorial-vpc**。

   1. 對於 **Actions (動作)**，請選擇 **Delete VPC (刪除 VPC)**。

      確認頁面會顯示與 VPC 相關聯的其他資源，這些資源也將遭到刪除，包括與其相關聯的子網路。

   1. 在確認頁面上，輸入 **delete**，然後選擇 **Delete** (刪除)。

# 教學課程：建立要與資料庫執行個體搭配使用的 (VPC)(雙堆疊模式)
<a name="CHAP_Tutorials.CreateVPCDualStack"></a>

常用案例包括以 Amazon VPC 服務為基礎的虛擬私有雲端 (VPC) 中的資料庫執行個體。此 VPC 與在相同 VPC 中執行的公有 Amazon EC2 執行個體共用資料。

於本教學課程中，您將為此案例建立與以雙堆疊模式執行之資料庫搭配使用的 VPC。雙堆疊模式，可透過 IPv6 定址通訊協定啟用連線。若需 IP 定址的詳細資訊，請參閱 [Amazon RDS IP 定址](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.IP_addressing)。

大部分地區都支援雙堆疊網路執行個體。如需更多資訊，請參閱[區域和版本可用性](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.IP_addressing.RegionVersionAvailability)。若要查看雙堆疊模式的限制，請參閱 [雙堆疊網路資料庫執行個體的限制](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.IP_addressing.dual-stack-limitations)。

此案例可以下列圖表顯示。

 

![\[VPC 案例 (雙堆疊模式)\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/con-VPC-sec-grp-dual-stack.png)


如需其他案例的相關資訊，請參閱[在 VPC 中存取資料庫執行個體的案例](USER_VPC.Scenarios.md)。

您的資料庫執行個體僅需供您的 Amazon EC2 執行個體使用，無需供公有網際網路使用。因此，您建立同時包含公有和私有子網路的 VPC。Amazon EC2 執行個體是在公有子網路中託管，如此其可連接至公有網際網路。資料庫執行個體被託管於私有子網路中。Amazon EC2 執行個體可連線至資料庫執行個體，因為其託管於相同 VPC 中。但是，資料庫執行個體不可用於公有網際網路，以提供更高的安全性。

本教學課程會在單獨的可用區域中設定額外的公有子網路和私有子網路。教學課程不會使用這些子網路。RDS 資料庫子網路群組需要至少兩個可用區域中的子網路。額外的子網路可讓您在未來輕鬆切換到多可用區域資料庫執行個體部署。

若要建立使用雙堆疊模式的資料庫執行個體，請為 **Network type (網路類型)** 設定指定 **Dual-stack mode (雙堆疊模式)**。您也可以使用相同設定來修改資料庫執行個體。如需詳細資訊，請參閱[建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)及[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

本教學課程說明為 Amazon RDS 資料庫執行個體配置 VPC。如需 Amazon VPC 的詳細資訊，請參閱《Amazon VPC 使用者指南》[https://docs.aws.amazon.com/vpc/latest/userguide/](https://docs.aws.amazon.com/vpc/latest/userguide/)。

## 建立含私有和公有子網路的 VPC
<a name="CHAP_Tutorials.CreateVPCDualStack.VPCAndSubnets"></a>

使用下列程序來建立一個同時含公有和私有子網路的 VPC。

**建立 VPC 和子網路**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在 的右上角 AWS 管理主控台，選擇要在其中建立 VPC 的區域。此範例使用 美國東部 (俄亥俄) 區域。

1. 在左上角，選擇 **VPC Dashboard** (VPC 儀表板)。若要開始建立 VPC，請選擇 **Create VPC** (建立 VPC)。

1. 在 **VPC Settings** (VPC 設定) 的 **Resources to create** (建立資源) 下，選擇 **VPC and more** (VPC 和更多)。

1. 對於剩下的 **VPC 設定**，設定這些值：
   + **Name tag auto-generation** (自動產生名稱標籤) – **tutorial-dual-stack**
   + **IPv4 CIDR block** (IPv4 CIDR 區塊) – **10.0.0.0/16**
   + **IPv6 CIDR block** (IPv6 CIDR 區塊) – **Amazon-provided IPv6 CIDR block** (Amazon 提供的 IPv6 CIDR 區塊)
   + **Tenancy** (租用) – **Default** (預設)
   + **Number of Availability Zones (AZs)** (可用區域 (AZ) 的數量) – **2**
   + **Customize AZs** (自訂可用區域) - 保留預設值。
   + **Number of public subnet** (公有子網路數量) – **2**
   + **Number of private subnets** (私有子網路數量) – **2**
   + **Customize subnets CIDR blocks** (自訂子網路 CIDR 區塊) – 保留預設值。
   + **NAT gateways (\$1)** (NAT 閘道 (\$1)) – **None** (無)
   + **Egress only internet gateway** (僅輸出網際網路閘道) – **No** (否)
   + **VPC endpoints** (VPC 端點) – **None** (無)
   + **DNS options** (DNS 選項) – 保留預設值。
**注意**  
Amazon RDS 需要至少兩個不同可用區域中的子網路，以支援多可用區域資料庫執行個體部署。本教學課程會建立單一可用區部署，但是，可讓您會來輕鬆轉換為多區域可用資料庫執行個體部署。

1. 選擇**建立 VPC**。

## 建立公有 Amazon EC2 執行個體的 VPC 安全群組
<a name="CHAP_Tutorials.CreateVPCDualStack.SecurityGroupEC2"></a>

接著建立公開存取的 VPC 安全群組。若要連接至 VPC 中的公有 EC2 執行個體，請將傳入規則新增至 VPC 安全群組，以允許流量從網際網路連接。

**建立 VPC 安全群組**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 選擇 **VPC Dashboard (VPC 儀表板)**，再選擇 **Security Groups (安全群組)**，然後選擇 **Create security group (建立安全群組)**。

1. 在 **Create security group (建立安全群組)** 頁面上，設定下列值：
   + **安全群組名稱：****tutorial-dual-stack-securitygroup**
   + **描述:** **Tutorial Dual-Stack Security Group**
   + **VPC:** 選擇您先前建立的 VPC，例如 **vpc-*識別符* (tutorial-dual-stack-vpc)** 

1. 將傳入規則新增至安全群組

   1. 決定用於使用安全殼層 (SSH) 連接至 VPC 中 EC2 執行個體的 IP 地址。

      網際網路通訊協定第 4 版 (IPv4) 位址的範例為 `203.0.113.25/32`。網際網路通訊協定第 6 版 (IPv6) 地址範圍的範例為 `2001:db8:1234:1a00::/64`。

      在許多情況下，您可能透過網際網路服務供應商 (ISP) 或是從沒有靜態 IP 地址的防火牆進行連線。若是如此，請找出用戶端電腦所使用的 IP 地址範圍。
**警告**  
若您將 `0.0.0.0/0` 用於 IPv4 或 `::0` 用於 IPv6，則可讓所有 IP 地址使用 SSH 存取您的公有執行個體。通常在測試環境中短暫使用此方法是沒有問題的，但在生產環境則不安全。在生產環境中，建議您只授權特定 IP 地址或特定範圍的地址存取您的執行個體。

   1. 在 **Inbound rules (傳入規則)** 區段中，選擇 **Add rule (新增規則)**。

   1. 針對您的新傳入規則設定下列值，來允許透過 Secure Shell (SSH) 存取您的 Amazon EC2 執行個體。若執行此動作，您可連線至 EC2 執行個體來安裝 SQL 用戶端和其他應用程式。指定 IP 地址，讓您可以存取 EC2 執行個體：
      + **Type (類型)**：**SSH**
      + **Source (來源)**：來自步驟 a 的 IP 地址或範圍。IPv4 IP 地址的範例為 **203.0.113.25/32**。IPv6 IP 地址的範例為 **2001:DB8::/32**。

1. 請選擇 **Create security group (建立安全群組)** 以建立安全群組。

   請記下安全群組 ID，因為稍後在本教學中會需要它。

## 建立私有資料庫執行個體的 VPC 安全群組
<a name="CHAP_Tutorials.CreateVPCDualStack.SecurityGroupDB"></a>

若要讓您的資料庫執行個體保持私有，請建立第二個安全群組供私有存取。若要連線至 VPC 中的私有資料庫執行個體，請將傳入規則新增至 VPC 安全群組。這些規則僅允許來自 Amazon EC2 執行個體的流量。

**建立 VPC 安全群組**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 選擇 **VPC Dashboard (VPC 儀表板)**，再選擇 **Security Groups (安全群組)**，然後選擇 **Create security group (建立安全群組)**。

1. 在 **Create security group (建立安全群組)** 頁面上，設定下列值：
   + **安全群組名稱：****tutorial-dual-stack-db-securitygroup**
   + **描述:** **Tutorial Dual-Stack DB Instance Security Group**
   + **VPC:** 選擇您先前建立的 VPC，例如 **vpc-*識別符* (tutorial-dual-stack-vpc)**

1. 將傳入規則新增至安全群組：

   1. 在 **Inbound rules (傳入規則)** 區段中，選擇 **Add rule (新增規則)**。

   1. 針對您的新傳入規則設定下列值，來允許連接埠 3306 上來自 Amazon EC2 執行個體的 MySQL 流量。如果這樣做，您可以從 EC2 執行個體連線至資料庫執行個體。這樣做表示您可以從 EC2 執行個體將資料傳送至您的資料庫。
      + **Type (類型)**：**MySQL/Aurora**
      + **Source** (來源)：您先前在本教學課程中建立的 **tutorial-dual-stack-securitygroup** 安全群組的識別符，例如 **sg-9edd5cfb**。

1. 若要建立安全群組，請選擇 **Create security group (建立安全群組)**。

## 建立資料庫子網路群組
<a name="CHAP_Tutorials.CreateVPCDualStack.DBSubnetGroup"></a>

*資料庫子網路群組*是您在 VPC 中建立，然後指派給資料庫執行個體的子網路的集合。透過使用資料庫子網路群組，您可在建立資料庫執行個體時指定特定的 VPC。如要建立與 `DUAL` 相容的資料庫子網路群組，則所有子網路必須與 `DUAL` 相容。如要成為 `DUAL` 相容，子網路必須具有與其關聯的 IPv6 CIDR。

**建立資料庫子網路群組**

1. 識別 VPC 中資料庫的私有子網路。

   1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **Subnets** (子網路)。

   1. 記下名為 **tutorial-dual-stack-subnet-private1-us-west-2a** 和 **tutorial-dual-stack-subnet-private2-us-west-2b** 之子網路的子網路 ID。

      當您建立資料庫子網路群組時，您將需要子網路 ID。

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

   請確定您連接到 Amazon RDS 主控台，而非 Amazon VPC 主控台。

1. 在導覽窗格中選擇 **Subnet groups (子網路群組)**。

1. 選擇 **Create DB Subnet Group** (建立資料庫子網路群組)。

1. 在 **Create DB subnet group** (建立資料庫子網路群組) 頁面上，於 **Subnet group details** (子網路群組詳細資訊) 中設定下列值：
   + **名稱:** **tutorial-dual-stack-db-subnet-group**
   + **描述:** **Tutorial Dual-Stack DB Subnet Group**
   + **VPC (VPC)：** **tutorial-dual-stack-vpc (vpc-*識別符*)** 

1. 在 **Add subnets (新增子網路)** 區段中，選擇 **Availability Zones (可用區域)** 和 **Subnets (子網路)** 選項的值。

   對於此教學課程，為 **Availability Zones** (可用區域) 選擇 **us-east-2a** 和 **us-east-2b**。對於 **Subnets** (子網路)，選擇您在上一個步驟找到的私有子網路。

1. 選擇**建立**。

您的新資料庫子網路群組會顯示在 RDS 主控台的資料庫子網路群組清單中。您可以選擇資料庫子網路群組來查看其詳細資訊。其中包括受支援的定址通訊協定、與該組相關聯的所有子網路，以及資料庫子網路群組支援的網路類型。

## 在雙堆疊模式下建立 Amazon EC2 執行個體
<a name="CHAP_Tutorials.CreateVPCDualStack.CreateEC2Instance"></a>

若要建立 Amazon EC2 執行個體，請遵循《Amazon EC2 使用者指南》**中的[使用新的啟動執行個體精靈啟動執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html)。

在 **Configure Instance Details** (設定執行個體詳細資訊) 頁面上設定這些值，而其他值都維持預設值：
+ **網路**：選擇具備公有和私有子網路的現有 VPC，例如 [建立含私有和公有子網路的 VPC](#CHAP_Tutorials.CreateVPCDualStack.VPCAndSubnets) 中建立的 **tutorial-dual-stack-vpc** (vpc-*identifier*)。
+ **Subnet** (子網路) – 選擇現有的公有子網路，例如 [建立公有 Amazon EC2 執行個體的 VPC 安全群組](#CHAP_Tutorials.CreateVPCDualStack.SecurityGroupEC2) 中建立的 **subnet-*識別符* \$1 tutorial-dual-stack-subnet-public1-us-east-2a \$1 us-east-2a**。
+ **Auto-assign Public IP** (自動指派公有 IP) – 選擇 **Enable** (啟用)。
+ **Auto-assign IPv6 IP** (自動指派 IPv6 IP) – 選擇 **Enable** (啟用)。
+ **Firewall (security groups)** 防火牆 (安全群組) – 選擇 **Select an existing security group** (選取現有的安全群組)。
+ **Common security groups** (一般安全群組) - 選擇現有的安全群組，例如在 [建立公有 Amazon EC2 執行個體的 VPC 安全群組](#CHAP_Tutorials.CreateVPCDualStack.SecurityGroupEC2) 中建立的 `tutorial-securitygroup`。請確定您選擇的安全性群組包含安全殼層 (SSH) 和 HTTP 存取的輸入規則。

## 在雙堆疊模式下建立資料庫執行個體
<a name="CHAP_Tutorials.CreateVPCDualStack.CreateDBInstance"></a>

在此步驟中，您將建立在雙堆疊模式下執行的資料庫執行個體。

**建立資料庫執行個體**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1. 在主控台的右上角，選擇 AWS 區域 您要建立資料庫執行個體的 。此範例使用 美國東部 (俄亥俄) 區域。

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇 **Create database** (建立資料庫)。

1. 在 **Create database** (建立資料庫) 頁面上，確保已選擇 **Standard create** (標準建立) 選項，接著選擇 MySQL 資料庫引擎類型。

1. 在 **Connectivity** (連線) 區段中，設定下列值：
   + **Network type** (網路類型) – 選擇 **Dual-stack mode** (雙堆疊模式)。  
![\[主控台中的 Network type (網路類型) 區段，選取了 Dual-stack mode (雙堆疊模式)\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/dual-stack-mode.png)
   + **Virtual private cloud (VPC)** 虛擬私有雲端 (VPC) – 選擇具備公有和私有子網路的現有 VPC，例如 [建立含私有和公有子網路的 VPC](#CHAP_Tutorials.CreateVPCDualStack.VPCAndSubnets) 中建立的 **tutorial-dual-stack-vpc** (vpc-*識別符*)。

     VPC 必須具有位於不同可用區域的子網路。
   + **DB Subnet group** (資料庫子網路群組) – 選擇 VPC 的資料庫子網路群組，例如 [建立資料庫子網路群組](#CHAP_Tutorials.CreateVPCDualStack.DBSubnetGroup) 中建立的 **tutorial-dual-stack-db-subnet-group**。
   + **Public access** (公有存取) – 選擇 **No** (否)。
   + **VPC security group (firewall)** (VPC 安全群組 (防火牆)) – 選取 **Choose existing** (選擇現有)。
   + **Existing VPC security groups (現有 VPC 安全群組)** – 選擇設定為私有存取的現有 VPC 安全群組，例如在 [建立私有資料庫執行個體的 VPC 安全群組](#CHAP_Tutorials.CreateVPCDualStack.SecurityGroupDB) 中建立的 **tutorial-dual-stack-db-securitygroup**。

     選擇與各項相關聯的 **X**，以移除其他安全群組，例如預設安全群組。
   + **Availability Zone** (可用區域) – 選擇 **us-west-2a**。

     若要避免跨可用區域流量，請確定資料庫執行個體和 EC2 執行個體位於相同的可用區域。

1. 在其餘區段，指定資料庫執行個體的設定。如需每項設定的相關資訊，請參閱 [資料庫執行個體的設定](USER_CreateDBInstance.Settings.md)。

## 連接至您的 Amazon EC2 執行個體和資料庫執行個體
<a name="CHAP_Tutorials.CreateVPCDualStack.Connect"></a>

在雙堆疊模式下建立 Amazon EC2 執行個體和資料庫執行個體後，您可以使用 IPv6 通訊協定連線到每個執行個體。如要使用 IPv6 通訊協定連線至 Amazon EC2 執行個體，請按照《Amazon EC2 使用者指南》**中[連接至您的 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)的指示進行。

若要從 Amazon EC2 執行個體連線至您的 RDS for MySQL 資料庫執行個體，請依照[連線至 MySQL 資料庫執行個體](CHAP_GettingStarted.CreatingConnecting.MySQL.md#CHAP_GettingStarted.Connecting.MySQL)中的指示進行。

## 刪除 VPC
<a name="CHAP_Tutorials.CreateVPCDualStack.Delete"></a>

為此教學課程建立 VPC 和其他資源後，如果不再需要這些資源，便可以將它們刪除。

若您在針對此教學課程建立的 VPC 中新增資源，則可能需要先刪除這些資源，才能刪除 VPC。資源範例為 Amazon EC2 執行個體或資料庫執行個體。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[刪除 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting)。

**刪除 VPC 和相關資源**

1. 刪除資料庫子網路群組：

   1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

   1. 在導覽窗格中選擇 **Subnet groups (子網路群組)**。

   1. 選取要刪除的資料庫子網路群組，例如 **tutorial-db-subnet-group**。

   1. 選擇 **Delete** (刪除)，然後在確認視窗中選擇 **Delete** (刪除)。

1. 請記下 VPC ID：

   1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **VPC**。

   1. 在清單中，識別您建立的 VPC，例如 **tutorial-dual-stack-vpc**。

   1. 請記下您所建立 VPC 的 **VPC ID**。於後續步驟中，您會需要此 VPC ID。

1. 刪除安全群組：

   1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **Security Groups** (安全群組)。

   1. 選取 Amazon RDS 資料庫執行個體的安全群組，例如 **tutorial-dual-stack-db-securitygroup**。

   1. 若為 **Actions (動作)**，選擇 **Delete security groups (刪除安全群組)**，然後在確認頁面上選擇 **Delete (刪除)**。

   1. 在 **Security Groups (安全群組)** 頁面上，選取 Amazon EC2 執行個體的安全群組，例如 **tutorial-dual-stack-securitygroup**。

   1. 若為 **Actions (動作)**，選擇 **Delete security groups (刪除安全群組)**，然後在確認頁面上選擇 **Delete (刪除)**。

1. 刪除 NAT 閘道：

   1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **NAT Gateways** (NAT 閘道)。

   1. 選取您建立之 VPC 的 NAT 閘道。使用 VPC ID 識別正確的 NAT 閘道。

   1. 若為 **Actions (動作)**，選擇 **Delete NAT gateway (刪除 NAT 閘道)**。

   1. 在確認頁面上，輸入 **delete**，然後選擇 **Delete** (刪除)。

1. 刪除 VPC

   1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

   1. 選擇 **VPC Dashboard** (VPC 儀表板)，然後選擇 **VPC**。

   1. 選取您要刪除的 VPC，例如 **tutorial-dual-stack-vpc**。

   1. 對於 **Actions (動作)**，請選擇 **Delete VPC (刪除 VPC)**。

      確認頁面會顯示與 VPC 相關聯的其他資源，這些資源也將遭到刪除，包括與其相關聯的子網路。

   1. 在確認頁面上，輸入 **delete**，然後選擇 **Delete** (刪除)。

1. 釋放彈性 IP 地址：

   1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

   1. 選擇 **EC2 Dashboard** (EC2 儀表板)，然後選擇 **Elastic IPs** (彈性 IP)。

   1. 選取您要釋放的彈性 IP 地址。

   1. 若為 **Actions (動作)**，選擇 **Release Elastic IP addresses (釋放彈性 IP 地址)**。

   1. 在確認頁面上，選擇 **Release** (釋放)。

# 將不在 VPC 中的資料庫執行個體移入 VPC
<a name="USER_VPC.Non-VPC2VPC"></a>

EC2-Classic 平台上的部分舊型資料庫執行個體不在 VPC 中。若您的資料庫執行個體不在 VPC 中，您可以使用AWS 管理主控台將資料庫執行個體輕鬆移入 VPC。您必須先建立 VPC，才能將不在 VPC 中的資料庫執行個體移入 VPC。


|  | 
| --- |
| EC2-Classic 在 2022 年 8 月 15 日淘汰。如果您還沒有從 EC2-Classic 遷移至 VPC，建議您盡快這麼做。如需詳細資訊，請參閱 Amazon EC2 使用者指南中的[從 EC2-Classic 遷移至 VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html)，以及 [EC2-Classic Networking is Retiring – Here’s How to Prepare](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/) (EC2-Classic 網路正在淘汰 - 本文介紹如何準備) 部落格文章。 | 

**重要**  
如果您是第一次使用 Amazon RDS 的新客戶，且先前從未建立過資料庫執行個體，或是要在未曾使用的 AWS 區域中建立資料庫執行個體，則在幾乎所有情況下，使用的平台都是 *EC2-VPC*，並擁有預設的 VPC。如需在 VPC 中使用資料庫執行個體的相關資訊，請參閱 [在 VPC 中使用資料庫執行個體](USER_VPC.WorkingWithRDSInstanceinaVPC.md)。

請依照以下步驟，為您的資料庫執行個體建立 VPC。
+ [步驟 1：建立 VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.CreatingVPC)
+  [步驟 2：建立資料庫子網路群組](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.CreateDBSubnetGroup)
+  [步驟 3：建立 VPC 安全群組](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.CreateVPCSecurityGroup)

建立 VPC 後，請依照以下步驟，將您的資料庫執行個體移入 VPC。
+ [更新資料庫執行個體的 VPC](USER_VPC.VPC2VPC.md)

強烈建議您在遷移之前，立即建立資料庫執行個體的備份。這麼做可確保在遷移失敗時，可以還原資料。如需更多詳細資訊，請參閱 [備份、還原和匯出資料](CHAP_CommonTasks.BackupRestore.md)。

將資料庫執行個體移入 VPC 有幾個限制，說明如下。
+ **上一代資料庫執行個體類別** – VPC 平台上可能不支援上一代資料庫執行個體類別。將資料庫執行個體移至 VPC 時，請選擇 db.m3 或 db.r3 資料庫執行個體類別。將資料庫執行個體移至 VPC 後，您可以擴展資料庫執行個體以使用較新的資料庫執行個體類別。如需 VPC 支援執行個體類別的完整清單，請參閱 [Amazon RDS 執行個體類型](https://aws.amazon.com/rds/instance-types/)。
+ **異地同步備份** – 目前系統不支援將不在 VPC 中的異地同步備份資料庫執行個體移入 VPC。若要將資料庫執行個體移至 VPC，請先修改資料庫執行個體，使其成為單一可用區部署。將 **Multi-AZ deployment** (異地同步備份部署) 設定變更為 **No** (否)。將資料庫執行個體移至 VPC 後，再次將其修改為異地同步備份部署。如需更多詳細資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。
+ **讀取複本** – 目前不支援將具有不在 VPC 中的僅供讀取複本的資料庫執行個體移至 VPC。若要將資料庫執行個體移至 VPC，請先刪除其所有讀取複本。將資料庫執行個體移至 VPC 後，請重新建立讀取複本。如需更多詳細資訊，請參閱 [使用資料庫執行個體僅供讀取複本](USER_ReadRepl.md)。
+ **選項群組** – 如果您將資料庫執行個體移至 VPC，且資料庫執行個體使用自訂選項群組，請變更與資料庫執行個體關聯的選項群組。選項群組會依平台而異，隨著執行個體移入 VPC，平台也會一併改變。若要在這種情況下使用自訂選項群組，可將預設 VPC 選項群組指派給資料庫執行個體、指派您移動目的地中其他資料庫執行個體所使用的選項群組，或是建立新的選項群組，並將其指派給該資料庫執行個體。如需更多詳細資訊，請參閱 [使用選項群組](USER_WorkingWithOptionGroups.md)。

## 以最短的停機時間，將不在 VPC 中的資料庫執行個體移到 VPC 中的替代方案
<a name="USER_VPC.Non-VPC2VPC.Minimal-Downtime"></a>

使用下列替代方案，您可以將不在 VPC 中的資料庫執行個體移到 VPC 中，而且停機時間最小。這些替代方案會對來源資料庫執行個體造成最小的中斷，並允許它在遷移期間提供使用者流量服務。不過，遷移至 VPC 所需的時間會根據資料庫大小和即時工作負載特性而有所不同。
+ **AWS Database Migration Service (AWS DMS)** – AWS DMS 可啟用資料的即時遷移，同時保持來源資料庫執行個體完全可運作，但它只會複寫一組有限的 DDL 陳述式。AWS DMS 不會傳播項目，例如索引、使用者、權限、預存程序，及其他未與資料表資料直接相關的資料庫變更。此外，AWS DMS 不會自動使用 RDS 快照進行初始資料庫執行個體建立，這會增加遷移時間。如需詳細資訊，請參閱 [AWS Database Migration Service](https://aws.amazon.com/dms/)。
+ **資料庫快照還原或時間點復原** – 您可以藉由還原資料庫執行個體，或藉由將資料庫執行個體還原至某時間點，以將資料庫執行個體移至 VPC。如需詳細資訊，請參閱 [還原至資料庫執行個體](USER_RestoreFromSnapshot.md) 及 [將 Amazon RDS 的資料庫執行個體還原至指定時間](USER_PIT.md)。