於 EC2 Classic 內啟動並連接至外部 Amazon RDS 執行個體 - AWS Elastic Beanstalk

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

於 EC2 Classic 內啟動並連接至外部 Amazon RDS 執行個體

重要

Amazon EC2-Classic 將於 2022 年 8 月 15 日終止其標準支援。為避免工作負載中斷,建議您在此上述時間之前從 Amazon EC2 Classic 遷移至 VPC。我們也要求您日後不要在 Amazon EC2-Classic 啟動任何 AWS 資源,而是使用 Amazon VPC。如需詳細資訊,請參閱 從 EC2-Classic 移轉至 VPCEC2-Classic 網路正在淘汰 - 本文介紹如何準備的部落格文章。

若您使用 EC2 Classic (無 VPC) 搭配 AWS Elastic Beanstalk,程序會稍微變更,因為安全群組的運作方式有所不同。在 EC2 Classic 中,資料庫執行個體無法使用 EC2 安全群組,因此會取得僅可搭配 Amazon RDS 運作的資料庫安全群組。

您可將規則新增至資料庫安全群組,此安全群組允許來自 EC2 安全群組的傳入存取。不過,您無法將資料庫安全群組連接至與您的環境相關聯的 Auto Scaling 群組。為了避免在資料庫安全群組與您的環境間建立相依性,您必須在 Amazon EC2 建立第三個安全群組。然後,您需要在資料庫安全群組中新增規則,以將傳入存取權限授予新安全群組。最後,您應將其指派至 Elastic Beanstalk 環境中的 Auto Scaling 群組。

注意
  • 如果您是從 Elastic Beanstalk 建立,並隨後從 Beanstalk 環境解耦的資料庫開始,則可以略過第一組步驟,並以建立橋接安全群組下分組的步驟繼續進行。

  • 如果您計劃為生產環境使用解耦的資料庫,請確認該資料庫使用的儲存類型是否適合您的工作負載。如需詳細資訊,請參閱《Amazon RDS 使用者指南》中的資料庫執行個體儲存體修改資料庫執行個體

欲於 EC2 Classic (無 VPC) 中啟動 RDS 執行個體
  1. 開啟 RDS 管理主控台

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

  3. 繼續透過精靈進行。請記下您輸入下列選項的值:

    • Master username (主要使用者名稱)

    • Master Password (主密碼)

  4. 當您進入 Network and Security (網路與安全) 設定的 Configure advanced settings (設定進階設定) 時,請選擇下列項目:

  5. 設定剩餘選項,然後選擇 Create database (建立資料庫)。請記下您輸入下列選項的值:

    • Database Name (資料庫名稱)

    • Database Port (資料庫連接埠)

在 EC2-Classic 中,您的資料庫執行個體具備資料庫安全群組,而非 VPC 安全群組。您無法將資料庫安全群組連接至您的 Elastic Beanstalk 環境。反之,您需要建立新的安全群組,您可以授權該安全群組存取資料庫執行個體並連接至您的環境。我們將其稱為橋接安全群組,並命名為 webapp-bridge

欲建立橋接安全群組
  1. 開啟 Amazon EC2 主控台

  2. 在導覽側列的 Network & Security (網路與安全) 下,選擇 Security Groups (安全群組)。

  3. 選擇 Create Security Group (建立安全群組)。

  4. 針對 Security group name (安全群組名稱),輸入 webapp-bridge

  5. 針對 Description (描述),輸入 Provide access to DB instance from Elastic Beanstalk environment instances.

  6. 對於 VPC (VPC),請保留預設選擇。

  7. 選擇 Create (建立)

接著,修改連接至資料庫執行個體的安全群組,以允許來自橋接安全群組的傳入流量。

