將資料庫新增至您的 Elastic Beanstalk 環境 - AWS Elastic Beanstalk

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

將資料庫新增至您的 Elastic Beanstalk 環境

Elastic Beanstalk 提供與 Amazon Relational Database Service (Amazon RDS) 的整合。您可以使用 Elastic Beanstalk 在現有環境中新增 MySQL、PostgreSQL、Oracle 或 SQL Server 資料庫,或在您建立時新增新的資料庫。在您新增資料庫執行個體時,Elastic Beanstalk 會為您的應用程式提供連線資訊。系統會藉由設定資料庫主機名稱、連接埠、使用者名稱、密碼和資料庫名稱的環境屬性來執行此動作。

若您未曾搭配應用程式使用資料庫執行個體,建議您先使用本主題所述的程序,以使用 Elastic Beanstalk 服務將資料庫新增至測試環境。如此一來,您便可確認應用程式即使不需要 Elastic Beanstalk 外部資料庫的其他組態工作,也能讀取環境屬性、建構連線字串,以及連線至資料庫執行個體。

在您確認應用程式可與資料庫搭配正常運作後,您可以考慮移向生產環境。此時,您可以選擇將資料庫從 Elastic Beanstalk 環境解耦,以便移向可提供更多靈活性的組態。已解耦的資料庫仍能作為外部 Amazon RDS 資料庫執行個體運作。解耦資料庫不會影響環境的正常運作狀態。如果您需要終止環境便可如此操作,也可選擇讓資料庫在 Elastic Beanstalk 之外維持可用且持續運作。

使用外部資料庫有幾個優點。您可以從多個環境連線至外部資料庫環境、使用整合資料庫不支援的資料庫類型,以及執行藍/綠部署。您也可以在 Elastic Beanstalk 環境之外建立資料庫執行個體,以作為使用 Elastic Beanstalk 所建立解耦資料庫的替代方案。兩個選項都會造成位於您 Elastic Beanstalk 環境外部的資料庫執行個體,且需要額外的安全群組和連線字串組態。如需更多詳細資訊,請參閱 搭配 Amazon RDS 使用 Elastic Beanstalk

資料庫生命週期

將資料庫從 Elastic Beanstalk 環境中解耦後,您可以選擇要對資料庫執行的動作。您可以從中進行選擇的選項統稱為刪除政策將資料庫從 Elastic Beanstalk 環境中解耦或終止 Elastic Beanstalk 環境後,以下刪除政策便會套用至資料庫。

  • Snapshot (快照) - 在 Elastic Beanstalk 終止資料庫之前,其會儲存資料庫的快照。在您將資料庫執行個體新增至 Elastic Beanstalk 環境或建立獨立資料庫時,可以從快照還原資料庫。如需有關透過快照建立新獨立資料庫執行個體的詳細資訊,請參閱《Amazon RDS 使用者指南》中的從資料庫快照還原。存放資料庫快照可能需要支付費用。如需詳細資訊,請參閱 Amazon RDS 定價中的備份儲存一節。

  • Delete (刪除) - Elastic Beanstalk 會終止資料庫。在其終止後,資料庫執行個體就不可再用於任何操作。

  • Retain (保留) - 資料庫執行個體未終止。雖然與 Elastic Beanstalk 解耦,但其仍可以使用和運作。然後,您可以設定一個或多個環境,以作為外部 Amazon RDS 資料庫執行個體,藉此連線至資料庫。如需更多詳細資訊,請參閱 搭配 Amazon RDS 使用 Elastic Beanstalk

使用主控台將 Amazon RDS 資料庫執行個體新增至您的環境

您可以藉由使用 Elastic Beanstalk 主控台,將資料庫執行個體新增到您的環境。

欲將資料庫執行個體新增到您的環境
  1. 開啟 Elastic Beanstalk 主控台,然後在 Regions (區域) 清單中選取您的 AWS 區域。

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

    注意

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

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

  4. Database (資料庫) 組態類別中,選擇 Edit (編輯)

  5. 選擇資料庫引擎,並輸入使用者名稱和密碼。

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

