使用 Amazon Aurora Serverless v1 - Amazon Aurora

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

使用 Amazon Aurora Serverless v1

Amazon Aurora Serverless v1 (Amazon Aurora Serverless 第 1 版) 是適用於 Amazon Aurora 的隨需自動擴展組態。Aurora Serverless v1 資料庫叢集是一種資料庫叢集,可根據應用程式的需求增加和縮減運算容量。這與 Aurora 佈建的資料庫叢集相反,後者的容量管理是手動進行的。Aurora Serverless v1 為頻率較低、間歇性或不可預測的工作負載提供相對簡單、符合成本效益的選項。它可自動啟動、擴展運算容量以符合您的應用程式用量,並在不使用時關閉,因此具有成本效益。

若要進一步了解定價,請參閱 Amazon Aurora pricing 頁面上 MySQL-Compatible Edition (MySQL 相容版本) 或 PostgreSQL-Compatible Edition (PostgreSQL 相容版本) 底下的 無伺服器定價

Aurora Serverless v1 叢集與已佈建資料庫叢集所使用的高容量、分散式及高可用性儲存磁碟區是同一種。

若為 Aurora Serverless v2 叢集,您可選擇是否加密叢集磁碟區。

若為 Aurora Serverless v1 叢集,叢集磁碟區一律加密。您可以選擇加密金鑰,但無法停用加密。這表示您在 Aurora Serverless v1 上執行的操作與您在加密快照上執行的操作是相同的。如需詳細資訊,請參閱Aurora Serverless v1 和快照

重要

Aurora 擁有兩代的無伺服器技術,Aurora Serverless v2 和 Aurora Serverless v1。若您的應用程式可於 MySQL 8.0 或 PostgreSQL 13 上執行,我們建議您使用 Aurora Serverless v2。Aurora Serverless v2 擴展速度更快,更精細。Aurora Serverless v2 也與其他 Aurora 功能 (如讀取器資料庫執行個體) 具有更高的相容性。因此,若您已經熟悉 Aurora,您不必像 Aurora Serverless v2 和 Aurora Serverless v1 那樣學習那麼多的新程序或限制來加以使用。

您可以於 使用 Aurora Serverless v2 中了解 Aurora Serverless v2。

區域和版本可用性

功能可用性和支援會因每個 Aurora 資料庫引擎的特定版本以及 AWS 區域 而有所不同。如需 Aurora 和 Aurora Serverless v1 版本和區域可用性的詳細資訊,請參閱 Aurora Serverlessv1 支援的區域和 Aurora 資料庫引擎

Aurora Serverless v1 的優點

Aurora Serverless v1 提供下列優點:

  • 比佈建簡單 – Aurora Serverless v1 可免除管理資料庫執行個體和容量的大部分複雜性。

  • 可擴展性 – Aurora Serverless v1 可在不干擾用戶端連線的情況下,視需要無縫擴展運算與記憶體容量。

  • 具成本效益 – 當您使用 Aurora Serverless v1 時,您僅需為使用的資料庫資源付費 (以秒計費)。

  • 高可用性儲存 – Aurora Serverless v1 透過六路徑複寫使用相同的容錯、分散式儲存系統做為 Aurora 以防止資料遺失。

Aurora Serverless v1​ 的應用案例

Aurora Serverless v1 是專為以下應用案例所設計:

  • 不常使用的應用程式:您擁有一個每天或每週僅使用數次,且每次僅使用幾分鐘的應用程式 (例如低容量的部落格網站)。使用 Aurora Serverless v1 時,您僅需為使用的資料庫資源付費 (以秒計費)。

  • 新的應用程式:您正在部署新的應用程式,但不確定所需的執行個體大小。透過使用 Aurora Serverless v1,您就可以建立資料庫端點,並將該資料庫自動擴展至應用程式所需容量。

  • 變數工作負載:您正在執行輕度使用量的應用程式,即每日僅有從 30 分鐘至數小時不等的幾次峰值,或每年僅有數次的使用次數。例如人力資源、預算以及營運報告等應用程式。透過 Aurora Serverless v1,您不再需要針對峰值或平均容量進行佈建。

  • 無法預測的工作負載:您正在執行的每日工作負載都會有無法預測的突發活動增加。例如一個交通站點,在開始下雨時會看到活動突然增加。透過 Aurora Serverless v1,您的資料庫會自動擴展容量以滿足應用程式峰值負載需求,並在活動激增結束時縮小規模。

  • 開發和測試資料庫:您的開發人員會在上班時間使用資料庫,但不會在夜間與週末使用。透過 Aurora Serverless v1,您的資料庫將在未使用時自動關閉。

  • 多租用戶應用程式 – 透過 Aurora Serverless v1,您就無須為機群中的每個應用程式分別管理資料庫容量。Aurora Serverless v1 將為您管理個別資料庫容量。