修改 RDS 執行個體安全群組的傳入規則
  1. 開啟 Amazon RDS 主控台

  2. 選擇 Databases (資料庫)。

  3. 選擇您的資料庫執行個體名稱以檢視其詳細資料。

  4. Connectivity (連線) 區段中,位於 Security (安全性) 下方,會顯示與資料庫執行個體相關聯的安全群組。開啟連結以檢視 Amazon EC2 主控台內的安全群組。

  5. 在安全群組詳細資訊中,將 Connection Type (連線類型) 設定為 EC2 Security Group (EC2 安全群組)

  6. EC2 Security Group Name (EC2 安全群組名稱) 設定為您建立的橋接安全群組名稱。

  7. 選擇 Authorize (授權)。

接著,請將橋接安全群組新增至執行環境。此程序必須透過其他連接的安全群組,重新佈建您環境中的所有執行個體。

欲將安全群組新增至您的環境
  • 執行下列任意一項:

    • 使用 Elastic Beanstalk 主控台新增安全群組

      1. 開啟 Elastic Beanstalk 主控台,然後在 Regions (區域) 清單中選取您的 AWS 區域。

      2. 在導覽窗格中,選擇 Environments (環境),然後在清單中選擇您環境的名稱。

        注意

        如果您有許多環境,請使用搜尋列來篩選環境清單。

      3. 在導覽窗格中,選擇 Configuration (組態)

      4. Instances (執行個體) 組態類別中,選擇 Edit (編輯)

      5. EC2 安全群組下,除了 Elastic Beanstalk 建立的執行個體安全群組,請選擇要連接到執行個體的安全群組。

      6. 若要儲存變更,請選擇頁面底部的儲存變更

      7. 閱讀警告的內容,然後選擇 Confirm (確認)

    • 若要使用組態檔案新增安全群組,請使用 securitygroup-addexisting.config 範例檔案。

接著,使用環境屬性,將連線資訊傳送至環境。在您透過 Elastic Beanstalk 主控台將資料庫執行個體新增到環境時,Elastic Beanstalk 會使用諸如 RDS_HOSTNAME 等環境屬性,將連線資訊傳遞至您的應用程式。您可使用相同屬性,讓您為整合式資料庫執行個體和外部資料庫執行個體使用相同的應用程式程式碼。或者,您也可以選擇自己的屬性名稱。

欲設定環境屬性
  1. 開啟 Elastic Beanstalk 主控台,然後在 Regions (區域) 清單中選取您的 AWS 區域。

  2. 在導覽窗格中,選擇 Environments (環境),然後在清單中選擇您環境的名稱。

    注意

    如果您有許多環境,請使用搜尋列來篩選環境清單。

  3. 在導覽窗格中,選擇 Configuration (組態)

  4. 更新、監控和日誌記錄組態類別中,選擇編輯

  5. Environment Properties (環境屬性) 區段,定義應用程式建立連線字串所讀取的變數。為了與具備整合式 RDS 執行個體的環境相容,請使用下列項目:

    • RDS_DB_NAME – 在 Amazon RDS 主控台中的 DB Name (資料庫名稱)。

    • RDS_USERNAME – 您將資料庫新增至環境時輸入的 Master Username (主要使用者名稱)

    • RDS_PASSWORD – 您將資料庫新增至環境時輸入的 Master Password (主要密碼)

    • RDS_HOSTNAME – 在 Amazon RDS 主控台中的資料庫執行個體的 Endpoint (端點)。

    • RDS_PORT – 在 Amazon RDS 主控台中的 Port (連接埠)。

    新增了 RDS 屬性的環境屬性組態區段
  6. 選擇 Apply (套用)

若您尚未將應用程式設計為讀取環境屬性並建構連線字串,請參閱下列語言特定的主題以取得說明:

最後,根據您應用程式讀取環境變數的時間,您可能需要重新啟動環境中執行個體上的應用程式伺服器。

重新啟動環境的應用程式伺服器
  1. 開啟 Elastic Beanstalk 主控台,然後在 Regions (區域) 清單中選取您的 AWS 區域。

  2. 在導覽窗格中,選擇 Environments (環境),然後在清單中選擇您環境的名稱。

    注意

    如果您有許多環境,請使用搜尋列來篩選環境清單。

  3. 選擇 Actions (動作),然後選擇 Restart App Server(s) (重新啟動應用程式伺服器)。