建立並連線至 PostgreSQL 資料庫執行個體 - Amazon Relational Database Service

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

建立並連線至 PostgreSQL 資料庫執行個體

本教學課程會建立 EC2執行個體和 RDS for PostgreSQL 資料庫執行個體。本教學課程說明如何使用標準 PostgreSQL 用戶端從執行個體存取資料庫EC2執行個體。最佳實務是,本教學課程會在虛擬私有雲端 () 中建立私有資料庫執行個體VPC。在大多數情況下,相同 中的其他資源VPC,例如EC2執行個體,可以存取資料庫執行個體,但 以外的資源VPC無法存取。

完成教學課程後, 中的每個可用區域都會有一個公有和私有子網路VPC。在一個可用區域中,EC2執行個體位於公有子網路中,而資料庫執行個體位於私有子網路中。

重要

建立 AWS 帳戶無需付費。不過,完成本教學課程後,您使用 AWS 的資源可能會產生費用。如果不再需要這些資源,您可以在完成教學課程後刪除這些資源。

下圖顯示此教學課程完成時的組態。

EC2 執行個體和 PostgreSQL 資料庫執行個體。

本教學課程可讓您使用下列其中一種方法建立資源:

  1. 使用 AWS Management Console ‐ 建立EC2執行個體建立 PostgreSQL 資料庫執行個體

  2. 使用 AWS CloudFormation 建立資料庫執行個體和EC2執行個體 ‐ (選用) 使用 建立 、VPCEC2執行個體和 PostgreSQL 執行個體 AWS CloudFormation

第一種方法使用簡易建立來使用 建立私有 PostgreSQL 資料庫執行個體 AWS Management Console。在這裡,您只能指定資料庫引擎類型、資料庫執行個體大小和資料庫執行個體識別符。Easy Create (輕鬆建立) 會使用其他組態選項的預設設定。

當您改為使用標準建立時,您可以在建立資料庫執行個體時指定更多組態選項。這些選項包括可用性、安全性、備份和維護的設定。若要建立公有資料庫執行個體,您必須使用標準建立。如需相關資訊,請參閱 建立 Amazon RDS 資料庫執行個體

必要條件

在開始之前,請先完成下節所含步驟:

建立EC2執行個體

建立您將用來連線至資料庫的 Amazon EC2執行個體。

若要建立 EC2 執行個體
  1. 登入 AWS Management Console 並在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/

  2. 在 的右上角 AWS Management Console,選擇要在 AWS 區域 其中建立EC2執行個體的 。

  3. 選擇EC2儀表板 ,然後選擇啟動執行個體 ,如下圖所示。

    EC2 儀表板。

    啟動執行個體頁面即開啟。

  4. 啟動執行個體頁面中選擇下列設定。

    1. Name and tags (名稱與標籤) 下,對於 Name (名稱),輸入 ec2-database-connect

    2. 應用程式和作業系統映像 (Amazon Machine Image) 下,選擇 Amazon Linux ,然後選擇 Amazon Linux 2023 AMI。保留其他選項的預設選擇。

      選擇 Amazon Machine Image。
    3. Instance type (執行個體類型) 下,選擇 t2.micro

    4. Key pair (login) (金鑰對 (登入)) 下,選擇 Key pair name (金鑰對名稱),以使用現有金鑰對。若要為 Amazon EC2執行個體建立新的金鑰對,請選擇建立新的金鑰對,然後使用建立金鑰對視窗來建立金鑰對

      如需建立新金鑰對的詳細資訊,請參閱 Amazon EC2使用者指南 中的建立金鑰對

    5. 針對網路設定 中的允許SSH流量,選擇EC2執行個體的SSH連線來源。

      如果顯示的 IP 地址正確,您可以選擇我的 IP 進行SSH連線。否則,您可以使用 VPC Secure Shell () 來決定要用來連線至 中EC2執行個體的 IP 地址SSH。若要判斷公有 IP 地址,您可以在不同的瀏覽器視窗或索引標籤中使用 服務https://checkip.amazonaws.com。IP 地址的範例為 192.0.2.1/32。

      在許多情況下,您可以透過網際網路服務供應商 (ISP) 或從防火牆後方連線,而不需要靜態 IP 地址。若是如此,請務必確定用戶端電腦所使用的 IP 地址範圍。

      警告

      如果您使用 0.0.0.0/0 進行SSH存取,則可以使用 讓所有 IP 地址存取您的公有EC2執行個體SSH。通常在測試環境中短暫使用此方法是沒有問題的,但在生產環境則不安全。在生產中,僅授權特定 IP 地址或地址範圍,以使用 存取您的EC2執行個體SSH。

      下圖顯示網路設定區段的範例。

      EC2 執行個體的網路設定。
    6. 讓剩餘區段保留預設值。

    7. 在摘要面板中檢閱EC2執行個體組態的摘要,當您準備好時,請選擇啟動執行個體

  5. 啟動狀態頁面上,記下新EC2執行個體的識別碼,例如:i-1234567890abcdef0

    EC2 啟動狀態頁面上的執行個體識別碼。
  6. 選擇EC2執行個體識別符以開啟EC2執行個體清單,然後選擇您的EC2執行個體。

  7. 詳細資訊索引標籤中,記下您使用 連線時所需的下列值SSH:

    1. 執行個體摘要 中,記下公IPv4有 DNS的值。

      EC2 執行個體頁面詳細資訊索引標籤上的公有DNS名稱。
    2. 執行個體詳細資訊中,記下金鑰對名稱的值。

      EC2 執行個體頁面上詳細資訊索引標籤上的金鑰對名稱。
  8. 請等待執行個體的EC2執行個體狀態執行中,再繼續。