您可以設定下列選項:

  • Snapshot (快照) – 選擇現有的資料庫快照。Elastic Beanstalk 還原快照,並將其新增到您的環境。預設值為 None (無)。當值是 None (無) 時,您可使用此頁面上的其他設定來設定新的資料庫。

  • Engine (引擎) – 選擇資料庫引擎。

  • Engine version (引擎版本) – 選擇特定的資料庫引擎版本。

  • Instance class (執行個體類別) – 選擇資料庫執行個體類別。如需有關資料庫執行個體類別的詳細資訊,請參閱 https://aws.amazon.com/rds/

  • Storage (儲存) – 選擇要為您的資料庫所佈建的儲存容量。您可以在日後增加配置的儲存容量,但不能縮減。如需關於儲存容量分配的資訊,請參閱功能相關文章。

  • Username (使用者名稱) - 僅使用包含數字和字母的組合來輸入所選擇的使用者名稱。

  • Password (密碼) – 輸入包含 8–16 個可列印的 ASCII 字元 (不含 /\@) 選用密碼。

  • Availability (可用性) – 選擇 High (Multi-AZ) (高 (異地同步備份)),在第二個可用區域中執行暖備份,以維持高可用性。

  • Database deletion policy (資料庫刪除政策) - 刪除政策會決定資料庫在從您的環境解耦後的情況。系統可以將其設定為下列其中一個值:Create SnapshotRetainDelete。這些值會在此相同主題的 資料庫生命週期 中加以說明。

注意

Elastic Beanstalk 使用您提供的使用者名稱和密碼建立資料庫的主要使用者。若要進一步了解主要使用者及其權限,請參閱主要使用者帳戶權限

新增資料庫執行個體約需要 10 分鐘。在更新完成時,系統會將新資料庫耦合至您的環境。資料庫執行個體的主機名稱和其他連線資訊,會透過下列環境屬性提供給您的應用程式:

屬性名稱 描述 屬性值

RDS_HOSTNAME

資料庫執行個體的主機名稱。

在 Amazon RDS 主控台:端點連線能力和安全性索引標籤上。

RDS_PORT

資料庫執行個體接受連線的連接埠。預設值在不同資料庫引擎中有所差異。

在 Amazon RDS 主控台:連接埠連線能力和安全性索引標籤上。

RDS_DB_NAME

資料庫名稱,ebdb

在 Amazon RDS 主控台:資料庫名稱組態索引標籤上。

RDS_USERNAME

您為資料庫設定的使用者名稱。

在 Amazon RDS 主控台:主要使用者名稱組態索引標籤上。

RDS_PASSWORD

您為資料庫設定的密碼。

無法在 Amazon RDS 主控台中提供參考。

連線到資料庫

使用連線資訊,從您的應用程式中利用環境變數來連線到您的資料庫。關於搭配您的應用程式使用 Amazon RDS,詳細資訊請參閱下列主題。

利用主控台設定整合的 RDS 資料庫執行個體

您可以在 Elastic Beanstalk 主控台中,從環境 Configuration (組態) 頁面的 Database (資料庫) 區段,來檢視和修改您資料庫執行個體的組態設定。

在 Elastic Beanstalk 主控台中設定環境的資料庫執行個體
  1. 開啟 Elastic Beanstalk 主控台,然後在 Regions (區域) 清單中選取您的 AWS 區域。

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

    注意

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

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

  4. Database (資料庫) 組態類別中,選擇 Edit (編輯)

在建立資料庫之後,您可以修改 Instance class(執行個體類別)、Storage (儲存)、Password (密碼)、Availability (可用性) 和 Database deletion policy (資料庫刪除政策) 設定。如果您變更執行個體類別,Elastic Beanstalk 會重新佈建資料庫執行個體。

如果您不再需要 Elastic Beanstalk 為資料庫與環境建立關聯,可以選擇將資料庫解耦,方法是選取 Decouple database (解耦資料庫)。請務必了解此操作所涉及的選項和考量。如需更多詳細資訊,請參閱 使用主控台解耦 RDS 資料庫執行個體

警告

