

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

# 設定代理程式持續性
<a name="configure-broker-persistence"></a>

Session Manager 代理程式支援與外部資料庫整合。外部資料庫允許 Session Manager 保留狀態資料和金鑰，以便之後可用。事實上，代理程式資料會分散在叢集上，因此如果主機需要重新啟動或終止叢集，就容易發生資料遺失。啟用此功能後，您可以新增和移除代理程式節點。此外，您可以停止叢集並重新啟動叢集，而不需要重新產生金鑰或遺失開啟或關閉 Amazon DCV 伺服器的相關資訊。

下列類型的資訊可以設定為持續存在：
+ 用於設定工作階段以與用戶端建立連線的金鑰
+ 傳輸中工作階段資料
+ Amazon DCV 伺服器狀態

Amazon DCV Session Manager 支援 DynamoDB、MariaDB 和 MySQL 資料庫。您必須設定和管理其中一個資料庫，才能使用此功能。如果您的代理程式機器託管在 Amazon EC2 上，我們建議您使用 DynamoDB 做為外部資料庫，因為它不需要任何額外的設定。

**注意**  
執行外部資料庫時，可能會產生額外費用。若要查看 DynamoDB 定價的相關資訊，請參閱[佈建容量的定價](https://aws.amazon.com/dynamodb/pricing/provisioned/)。

## 將代理程式設定為保留在 DynamoDB 上
<a name="persistence-dynamodb"></a>

設定代理程式以開始在 DynamoDB 上儲存其資料：

1. `/etc/dcv-session-manager-broker/session-manager-broker.properties` 使用您偏好的文字編輯器開啟 ，並進行下列編輯：
   + 設定 `enable-persistence = true`
   + 設定 `persistence-db = dynamodb`
   + 對於`dynamodb-region`指定您要存放包含代理程式資料的資料表的 &aws; 區域。如需支援的區域清單，請參閱 [DynamoDB 服務端點](https://docs.aws.amazon.com/general/latest/gr/ddb.html)。
   + 對於 ，`dynamodb-table-rcu`指定每個資料表支援的讀取容量單位 (RCU) 數量。如需 RCU 的詳細資訊，請參閱 [DynamoDB 佈建容量](https://aws.amazon.com/dynamodb/pricing/provisioned)。
   + 對於 `dynamodb-table-wcu`，指定每個資料表支援的寫入容量單位 (WCU) 數量。如需 WCU 的詳細資訊，請參閱 [ DynamoDB 佈建容量](https://aws.amazon.com/dynamodb/pricing/provisioned)。
   + 對於 dynamodb-table-name-prefix，指定新增至每個 DynamoDB 資料表的字首 （可用來區分使用相同帳戶的多個代理程式叢集）。僅允許英數字元、點、破折號和底線。

1. 停止叢集中的所有代理程式。針對每個代理程式，執行下列命令：

   ```
   sudo systemctl stop dcv-session-manager-broker
   ```

1. 確保叢集中的所有代理程式都已停止，然後重新啟動所有代理程式。執行下列命令來啟動每個代理程式：

   ```
   sudo systemctl start dcv-session-manager-broker
   ```

代理程式主機必須具有呼叫 DynamoDB APIs許可。在 Amazon EC2 執行個體上，登入資料會使用 Amazon EC2 中繼資料服務自動擷取。如果您需要指定不同的登入資料，您可以使用其中一個支援的登入資料擷取技術 （例如 Java 系統屬性或環境變數） 來設定登入資料。如需詳細資訊，請參閱[提供和擷取 &aws; 登入](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html#credentials-profiles)資料。

## 將代理程式設定為保留在 MariaDB/MySQL 上
<a name="persistence-mysql"></a>

**注意**  
`/etc/dcv-session-manager-broker/session-manager-broker.properties` 檔案包含敏感資料。根據預設，其寫入存取僅限於根目錄，其讀取存取僅限於根目錄和執行代理程式的使用者。根據預設，這是 `dcvsmbroker`使用者。代理程式會在啟動時檢查檔案是否具有預期的許可。

設定代理程式開始將其資料保留在 MariaDB/MySQL 上：

1. `/etc/dcv-session-manager-broker/session-manager-broker.properties` 使用您偏好的文字編輯器開啟 ，並進行下列編輯：
   + 設定 `enable-persistence = true`
   + 設定 `persistence-db = mysql`
   + 設定 `jdbc-connection-url = jdbc:mysql://<db_endpoint>:<db_port>/<db_name>?createDatabaseIfNotExist=true`

     在此組態中，<db\$1endpoint> 是資料庫端點，<db\$1port> 是資料庫連接埠，而 <db\$1name> 是資料庫名稱。
   + 對於 ，`jdbc-user`指定可存取資料庫的使用者名稱。
   + 對於 ，`jdbc-password`指定可存取資料庫之使用者的密碼。

1. 停止叢集中的所有代理程式。針對每個代理程式，執行下列命令：

   ```
   sudo systemctl stop dcv-session-manager-broker
   ```

1. 確保叢集中的所有代理程式都已停止，然後重新啟動所有代理程式。針對每個代理程式，執行下列命令：

   ```
   sudo systemctl start dcv-session-manager-broker
   ```