建立 PostgreSQL 資料庫執行個體

Amazon 的基本建置區塊RDS是資料庫執行個體。此環境可讓您執行 PostgreSQL 資料庫。

在此範例中,您可以使用 Easy Create 建立執行具有 db.t3.micro 資料庫執行個體類別的 PostgreSQL 資料庫引擎的資料庫執行個體。

使用輕鬆建立建立 PostgreSQL 資料庫執行個體
  1. 登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 在 Amazon RDS主控台的右上角,選擇要 AWS 建立資料庫執行個體的區域。

  3. 在導覽窗格中,選擇 Databases (資料庫)

  4. 選擇 Create database (建立資料庫),並確定選擇 Easy Create (輕鬆建立)

    輕鬆建立選項。
  5. 組態 中,選擇 Postgre SQL

  6. DB instance size (資料庫執行個體大小) 中,選擇 Free tier (免費方案)。

  7. 對於 DB instance identifier (資料庫執行個體識別碼),請輸入 database-test1

  8. 針對主要使用者名稱,輸入主要使用者的名稱,或保留預設名稱 (postgres)。

    Create database (建立資料庫) 頁面看起來應該會如下圖所示。

    建立資料庫頁面。
  9. 如要將自動產生的主要密碼用在資料庫執行個體,請選取自動產生密碼

    如要輸入您的主要密碼,請確認清除自動產生密碼方塊,然後在主要密碼確認密碼中輸入相同的密碼。

  10. 若要設定與您先前建立之EC2執行個體的連線,請開啟設定EC2連線 - 選用

    選取連線至EC2運算資源 。選擇您先前建立的EC2執行個體。

    設定EC2連線選項。
  11. 開啟檢視輕鬆建立的預設設定

    輕鬆建立 Postgre RDS的預設設定SQL。

    您可以檢查與 Easy Create (輕鬆建立) 一起使用的預設設定。資料庫建立後可編輯欄顯示您可以在資料庫建立後變更的選項。

    • 若該欄的設定為,而您想要其他設定,可以使用標準建立來建立資料庫執行個體。

    • 若該欄的設定為,而您想要其他設定,可以使用標準建立來建立資料庫執行個體,或在建立後修改該資料庫執行個體的設定。

  12. 選擇建立資料庫

    若要檢視資料庫執行個體的主要使用者名稱和密碼,請選擇 View credential details (檢視登入資料詳細資訊)

    您可以使用出現的使用者名稱和密碼,來以主要使用者的身分連線至資料庫執行個體。

    重要

    您無法再次檢視主要使用者密碼。如果您沒有記錄下來,您可能需要進行變更。

    如果您需要在資料庫執行個體可供使用後變更主要使用者密碼,您可以將資料庫執行個體修改為這麼做。如需修改 資料庫執行個體的詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體

  13. 資料庫清單中,選擇新 PostgreSQL 資料庫執行個體的名稱以顯示其詳細資訊。

    在其可供使用之前,資料庫執行個體會處於建立中狀態。

    資料庫執行個體詳細資訊。

    狀態變更為 Available (可用) 時,您便能連線至資料庫執行個體。視資料庫執行個體類別和儲存體數量而定,可能需要最多 20 分鐘的時間,新執行個體才會可用。

(選用) 使用 建立 、VPCEC2執行個體和 PostgreSQL 執行個體 AWS CloudFormation