請勿修改耦合的資料庫執行個體上 Elastic Beanstalk 所提供功能以外的設定 (例如,在 Amazon RDS 主控台中)。如果這麼做,您的 Amazon RDS 資料庫組態可能與您環境的定義不同步。當您更新或重新啟動您的環境,環境中指定的設定會覆寫在 Elastic Beanstalk 外的任何設定。

如果您需要修改 Elastic Beanstalk 未直接支援的設定,請使用 Elastic Beanstalk 組態檔案

利用組態檔案設定整合的 RDS 資料庫執行個體

您可以使用組態檔案設定您環境的資料庫執行個體。使用aws:rds:dbinstance命名空間中的選項。以下範例修改配置的資料庫儲存大小為 100 GB。

範例 .ebextensions/db-instance-options.config
option_settings: aws:rds:dbinstance: DBAllocatedStorage: 100

如果您要設定 Elastic Beanstalk 不支援的資料庫執行個體屬性,您仍可使用組態檔案,並使用 resources 金鑰指定您的設定。以下範例設定值至 StorageTypeIops Amazon RDS 屬性。

範例 .ebextensions/db-instance-properties.config
Resources: AWSEBRDSDatabase: Type: AWS::RDS::DBInstance Properties: StorageType:io1 Iops: 1000

使用主控台解耦 RDS 資料庫執行個體

您可以將資料庫從 Elastic Beanstalk 環境解耦,而不會影響環境的正常運作狀態。在解耦資料庫之前,請考慮下列要求:

  • 將資料庫解耦後可能會發生哪些情況?

    您可以選擇建立資料庫的快照然後終止資料庫、將資料庫獨立於 Elastic Beanstalk 外持續運作,或永久刪除資料庫。Database deletion policy (資料庫刪除政策) 設定會決定此結果。如需有關刪除政策的詳細說明,請參閱此相同主題中的 資料庫生命週期

  • 在解耦之前是否需要變更任何資料庫組態設定?

    如果您需要變更資料庫的任何組態,應在解耦資料庫前,將其套用至資料庫。這包括變更 Database deletion policy (資料庫刪除政策)。系統將忽略任何與 Decouple database (解耦資料庫) 設定同時提交的待處理變更項目,同時僅會套用解耦設定。

將資料庫執行個體從環境解耦
  1. 開啟 Elastic Beanstalk 主控台,然後在 Regions (區域) 清單中選取您的 AWS 區域。

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

    注意

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

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

  4. Database (資料庫) 組態類別中,選擇 Edit (編輯)

  5. 檢閱 Database settings (資料庫設定) 區段中的所有組態值,尤其是 Database deletion policy (資料庫刪除政策),其會決定資料庫解耦後的情況。

    如果所有其他組態設定皆正確,請跳至步驟 6 來解耦資料庫。

    警告

    請務必將 Database deletion policy (資料庫刪除政策) 設定與 Decouple database (解耦資料庫) 分開套用。如果您選取 Apply (套用) 且欲同時保存 Decouple database (解耦資料庫) 和新選取的 Database deletion policy (資料庫刪除政策),則系統會忽略您選擇的新刪除政策。Elastic Beanstalk 會依照先前設定的刪除政策來解耦資料庫。如果先前設定的刪除政策為 DeleteCreate Snapshot,您可能會有遺失資料庫的風險,而非遵循預期的待處理政策。

    如果有任何組態設定需要更新,請執行下列動作:

    1. Database settings (資料庫設定) 面板中進行必要的修改。

    2. 選擇 Apply (套用)。需要幾分鐘的時間來儲存資料庫的組態變更。

    3. 回到步驟 3,然後透過導覽窗格選擇 Configuration (組態)。

  6. 前往窗格上的 Database connection (資料庫連線) 區段。

  7. 選擇 Decouple database (解耦資料庫)。

  8. 選擇 Apply (套用) 來啟動資料庫解耦操作。

刪除政策設定會決定資料庫的結果,以及解耦資料庫所需的時間長度。

  • 如果刪除政策設定為 Delete,則系統會刪除資料庫。作業時間可能需要大約 10-20 分鐘,視資料庫的大小而定。

  • 如果刪除政策設定為 Snapshot,系統會建立資料庫的快照。之後,系統會刪除資料庫。此處理程序所需的時間長度依資料庫的大小而定。

  • 如果刪除政策設定為 Retain,則資料庫會在 Elastic Beanstalk 環境外部保持運作。解耦資料庫通常需要不到五分鐘的時間。

