

支援終止通知：2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後，您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊，請造訪[從 遷移 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

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

# 設定 Amazon EC2 執行個體
<a name="setup-filter.ec2"></a>

請遵循本主題中的步驟，設定 Amazon EC2 執行個體以用作您的 AWS IoT Greengrass 核心。

**提示**  
或者，若要使用指令碼來設定您的環境並為您安裝 AWS IoT Greengrass 核心軟體，請參閱 [快速入門：Greengrass 裝置安裝](quick-start.md)。

 雖然您可以使用 Amazon EC2 執行個體完成本教學課程， AWS IoT Greengrass 但最好搭配實體硬體使用。我們建議您[盡可能設定 Raspberry Pi](setup-filter.rpi.md)，而不是使用 Amazon EC2 執行個體。如果您正在使用 Raspberry Pi，您不需要遵循本主題中的步驟。

 

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/)並使用 Amazon Linux AMI 啟動 Amazon EC2 執行個體。如需 Amazon EC2 執行個體的相關資訊，請參閱[《Amazon EC2 入門指南》](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)。

1. Amazon EC2 執行個體執行後，請啟用連接埠 8883 以允許傳入的 MQTT 通訊，讓其他裝置可以與 AWS IoT Greengrass 核心連線。

   1. 在 Amazon EC2 主控台的導覽窗格中，選擇**安全群組**。  