Aurora Serverless v1 的限制

下列限制適用於 Aurora Serverless v1:

  • Aurora Serverless v1 不支援以下功能:

    • Aurora 全球資料庫

    • Aurora 複本

    • AWS Identity and Access Management (IAM) 資料庫身分驗證

    • Aurora 中的回溯功能

    • 資料庫活動串流

    • Kerberos 身分驗證

    • Performance Insights

    • RDS Proxy

    • 在 AWS Management Console 中檢視日誌

  • 如果保持開啟的時間超過一天,與 Aurora Serverless v1 資料庫叢集的連線會自動關閉。

  • 所有 Aurora Serverless v1 資料庫叢集都有下列限制:

    • 您無法將 Aurora Serverless v1 快照匯出至 Amazon S3 儲存貯體。

    • 您無法使用 AWS Database Migration Service 和變更資料擷取 (CDC) 搭配 Aurora Serverless v1 資料庫叢集。只有佈建的 Aurora 資料庫叢集支援 CDC AWS DMS 作為來源。

    • 您無法將資料儲存至 Amazon S3 中的文字檔,也無法將文字檔資料從 S3 載入至 Aurora Serverless v1。

    • 您無法將 IAM 角色附加至 Aurora Serverless v1 資料庫叢集。但是,您可以透過使用具有 Aurora Serverless v1 函數和 aws_s3 參數的 aws_s3.table_import_from_s3 延伸,將資料從 Amazon S3 載入至 credentials。如需詳細資訊,請參閱將資料從 Amazon S3 匯入 Aurora PostgreSQL 資料庫叢集

    • 使用查詢編輯器時,會為資料庫憑證建立 Secrets Manager 密碼,以便存取資料庫。如果您從查詢編輯器刪除憑證,相關聯的密碼也會從 Secret Manager 中刪除。刪除此密碼後就無法復原。

  • 執行 Aurora Serverless v1、以 Aurora MySQL 為基礎的資料庫叢集不支援以下項目:

    • 從 Aurora MySQL 資料庫叢集中叫用 AWS Lambda 函數。但是,AWS Lambda 函數可以對 Aurora Serverless v1 資料庫叢集進行呼叫。

    • 從非 Aurora MySQL 或 RDS for MySQL 的資料庫執行個體還原快照。

    • 使用以二進位日誌 (binlog) 為基礎的複寫複寫資料。無論是以 Aurora MySQL 為基礎的資料庫叢集 Aurora Serverless v1 是複寫的來源或目標,這項限制都是存在的。若要將資料從 Aurora 外部的 MySQL 資料庫執行個體 (例如在 Amazon EC2 上執行的執行個體) 複寫到 Aurora Serverless v1 資料庫叢集,建議您考慮使用 AWS Database Migration Service。如需詳細資訊,請參閱《AWS Database Migration Service 使用者指南》。

    • 建立具有以主機為基礎之存取權限的使用者 ('username'@'IP_address')。這是因為 Aurora Serverless v1 使用用戶端和資料庫主機之間的路由器機群進行無縫擴展。Aurora Serverless 資料庫叢集看到的 IP 地址是路由器主機,而不是您的用戶端。如需詳細資訊,請參閱Aurora Serverless v1 架構

      請改用萬用字元 ('username'@'%')。

  • 執行 Aurora Serverless v1、以 Aurora PostgreSQL 為基礎的資料庫叢集有下列限制:

    • 不支援 Aurora PostgreSQL 查詢計劃管理 (apg_plan_management 擴充功能)。

    • 不支援 Amazon RDS PostgreSQL 和 Aurora PostgreSQL 中提供的邏輯複寫功能。

    • 不支援輸出通訊,例如由 Amazon RDS for PostgreSQL 延伸所啟用的通訊。例如,您無法使用 postgres_fdw/dblink 擴充功能存取外部資料。如需有關 RDS PostgreSQL 延伸的詳細資訊,請參閱 RDS 使用者指南Amazon RDS 的 PostgreSQL

    • 目前,不建議使用某些 SQL 查詢和命令。這些包括工作階段層級的建議鎖定、暫時關係、非同步通知 (LISTEN),以及具有保留 (DECLARE name ... CURSOR WITH HOLD FOR query) 的游標。此外,NOTIFY 命令會防止擴展,因此不建議使用。

      如需詳細資訊,請參閱Aurora Serverless v1 的自動調整規模

  • 您無法為 Aurora Serverless v1 資料庫叢集設定偏好的自動備份時段。

  • 您可以設定 Aurora Serverless v1 資料庫叢集的維護時段。如需詳細資訊,請參閱調整偏好的資料庫叢集維護時段