如果您決定將資料庫保留在 Elastic Beanstalk 環境之外,則需要採取其他步驟來加以設定。如需更多詳細資訊,請參閱 搭配 Amazon RDS 使用 Elastic Beanstalk。如果您計劃為生產環境使用解耦的資料庫,請確認該資料庫使用的儲存類型是否適合您的工作負載。如需詳細資訊,請參閱《Amazon RDS 使用者指南》中的資料庫執行個體儲存體修改資料庫執行個體

使用主控台檔案解耦 RDS 資料庫執行個體

您可以將資料庫執行個體從 Elastic Beanstalk 環境解耦,而不會影響環境的正常運作狀態。資料庫執行個體會遵循在資料庫受到解耦時套用的資料庫刪除政策

解耦資料庫所需的兩個選項都位於 aws:rds:dbinstance 命名空間中。如下所示:

  • DBDeletionPolicy 選項會設定刪除政策。系統可以將其設定為下列其中一個值:SnapshotDeleteRetain。這些值會在此相同主題的 資料庫生命週期 中加以說明。

  • HasCoupledDatabase 選項會決定您的環境是否具有耦合的資料庫。

    • 如果切換為 true,Elastic Beanstalk 會建立與您環境耦合的新資料庫執行個體。

    • 如果切換為 false,Elastic Beanstalk 會開始從您的環境中解耦資料庫執行個體。

如果您想要在解耦資料庫之前變更資料庫組態,請先在個別操作中套用任何組態變更。這包括變更 DBDeletionPolicy 組態。套用變更後,請執行個別命令以設定解耦選項。如果您同時提交其他組態設定和解耦設定,則系統會在套用解耦設定時會忽略其他組態選項設定。

警告

請務必以兩個獨立操作執行命令,來套用 DBDeletionPolicyHasCoupledDatabase 設定。如果啟用中的刪除政策已設定為 DeleteSnapshot,您可能會有遺失資料庫的風險。資料庫會遵循目前啟用中的刪除政策,而非您指示的待處理刪除政策。

將資料庫執行個體從環境解耦

依照下列步驟將資料庫從您的 Elastic Beanstalk 環境解耦。您可以使用 EB CLI 或 AWS CLI 來完成這些步驟。如需詳細資訊,請參閱使用組態檔案來進行進階的環境自訂

  1. 如果您要變更刪除政策,請以下列格式來設定組態檔案。在此範例中,刪除政策會設為保留。

    option_settings: aws:rds:dbinstance: DBDeletionPolicy: Retain
  2. 使用您偏好的工具來執行命令,以完成組態更新。

  3. 設定組態檔案,以將 HasCoupledDatabase 設定為 false

    option_settings: aws:rds:dbinstance: HasCoupledDatabase: false
  4. 使用您偏好的工具來執行命令,以完成組態更新。

刪除政策設定會決定資料庫的結果,以及解耦資料庫所需的時間長度。

  • 如果刪除政策設定為 Delete,則系統會刪除資料庫。作業時間可能需要大約 10-20 分鐘,視資料庫的大小而定。

  • 如果刪除政策設定為 Snapshot,系統會建立資料庫的快照。之後,系統會刪除資料庫。此處理程序所需的時間長度依資料庫的大小而定。

  • 如果刪除政策設定為 Retain,則資料庫會在 Elastic Beanstalk 環境外部保持運作。解耦資料庫通常需要不到五分鐘的時間。

如果您決定將資料庫保留在 Elastic Beanstalk 環境之外,則需要採取其他步驟來加以設定。如需更多詳細資訊,請參閱 搭配 Amazon RDS 使用 Elastic Beanstalk。如果您計劃為生產環境使用解耦的資料庫,請確認該資料庫使用的儲存類型是否適合您的工作負載。如需詳細資訊,請參閱《Amazon RDS 使用者指南》中的資料庫執行個體儲存體修改資料庫執行個體