![\[反白顯示安全群組的導覽窗格。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/gg-get-started-002.6.1.png)

   1. 選取您剛啟動之執行個體的安全群組，然後選擇**傳入規則**索引標籤。

   1. 選擇 **Edit inbound Rules** (編輯傳入規則)。

      若要啟用連接埠 8883，您需新增自訂的 TCP 規則至安全群組。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[將規則新增至安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule)。

   1. 在**編輯傳入規則**頁面上，選擇**新增規則**，輸入下列設定，然後選擇**儲存**。
      + 針對 **Type (類型)**，選擇 **Custom TCP Rule (自訂 TCP 規則)**。
      + 針對**連接埠範圍**，輸入 **8883**。
      + 針對 **Source (來源)**，選擇 **Anywhere (隨處)**。
      + 對於 **Description (說明)**，輸入 **MQTT Communications**。

       

1. 連線到您的 Amazon EC2 執行個體。

   1. 在導覽窗格中，選擇 **Instances (執行個體)**，選擇您的執行個體，然後選擇 **Connect (連線)**。

   1. 依照 **Connect To Your Instance (連線至您的執行個體)** 頁面中的說明，[使用 SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) 和您的私密金鑰檔案連線至您的執行個體。

   您可以使用適用於 Windows 的 [PuTTY](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html) 或適用於 macOS 的終端機。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[連線至 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)。

   您現在已準備好設定 Amazon EC2 執行個體 AWS IoT Greengrass。

1. 連線至 Amazon EC2 執行個體後，請建立 `ggc_user`和 `ggc_group`帳戶：

   ```
   sudo adduser --system ggc_user
   sudo groupadd --system ggc_group
   ```
**注意**  
如果在您系統中沒有可用的 `adduser` 命令，請使用以下命令。  

   ```
   sudo useradd --system ggc_user
   ```

1. 為了提高安全性，請確定在啟動時已在 Amazon EC2 執行個體的作業系統上啟用硬連結和軟連結 （符號連結） 保護。
**注意**  
 啟用 hardlink 和 softlink 保護的步驟會因作業系統而有所不同。請參閱文件來了解您的發行版本。

   1.  執行以下命令來檢查是否已啟用 hardlink 和 softlink 保護：

      ```
      sudo sysctl -a | grep fs.protected
      ```

       如果 hardlinks 和 softlinks 已設定為 `1`，您的保護就會正確啟用。繼續進行步驟 6。
**注意**  
Softlink 會以 `fs.protected_symlinks` 顯示。

   1. 如果 hardlinks 和 softlinks 未設定為 `1`，則啟用這些保護。導覽至您的系統組態檔案。

      ```
      cd /etc/sysctl.d
      ls
      ```

   1. 使用您喜愛的文字編輯器 (例如 Leafpad、GNU nano 或 vi)，將以下兩行新增至系統組態檔案結尾。在 Amazon Linux 1 上，這是 `00-defaults.conf` 檔案。在 Amazon Linux 2 上，這是 `99-amazon.conf` 檔案。您可能需要變更許可 (使用 `chmod` 命令)，才能寫入檔案，或使用 `sudo` 命令以根編輯 (例如，`sudo nano 00-defaults.conf`)。

      ```
      fs.protected_hardlinks = 1
      fs.protected_symlinks = 1
      ```

   1. 重新啟動 Amazon EC2 執行個體。

      ```
      sudo reboot
      ```

      在幾分鐘後，透過 SSH 連線到您的執行個體，然後執行以下命令來確認變更。

      ```
      sudo sysctl -a | grep fs.protected
      ```

      您應該會看到 hardlinks 和 softlinks 設為 1。

1. 擷取並執行下列指令碼來掛載 [Linux 控制群組](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/ch01) （群組）。這可讓 AWS IoT Greengrass 設定 Lambda 函數的記憶體限制。在 AWS IoT Greengrass 預設[容器化](lambda-group-config.md#lambda-containerization-considerations)模式中執行 時，也需要 Cgroup。

   ```
   curl https://raw.githubusercontent.com/tianon/cgroupfs-mount/951c38ee8d802330454bdede20d85ec1c0f8d312/cgroupfs-mount > cgroupfs-mount.sh
   chmod +x cgroupfs-mount.sh 
   sudo bash ./cgroupfs-mount.sh
   ```

   您的 Amazon EC2 執行個體現在應已準備就緒 AWS IoT Greengrass。

1. <a name="install-java-8-runtime"></a>選用。安裝[串流管理員](stream-manager.md)需要的 Java 8 執行時間。本教學課程不會使用串流管理員，但是會使用預設啟用串流管理員的 **Default Group creation (預設群組建立)** 工作流程。部署群組之前，先使用下列命令在核心裝置上安裝 Java 8 執行時間，或停用串流管理員。單元 3 中提供了停用串流管理員的指示。
   + 針對 Debian 為基礎的發行版本：

     ```
     sudo apt install openjdk-8-jdk
     ```
   + 針對 Red Hat 為基礎的發行版本：

     ```
     sudo yum install java-1.8.0-openjdk
     ```

1. 為了確保您擁有所有必要的相依性，請從 GitHub 上的[AWS IoT Greengrass 範例](https://github.com/aws-samples/aws-greengrass-samples)儲存庫下載並執行 Greengrass 相依性檢查程式。這些命令會在您的 Amazon EC2 執行個體中下載、解壓縮和執行相依性檢查程式指令碼。

   ```
   mkdir greengrass-dependency-checker-GGCv1.11.x
   cd greengrass-dependency-checker-GGCv1.11.x
   wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip
   unzip greengrass-dependency-checker-GGCv1.11.x.zip
   cd greengrass-dependency-checker-GGCv1.11.x
   sudo ./check_ggc_dependencies | more
   ```
**重要**  
<a name="lambda-runtime-prereqs"></a>本教學課程需要 Python 3.7 執行時間來執行本機 Lambda 函數。啟用串流管理員時，串流管理員需要 Java 8 執行時間。如果 `check_ggc_dependencies` 指令碼產生了與這些遺漏執行時間事前準備有關的警告，請確認在您繼續前已安裝了這些項目。您可以忽略與其他遺漏選用執行時間事前準備有關的警告。

您的 Amazon EC2 執行個體組態已完成。繼續進行[單元 2：安裝 AWS IoT Greengrass 核心軟體](module2.md)。