Aurora Serverless v1 的組態需求

建立 Aurora Serverless v1 資料庫叢集時,請注意下列需求:

  • 為每個資料庫引擎使用這些特定的連接埠號碼:

    • Aurora MySQL:3306

    • Aurora PostgreSQL:5432

  • 在以 Amazon VPC 服務為基礎的 Virtual Private Cloud (VPC) 中建立 Aurora Serverless v1 資料庫叢集。在 VPC 中建立 Aurora Serverless v1 資料庫叢集時,您會取用指派給 VPC 的五十 (50) 個界面和 Gateway Load Balancer 端點中的兩 (2) 個。這些端點是自動為您建立的。若要增加配額,您可以聯絡 AWS Support。如需詳細資訊,請參閱 Amazon VPC 配額

  • 您無法為 Aurora Serverless v1 資料庫叢集提供公有 IP 地址。您只能從 VPC 內存取 Aurora Serverless v1 資料庫叢集。

  • 在不同的可用區域中,為您用於 Aurora Serverless v1 資料庫叢集的資料庫子網路群組建立子網路。換句話說,您不能在同一個可用區域中有一個以上的子網路。

  • 不會將對 Aurora Serverless v1 資料庫叢集使用的子網路群組所做的變更套用到叢集。

  • 您可以從 Aurora Serverless v1 存取 AWS Lambda 資料庫叢集。若要這麼做,您必須將 Lambda 函數設定為在與 Aurora Serverless v1 資料庫叢集相同的 VPC 中執行。如需使用 AWS Lambda 的詳細資訊,請參閱 AWS Lambda 開發人員指南中的設定 Lambda 函數以存取 Amazon VPC 中的資源

搭配 Aurora Serverless v1 使用 TLS/SSL

根據預設,Aurora Serverless v1 會使用 Transport Layer Security/Secure Sockets Layer (TLS/SSL) 通訊協定,來加密用戶端與 Aurora Serverless v1 資料庫叢集之間的通訊。它支援 TLS/SSL 1.0、1.1 和 1.2 版。您不需要將 Aurora Serverless v1 資料庫叢集設定為使用 TLS/SSL。

然而,具有下列限制:

  • 中國 (北京) AWS 區域 目前尚未提供對 Aurora Serverless v1 資料庫叢集的 TLS/SSL 支援。

  • 當您為以 Aurora MySQL 為基礎的 Aurora Serverless v1 資料庫叢集建立資料庫使用者時,請勿將 REQUIRE 子句用於 SSL 許可。這樣做會防止使用者連線到 Aurora 資料庫執行個體。

  • 對於 MySQL 用戶端和 PostgreSQL 用戶端公用程式,在用戶端和 Aurora Serverless v1 之間使用 TLS/SSL 時,您可能在其他環境中使用的工作階段變數會沒有作用。

  • 對於 MySQL 用戶端,當使用 TLS/SSL VERIFY_IDENTITY 模式進行連線時,您目前需要使用與 MySQL 8.0 相容的 mysql 命令。如需詳細資訊,請參閱連線至執行 MySQL 資料庫引擎的資料庫執行個體

視您用來連線到 Aurora Serverless v1 資料庫叢集的用戶端而定,您可能不需要指定 TLS/SSL,即可取得加密連線。例如,若要使用 PostgreSQL 用戶端來連線到執行 Aurora PostgreSQL 相容版本的 Aurora Serverless v1 資料庫叢集,請按照平常的方式進行連線。

psql -h endpoint -U user

輸入密碼後,PostgreSQL 用戶端會顯示連線詳細資訊,包括 TLS/SSL 版本和密碼。

psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1), server 10.12) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help.
重要

除非用戶端應用程式停用 SSL/TLS,否則預設為 Aurora Serverless v1 使用 Transport Layer Security/Secure Sockets Layer (TLS/SSL) 通訊協定加密連線。TLS/SSL 連線終止於路由器機群。路由器機群與 Aurora Serverless v1 資料庫叢集之間的通訊會在服務的內部網路界限內進行。