您可以藉由將基礎設施視為程式碼來 AWS CloudFormation 佈建 AWS 資源,而不是使用主控台來建立 VPC、EC2執行個體和 PostgreSQL 執行個體。為了協助您將 AWS 資源組織成更小且更易於管理的單位,您可以使用 AWS CloudFormation 巢狀堆疊功能。如需詳細資訊,請參閱在 AWS CloudFormation 主控台上建立堆疊使用巢狀堆疊

重要

AWS CloudFormation 免費,但 CloudFormation 建立的資源為即時。在您終止這些資源之前,您需支付標準用量費用。總計費用會很少。如需有關如何將任何費用降至最低的資訊,請前往 AWS 免費方案

若要使用 AWS CloudFormation 主控台建立資源,請完成下列步驟:

  • 下載 CloudFormation 範本

  • 使用 設定您的 資源 CloudFormation

下載 CloudFormation範本

CloudFormation 範本是 JSON或 YAML 文字檔案,其中包含您要在堆疊中建立之資源的組態資訊。此範本也會為您和RDS執行個體建立 VPC和 基礎結構主機。

若要下載範本檔案,請開啟下列連結 Postgre SQL CloudFormation 範本

在 Github 頁面中,按一下下載原始檔案按鈕以儲存範本YAML檔案。

使用 設定您的 資源 CloudFormation

注意

在開始此程序之前,請確定您在 中有EC2執行個體的金鑰對 AWS 帳戶。如需詳細資訊,請參閱 Amazon EC2金鑰對和 Linux 執行個體

使用 AWS CloudFormation 範本時,您必須選取正確的參數,以確保您的資源建立正確。請遵循下列步驟:

  1. 登入 AWS Management Console 並在 https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

  2. 選擇 Create Stack (建立堆疊)。

  3. 在指定範本區段中,選取從電腦上傳範本檔案,然後選擇下一步。

  4. 指定堆疊詳細資訊頁面中,設定下列參數:

    1. 堆疊名稱設定為 P ostgreSQLTestStack

    2. 參數 下,選取三個可用區域來設定可用區域。

    3. Linux Bastion 主機組態 下,針對金鑰名稱 ,選取金鑰對以登入EC2執行個體。

    4. Linux Bastion Host 組態設定中,將允許的 IP 範圍設定為您的 IP 地址。若要VPC使用 Secure Shell (SSH) 連線至 中的EC2執行個體,請使用 上的 服務來判斷您的公有 IP 地址https://checkip.amazonaws.com。IP 地址的範例為 192.0.2.1/32。

      警告

      如果您使用 0.0.0.0/0 進行SSH存取,則可以使用 讓所有 IP 地址存取您的公有EC2執行個體SSH。通常在測試環境中短暫使用此方法是沒有問題的,但在生產環境則不安全。在生產中,僅授權特定 IP 地址或地址範圍,以使用 存取您的EC2執行個體SSH。

    5. 資料庫一般組態 下,將資料庫執行個體類別設定為 db.t3.micro

    6. 資料庫名稱設定為 database-test1

    7. 針對資料庫主要使用者名稱 ,輸入主要使用者的名稱。

    8. 針對本教學課程,使用 Secrets Manager 將管理資料庫主要使用者密碼設為 false

    9. 針對資料庫密碼 ,設定您選擇的密碼。請記住此密碼,以取得教學課程中的後續步驟。

    10. 資料庫儲存組態 下,將資料庫儲存類型設定為 gp2

    11. 資料庫監控組態 下,將啟用RDS績效詳情設定為 false。

    12. 將所有其他設定保留為預設值。按一下下一步以繼續。

  5. 設定堆疊選項頁面中,保留所有預設選項。按一下下一步以繼續。

  6. 檢閱堆疊頁面中,選取檢查資料庫和 Linux Bastion 主機選項後提交

堆疊建立程序完成後,使用名稱檢視堆疊RDSNSBastionStack並記下您需要連線至資料庫的資訊。如需詳細資訊,請參閱在 AWS CloudFormation 上檢視堆疊資料和資源 AWS Management Console

連線至 PostgreSQL 資料庫執行個體

您可以使用 pgadmin 或 psql 連線至資料庫執行個體。此範例說明如何使用 psql 命令列用戶端連線至 PostgreSQL 資料庫執行個體。

