AWS IoT Greengrass
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

设置 Amazon EC2 实例

此部分提供了有关设置 Amazon EC2 实例的说明。

注意

虽然可使用 Amazon EC2 实例完成这些模块,但理想情况下 AWS IoT Greengrass 应与物理硬件结合使用。我们建议您在这些教程中使用 Raspberry Pi。

  1. 登录 AWS 管理控制台并使用 Amazon Linux AMI 启动一个 Amazon EC2 实例。有关 Amazon EC2 实例的信息,请参阅 Amazon EC2 入门指南

  2. 在运行您的 Amazon EC2 实例后,启用端口 8883 以允许传入 MQTT 通信,使得其他设备可以与 AWS IoT Greengrass Core 连接。

    1. 在 Amazon EC2 控制台的导航窗格中,选择 Security Groups (安全组)

      
                            突出显示了 Security Groups (安全组) 的导航窗格。
    2. 选择您刚刚启动的实例的安全组,然后选择 Inbound (入站) 选项卡。

      
                            突出显示了 Inbound (入站) 选项卡。
    3. 选择 Edit

      要启用端口 8883,您应向安全组添加自定义 TCP 规则。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的向安全组添加规则

    4. Edit inbound rules (编辑入站规则) 页面上,选择 Add Rule (添加规则),输入以下设置,然后选择 Save (保存)

      • 对于 Type,选择 Custom TCP Rule

      • 对于 Port Range (端口范围),输入 8883

      • 对于 Source (源),请选择 Anywhere (任何位置)

      • 对于 Description (说明),输入 MQTT Communications

       

  3. 连接到您的 Amazon EC2 实例。

    1. 在导航窗格中,选择 Instances (实例),选择您的实例,然后选择 Connect (连接)

    2. 按照 Connect To Your Instance (连接到您的实例) 页面上的说明操作,使用 SSH 和您的私有密钥文件连接到您的实例。

    您可以对 Windows 使用 PuTTY,对 macOS 使用终端。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的连接到您的 Linux 实例

  4. 在连接到 Amazon EC2 实例后,请创建用户 ggc_user 和组 ggc_group

    sudo adduser --system ggc_user sudo groupadd --system ggc_group

    注意

    如果您的系统不支持 adduser 命令,请使用以下命令。

    sudo useradd --system ggc_user
  5. 为了提高设备上的安全性,请确保在启动时在操作系统上启用硬链接和软链接 (symlink) 保护。

    注意

    启用硬链接和软链接保护的步骤因操作系统而异。请参阅您的发行版的文档。

    1. 运行以下命令以检查是否启用了硬链接和软链接保护:

      sudo sysctl -a | grep fs.protected

      如果硬链接和软链接设置为 1,则您的保护已正确启用。继续执行步骤 6。

      注意

      软链接以 fs.protected_symlinks 表示。

    2. 如果硬链接和软链接未设置为 1,请启用这些保护。导航到您的系统配置文件。

      cd /etc/sysctl.d ls
    3. 使用您最喜欢的文本编辑器(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
    4. 重启 Amazon EC2 实例。

      sudo reboot

      数分钟后,使用 SSH 连接到您的实例,然后运行以下命令来确认更改。

      sudo sysctl -a | grep fs.protected

      您应该看到硬链接和软链接都设置为 1。

  6. 提取并运行以下脚本以挂载 Linux 控制组 (cgroups)。这将允许 AWS IoT Greengrass 设置 Lambda 函数的内存限制。在默认的容器化模式下运行 AWS IoT Greengrass 时也需要 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 做好准备。

  7. 要确保您具有所有必需的依赖项,请从 GitHub 上的 AWS IoT Greengrass 示例存储库下载并运行 Greengrass 依赖项检查程序。 这些命令将解压和运行依赖项检查程序脚本。

    mkdir greengrass-dependency-checker-GGCv1.9.x cd greengrass-dependency-checker-GGCv1.9.x wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.9.x.zip unzip greengrass-dependency-checker-GGCv1.9.x.zip cd greengrass-dependency-checker-GGCv1.9.x sudo ./check_ggc_dependencies | more

    重要

    使用此教程需要拥有 Python 2.7。check_ggc_dependencies 脚本可能生成有关缺失的可选 Node.js 和 Java 先决条件的警告。您可以忽略这些警告。

您的 Amazon EC2 实例配置已完成。继续浏览模块 2:安装 AWS IoT Greengrass 核心软件