您可以檢查用戶端連線的狀態,以檢查與 Aurora Serverless v1 的連線是否為 TLS/SSL 加密。PostgreSQL pg_stat_sslpg_stat_activity 資料表及其 ssl_is_used 函數不會顯示用戶端應用程式與 Aurora Serverless v1 之間通訊的 TLS/SSL 狀態。同樣地,TLS/SSL 狀態無法衍生自 MySQL status 陳述式。

Aurora Serverless v1 之前不支援叢集參數 force_ssl for PostgreSQL 和 require_secure_transport for MySQL。這些參數現在可用於 Aurora Serverless v1。如需 Aurora 無伺服器 v1 支援的完整參數清單,請呼叫 DescribeEngineDefaultClusterParametersAPI 作業。如需參數群組和 Aurora 無伺服器 v1 的詳細資訊,請參閱Aurora Serverless v1 的參數群組

若要使用 MySQL 用戶端來連線到執行 Aurora MySQL 相容版本的 Aurora Serverless v1 資料庫叢集,請在請求中指定 TLS/SSL。下列範例包含從 Amazon 信任服務 (此服務為此連線能成功的必要項目) 下載的 Amazon 根 CA 1 信任存放區

mysql -h endpoint -P 3306 -u user -p --ssl-ca=amazon-root-CA-1.pem --ssl-mode=REQUIRED

出現提示時,輸入您的密碼。MySQL 監控器便會開啟。您可以使用 status 命令來確認工作階段已加密。

mysql> status -------------- mysql Ver 14.14 Distrib 5.5.62, for Linux (x86_64) using readline 5.1 Connection id: 19 Current database: Current user: ***@******* SSL: Cipher in use is ECDHE-RSA-AES256-SHA ...

若要進一步了解如何使用 MySQL 用戶端連線至 Aurora MySQL 資料庫,請參閱連線至執行 MySQL 資料庫引擎的資料庫執行個體

Aurora Serverless v1 支援 MySQL 用戶端 (mysql) 和 PostgreSQL 用戶端 (psql) 可用的所有 TLS/SSL 模式,包括下表所列的模式。

TLS/SSL 模式的說明 mysql psql

不使用 TLS/SSL 連線。

DISABLED

停用

請先嘗試先使用 TLS/SSL 連線,但必要時會回復為 SSL 以外的加密技術。

PREFERRED

偏好 (預設)

強制使用 TLS/SSL。

REQUIRED

require

強制執行 TLS/SSL 並驗證 CA。

VERIFY_CA

verify-ca

強制執行 TLS/SSL、驗證 CA,並驗證 CA 主機名稱。

VERIFY_IDENTITY

verify-full

Aurora Serverless v1 使用萬用字元憑證。如果您在使用 TLS/SSL 時指定「驗證 CA」或「驗證 CA 和 CA 主機名稱」選項,請先從 Amazon 信任服務下載 Amazon 根 CA 1 信任存放區。這樣做之後,您就可以在用戶端命令中識別這個 PEM 格式的檔案。若要使用 PostgreSQL 用戶端執行這項操作:

對於LinuxmacOS、或Unix:

psql 'host=endpoint user=user sslmode=require sslrootcert=amazon-root-CA-1.pem dbname=db-name'

若要進一步了解如何將 Postgres 用戶端與 Aurora PostgreSQL 資料庫搭配使用,請參閱連線至執行 PostgreSQL 資料庫引擎的資料庫執行個體

如需連線至 Aurora 資料庫叢集的一般資訊,請參閱 連接至 Amazon Aurora 資料庫叢集

適用於 Aurora Serverless v1 資料庫叢集連線的受支援密碼套件

透過使用可設定的密碼套件,您可以更進一步控制資料庫連線的安全性。您可以指定要允許的密碼套件清單,以保護您資料庫的用戶端 SSL/TLS 連線安全。您可以使用可設定的密碼套件來控制資料庫伺服器接受的連線加密。這麼做可以防止使用不安全或不再使用的密碼。

基於 Aurora MySQL 的 Aurora Serverless v1 資料庫叢集支援與 Aurora MySQL 佈建之資料庫叢集相同的密碼套件。如需這些密碼套件的相關資訊,請參閱 為 Aurora MySQL 資料庫叢集的連線設定密碼套件

基於 Aurora PostgreSQL 的 Aurora Serverless v1 資料庫叢集不支援密碼套件。