使用 psql 連線至 PostgreSQL 資料庫執行個體
  1. 尋找資料庫執行個體的端點 (DNS 名稱) 和連接埠號碼。

    1. 登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

    2. 在 Amazon RDS主控台的右上角, AWS 區域 選擇資料庫執行個體的 。

    3. 在導覽窗格中,選擇 Databases (資料庫)。

    4. 選擇 PostgreSQL 資料庫執行個體名稱以顯示其詳細資訊。

    5. Connectivity & security (連線能力和安全性) 索引標籤上,複製該端點。另外,請記下連接埠號碼。您需要同時有端點和連接埠號碼,才能連接至資料庫執行個體。

      連線至 PostgreSQL 資料庫執行個體。
  2. 請依照 Amazon EC2使用者指南 中的連線至 Linux 執行個體中的步驟,連線至EC2您先前建立的執行個體。 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html

    建議您使用 連線至EC2執行個體SSH。如果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執行個體IPv4DNS的公有 為 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
  3. 透過更新EC2執行個體上的軟體,取得最新的錯誤修正和安全性更新。若要執行此操作,請使用以下命令。

    注意

    -y 選項不要求確認就會安裝更新。若要先檢查更新再安裝,請省略此選項。

    sudo dnf update -y
  4. 若要從 Amazon Linux 2023 上的 PostgreSQL 安裝 psql 命令列用戶端,請執行下列命令:

    sudo dnf install postgresql15
  5. 連線至 PostgreSQL 資料庫執行個體。例如,在用戶端電腦上的命令提示字元中輸入下列命令。此動作可讓您使用 psql 用戶端連線至 PostgreSQL 資料庫執行個體。

    將資料庫執行個體端點 (DNS名稱) 替換為 endpoint、替換--dbname您要連線至的資料庫名稱postgres,以及替換您用於 的主要使用者名稱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=>

    如需連線至 PostgreSQL 資料庫執行個體的詳細資訊,請參閱 連線至執行 PostgreSQL 資料庫引擎的資料庫執行個體。如果您無法連線至資料庫執行個體,請參閱對 RDS for PostgreSQL 執行個體的連線進行故障診斷

    基於安全考量,最佳做法是使用加密連線。只有在用戶端和伺服器處於相同狀態VPC且網路受信任時,才能使用未加密的 PostgreSQL 連線。如需使用加密連線的詳細資訊,請參閱 透過 連線至 PostgreSQL 資料庫執行個體 SSL

  6. 執行SQL命令。

    例如,下列SQL命令會顯示目前的日期和時間:

    SELECT CURRENT_TIMESTAMP;

刪除EC2執行個體和資料庫執行個體

連線至 並探索您建立的範例EC2執行個體和資料庫執行個體後,請刪除這些執行個體,以便您不再需要支付這些執行個體的費用。

如果您使用 AWS CloudFormation 建立資源,請略過此步驟,然後前往下一個步驟。

若要刪除EC2執行個體
  1. 登入 AWS Management Console 並在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選取EC2執行個體,然後選擇執行個體狀態,終止執行個體

  4. 出現確認提示時,請選擇 Terminate (終止)

如需刪除EC2執行個體的詳細資訊,請參閱 Amazon EC2使用者指南 中的終止執行個體

刪除不含最終資料庫快照的資料庫執行個體
  1. 登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇想要刪除的資料庫執行個體。

  4. 對於 Actions (動作),請選擇 Delete (刪除)。

  5. 清除是否建立最後的快照?保留自動備份

  6. 完成確認,然後選擇刪除

(選用) 刪除使用 建立的EC2執行個體和資料庫執行個體 CloudFormation

如果您曾 AWS CloudFormation 使用 建立資源,請在連線至 並探索範例EC2執行個體和資料庫執行個體後刪除 CloudFormation 堆疊,這樣您就不再需要支付這些費用。

若要刪除 CloudFormation 資源
  1. 開啟 AWS CloudFormation 主控台。

  2. 在 的堆疊頁面上 CloudFormationconsole,選取根堆疊 (不含名稱 VPCStack、 BastionStack 或 的堆疊RDSNS)。

  3. 選擇 刪除

  4. 在提示確認時,選取刪除堆疊

如需在 中刪除堆疊的詳細資訊 CloudFormation,請參閱 AWS CloudFormation 使用者指南 中的刪除 AWS CloudFormation 主控台上的堆疊

(選用) 將資料庫執行個體連線至 Lambda 函數

您也可以將 RDS for PostgreSQL 資料庫執行個體連接至 Lambda 無伺服器運算資源。Lambda 函數允許您在沒有佈建或管理基礎設施的情況下執行程式碼。Lambda 函數還允許您自動回應任何規模的程式碼執行請求,從每天十幾個事件到每秒數百個事件。如需詳細資訊,請參閱自動連線 Lambda 函數和資料庫執行個體