本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 Aurora PostgreSQL 資料庫叢集並與之連線
本教學課程會建立 EC2 執行個體和 Aurora PostgreSQL 資料庫叢集。本教學課程說明如何使用標準 PostgreSQL 用戶端,從 EC2 執行個體存取資料庫叢集。本教學課程為最佳實務,會在虛擬私有雲端 (VPC) 中建立私有資料庫叢集。在多數情況下,相同 VPC 中的其他資源 (例如 EC2 執行個體) 可以存取該資料庫叢集,但 VPC 以外的資源便無法存取該執行個體。
完成教學課程後,在您的 VPC 中,每個可用區域都有一個公有子網路和私有子網路。在可用區域中,EC2 執行個體位於公有子網路中,而資料庫執行個體則可於私有子網路中。
重要
創建 AWS 帳戶無需支付任何費用。但是,完成此教學課程後,您可能會對使用的 AWS 資源產生費用。如果不再需要這些資源,您可以在完成教學課程後刪除這些資源。
下圖顯示此教學課程完成時的組態。
![EC2 執行個體和 Aurora PostgreSQL 資料庫叢集。](images/getting-started-aurora-postgresql.png)
本教學課程可讓您使用下列其中一種方法來建立資源:
-
使用 AWS Management Console ‐步驟 1:建立 EC2 執行個體 和 步驟 2:建立 Aurora PostgreSQL 資料庫叢集
-
用 AWS CloudFormation 於建立資料庫執行個體和 EC2 執行個體‐(選用) 使用建立 VPC、EC2 執行個體和 Aurora PostgreSQL 叢集 AWS CloudFormation
第一種方法使用輕鬆建立來建立私有 Aurora PostgreSQL 資料庫叢集。 AWS Management Console在這裡,您只指定資料庫引擎類型、資料庫執行個體大小和資料庫叢集識別碼。Easy Create (輕鬆建立) 會使用其他組態選項的預設設定。
當您改用標準建立時,您可以在建立資料庫叢集時指定更多組態選項。這些選項包括可用性、安全性、備份和維護的設定。若要建立公有資料庫叢集,您必須使用標準建立。如需相關資訊,請參閱建立 Amazon Aurora 資料庫叢集。
主題
必要條件
在開始之前,請先完成下節所含步驟:
步驟 1:建立 EC2 執行個體
建立您會用來連線至資料庫的 Amazon EC2 執行個體。
建立 EC2 執行個體
登入 AWS Management Console 並開啟 Amazon EC2 主控台,網址為 https://console.aws.amazon.com/ec2/
。 -
在的右上角 AWS Management Console,選擇您要 AWS 區域 在其中建立 EC2 執行個體的執行個體。
-
選擇 EC2 儀表板,然後選擇啟動執行個體,如下圖所示。
啟動執行個體頁面即開啟。
-
在啟動執行個體頁面中選擇下列設定。
-
在 Name and tags (名稱與標籤) 下,對於 Name (名稱),輸入
ec2-database-connect
。 -
在應用程式和作業系統映像 (Amazon Machine Image) 中,選擇 Amazon Linux,然後選擇 Amazon Linux 2023 AMI。保留其他選項的預設選擇。
-
在Instance type (執行個體類型) 下,選擇 t2.micro。
-
在 Key pair (login) (金鑰對 (登入)) 下,選擇 Key pair name (金鑰對名稱),以使用現有金鑰對。若要為 Amazon EC2 執行個體建立新的金鑰對,請選擇 Create new key pair (建立新的金鑰對),然後使用 Create key pair (建立金鑰對) 視窗來建立金鑰對。
如需有關建立新 key pair 的詳細資訊,請參閱 Amazon EC2 使用者指南中的建立 key pair。
-
對於網路設定中的允許 SSH 流量,選擇 EC2 執行個體的 SSH 連線來源。
如果顯示的 IP 地址對 SSH 連線而言是正確的,您可以選擇 My IP (我的 IP)。否則,您可以決定用於使用 Secure Shell (SSH) 連線至 VPC 中 EC2 執行個體的 IP 地址。若要判斷公有 IP 地址,您可以在不同的瀏覽器視窗或索引標籤中使用 https://checkip.amazonaws.com
中的服務。IP 地址的範例為 192.0.2.1/32。 在許多情況下,您可能透過網際網路服務供應商 (ISP) 或是從沒有靜態 IP 地址的防火牆進行連線。若是如此,請務必確定用戶端電腦所使用的 IP 地址範圍。
警告
如果您使用
0.0.0.0/0
進行 SSH 存取,則可讓所有 IP 地址使用 SSH 存取您的公有 EC2 執行個體。通常在測試環境中短暫使用此方法是沒有問題的,但在生產環境則不安全。在生產環境中,您應只授權特定 IP 地址或特定範圍的地址可使用 SSH 存取您的 EC2 執行個體。下圖顯示網路設定區段的範例。
-
讓剩餘區段保留預設值。
-
檢閱摘要面板中 EC2 執行個體組態的摘要,並在準備就緒時選擇啟動執行個體。
-
-
在啟動狀態頁面上,記下新的 EC2 執行個體的識別碼,例如:
i-1234567890abcdef0
。 -
選擇 EC2 執行個體識別符,以開啟 EC2 執行個體清單,然後選取您的 EC2 執行個體。
-
在詳細資訊索引標籤中,請記下以下值,當您使用 SSH 進行連線時需要這些值:
-
在執行個體摘要中,記下公用 IPv4 DNS 的值。
-
在執行個體詳細資訊中,記下金鑰對名稱的值。
-
-
請等待 EC2 執行個體的執行個體狀態為執行中,然後再繼續動作。
步驟 2:建立 Aurora PostgreSQL 資料庫叢集
在此範例中,您使用輕鬆建立來建立 db.t4g.large 資料庫執行個體類別的 Aurora PostgreSQL 資料庫叢集。
以輕鬆建立來建立 Aurora PostgreSQL 資料庫叢集
-
登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/
。 在 Amazon RDS 主控台的右上角,選擇要建立資料庫叢集的 AWS 區域 。
-
在導覽窗格中,選擇 Databases (資料庫)。
-
選擇建立資料庫,並確定選擇輕鬆建立。
-
在組態中,針對引擎類型選擇 Aurora (PostgreSQL 相容)。
-
在 DB instance size (資料庫執行個體大小) 中,選擇 Dev/Test (開發/測試)。
-
針對資料庫叢集識別符輸入
database-test1
。Create database (建立資料庫) 頁面看起來應該會如下圖所示。
-
針對主要使用者名稱,輸入使用者的名稱,或保留預設名稱 (
postgres
)。 -
如要將自動產生的主要密碼用在資料庫叢集,請選取自動產生密碼。
如要輸入您的主要密碼,請確認清除自動產生密碼方塊,然後在主要密碼和確認密碼中輸入相同的密碼。
-
若要設定與先前建立之 EC2 執行個體的連線,請開啟設定 EC2 連線 - 選用。
選取連線至 EC2 運算資源。選擇先前建立的 EC2 執行個體。
-
開啟檢視輕鬆建立的預設設定。
您可以檢查與 Easy Create (輕鬆建立) 一起使用的預設設定。資料庫建立後可編輯欄顯示您可以在資料庫建立後變更的選項。
-
若該欄的設定為否,而您想要其他設定,可以使用標準建立來建立資料庫叢集。
-
若該欄的設定為是,而您想要其他設定,可以使用標準建立來建立資料庫叢集,或在建立後修改該資料庫叢集的設定。
-
-
選擇建立資料庫。
若要檢視資料庫叢集的主要使用者名稱和密碼,請選擇檢視登入資料詳細資訊。
您可以使用出現的使用者名稱和密碼,來以主要使用者的身分連線至資料庫叢集。
重要
您無法再次檢視主要使用者密碼。如果您沒有記錄下來,您可能需要進行變更。
若您需要在資料庫叢集可供使用後變更主要使用者密碼,您可以將資料庫叢集修改為這麼做。如需修改資料庫叢集的詳細資訊,請參閱修改 Amazon Aurora 資料庫叢集。
-
資料庫清單中,選擇新 Aurora PostgreSQL 資料庫叢集的名稱,以顯示其詳細資訊。
在資料庫叢集可供使用之前,寫入器執行個體會處於建立中狀態。
寫入器執行個體狀態變更為可用時,您便能連線至資料庫叢集。視資料庫執行個體類別和儲存體數量而定,可能需要最多 20 分鐘的時間,新的資料庫叢集才會可用。
(選用) 使用建立 VPC、EC2 執行個體和 Aurora PostgreSQL 叢集 AWS CloudFormation
您可以使用將基礎設施視為程式碼來佈建資源,而不是使用 AWS CloudFormation 主控台建立 VPC、EC2 執行個體和 Aurora PostgreSQL AWS 資料庫叢集。為了幫助您將 AWS 資源組織成更小且更易於管理的單元,您可以使用 AWS CloudFormation 嵌套堆棧功能。如需詳細資訊,請參閱在 AWS CloudFormation 主控台上建立堆疊和使用巢狀堆疊。
重要
AWS CloudFormation 是免費的,但 CloudFormation 創建的資源是活的。您必須支付這些資源的標準使用費,直到您終止這些資源為止。總計費用會很少。如需如何將任何費用降至最低的相關資訊,請前往AWS 免費方案
若要使用 AWS CloudFormation 主控台建立資源,請完成以下步驟:
步驟 1:下載 CloudFormation 範本
步驟 2:使用 CloudFormation
下載 CloudFormation 範本
CloudFormation 範本是 JSON 或 YAML 文字檔案,其中包含您要在堆疊中建立之資源的相關設定資訊。此範本也會與 Aurora 叢集一起為您建立 VPC 和防禦主機。
要下載模板文件,請打開以下鏈接,Aurora PostgreSQL CloudFormation
在 Github 頁面中,單擊下載原始文件按鈕以保存模板 YAML 文件。
使用 CloudFormation
注意
在開始此程序之前,請確定您的 AWS 帳戶. 如需詳細資訊,請參閱 Amazon EC2 金鑰對與 Linux 執行個體。
使用 AWS CloudFormation 範本時,您必須選取正確的參數,以確保資源已正確建立。請遵循下列步驟:
請登入 AWS Management Console 並開啟 AWS CloudFormation 主控台,網址為 https://console.aws.amazon.com/cloudformation
。 選擇 Create Stack (建立堆疊)。
在 [指定範本] 區段中,選取 [從電腦上傳範本檔案],然後選擇 [下一步]。
在「指定堆疊詳細資訊」頁面中,設定下列參數:
將堆棧名稱設置為 AurPostgreSQL TestStack。
在參數下,選取兩個可用區域來設定可用區域。
在 Linux 防禦主機組態下,對於金鑰名稱,選取要登入 EC2 執行個體的 key pair。
在 Linux 防禦主機組態設定中,將允許的 IP 範圍設定為您的 IP 位址。若要使用安全殼層 (SSH) 連線至 VPC 中的 EC2 執行個體,請使用 https://checkip.amazonaws.com
的服務判斷您的公有 IP 位址。IP 地址的範例為 192.0.2.1/32。 警告
如果您使用
0.0.0.0/0
進行 SSH 存取,則可讓所有 IP 地址使用 SSH 存取您的公有 EC2 執行個體。通常在測試環境中短暫使用此方法是沒有問題的,但在生產環境則不安全。在生產環境中,您應只授權特定 IP 地址或特定範圍的地址可使用 SSH 存取您的 EC2 執行個體。在「資料庫一般組態」下,將「資料庫」執行個體類別設定為 db. t4g.large。
將資料庫名稱設定為
database-test1
。在資料庫主要使用者名稱中,輸入主要使用者的名稱。
將使用密碼管理 Secrets Manager 管理資料庫主要使用者密碼設定
false
為此教學課程。對於資料庫密碼,請設定您選擇的密碼。請記住此密碼,以取得教學課程的進一步步驟。
將異地同步備份部署設定為。
false
保留所有其他設定為預設值。按一下「下一步」繼續。
在 [設定堆疊選項] 頁面中,保留所有預設選項。按一下「下一步」繼續。
在「複查堆疊」頁面中,選取檢查資料庫和 Linux 防禦主機選項後送出。
堆疊建立程序完成後,檢視包含名稱BastionStack和 APGNS 的堆疊,以記下連線至資料庫所需的資訊。如需詳細資訊,請參閱檢視上的 AWS CloudFormation 堆疊資料和資源 AWS Management Console。
步驟 3:連線至 Aurora PostgreSQL 資料庫叢集
您可以使用任何標準 PostgreSQL 用戶端應用程式來連線至資料庫叢集。在此範例中,您會使用 psql 命令列用戶端來連線至 Aurora PostgreSQL 資料庫叢集。
連線至 Aurora PostgreSQL 資料庫叢集
-
為資料庫叢集尋找寫入器執行個體的端點 (DNS 名稱) 和連線埠號碼。
-
登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/
。 在 Amazon RDS 主控台的右上角,選擇 AWS 區域 適用於資料庫叢集的。
-
在導覽窗格中,選擇 Databases (資料庫)。
-
選擇 Aurora PostgreSQL 資料庫叢集名稱以顯示其詳細資訊。
-
在連線能力和安全性索引標籤上,複製寫入器執行個體的端點。另外,請記下連線埠號碼。您需要同時有端點和連線埠號碼,才能連線至資料庫叢集。
-
-
按照 Amazon EC2 使用者指南中的連線到 Linux 執行個體中的步驟,Connect 到先前建立的 EC2 執行個體。
建議您使用 SSH 連線至 EC2 執行個體。如果 SSH 用戶端公用程式已安裝在 Windows、Linux 或 Mac 上,您可以使用下列命令格式連線至執行個體:
ssh -i
location_of_pem_file
ec2-user@ec2-instance-public-dns-name
例如,假設
ec2-database-connect-key-pair.pem
存放在 Linux 上 的/dir1
中,而 EC2 執行個體的公用 IPv4 DNS 為ec2-12-345-678-90.compute-1.amazonaws.com
。您的 SSH 命令看起來如下所示:ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
更新 EC2 執行個體上的軟體,以取得最新的錯誤修正和安全性更新。為此,請使用下列命令。
注意
-y
選項不要求確認就會安裝更新。若要先檢查更新再安裝,請省略此選項。sudo dnf update -y
-
請執行下列命令,在 Amazon Linux 2023 上安裝 PostgreSQL 的 psql 命令列用戶端:
sudo dnf install postgresql15
-
連線至 Aurora PostgreSQL 資料庫叢集。例如,輸入下列命令。此動作可讓您使用 psql 用戶端,連線至 Aurora PostgreSQL 資料庫叢集。
取代
的寫入器執行個體端點,取代endpoint
要連線的資料庫名稱postgres
--dbname
,以及取代您用於
的主要使用者名稱。提示您輸入密碼時,請提供您使用的主要密碼。postgres
psql --host=
endpoint
--port=5432 --dbname=postgres
--username=postgres
輸入使用者的密碼之後,您應該會看到類似如下的輸出。
psql (14.3, server 14.6) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. postgres=>
如需連線至 Aurora PostgreSQL 資料庫叢集的詳細資訊,請參閱 連接到 Amazon Aurora 郵政SQL數據庫集群。若您無法連線至資料庫叢集,請參閱 無法連線到 Amazon RDS 資料庫執行個體。
基於安全考量,最佳做法是使用加密連線。僅當用戶端和伺服器位於同一 VPC 且網路受信任時,才使用未加密的 PostgreSQL 連線。如需使用加密連線的詳細資訊,請參閱 使SSL用/保護 Aurora 波斯特SQL數據 TLS。
-
執行 SQL 命令。
例如,下列 SQL 命令會顯示目前的日期和時間:
SELECT CURRENT_TIMESTAMP;
步驟 4:刪除 EC2 執行個體和資料庫叢集
在連線至您已建立的範例 EC2 執行個體與資料庫叢集,並探索這些執行個體之後,請將其刪除,才不會再對您收費。
如果您曾經 AWS CloudFormation 建立資源,請略過此步驟並前往下一個步驟。
刪除 EC2 執行個體
登入 AWS Management Console 並開啟 Amazon EC2 主控台,網址為 https://console.aws.amazon.com/ec2/
。 -
在導覽窗格中,選擇執行個體。
-
選取 EC2 執行個體,並選取執行個體狀態、終止執行個體。
-
出現確認提示時,請選擇 Terminate (終止)。
如需刪除 EC2 執行個體的詳細資訊,請參閱 Amazon EC2 使用者指南中的終止執行個體。
刪除資料庫叢集
登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/
。 -
選擇 Databases (資料庫),然後選擇與該資料庫叢集相關聯的資料庫執行個體。
-
對於 Actions (動作),請選擇 Delete (刪除)。
-
選擇 Delete (刪除)。
在刪除與資料庫叢集相關聯的所有資料庫執行個體後,就會自動刪除該資料庫叢集。
(選擇性) 刪除使用建立的 EC2 執行個體和資料庫叢集 CloudFormation
如果您曾經 AWS CloudFormation 建立資源,請在連線並探索範例 EC2 執行個體和資料庫叢集後刪除 CloudFormation 堆疊,因此您不再需要支付費用。
若要刪除資 CloudFormation 源
開啟主 AWS CloudFormation 控台。
-
在 CloudFormation 主控台的 [堆疊] 頁面上,選取根堆疊 (沒有名稱為 vPCStack 的堆疊 BastionStack 或 APGNS)。
-
選擇刪除。
-
出現確認提示時,選取「刪除堆疊」。
如需有關在中刪除堆疊的詳細資訊 CloudFormation,請參閱《使用指南》中的〈刪除 AWS CloudFormation 主控台上的堆疊AWS CloudFormation〉。
(選用) 將資料庫叢集連線至 Lambda 函數
您也可以將 Aurora PostgreSQL 資料庫叢集連接至 Lambda 無伺服器運算資源。Lambda 函數允許您在沒有佈建或管理基礎設施的情況下執行程式碼。Lambda 函數還允許您自動回應任何規模的程式碼執行請求,從每天十幾個事件到每秒數百個事件。如需更多詳細資訊,請參閱 自動連線 Lambda 函數和Aurora 資料庫叢集。