Configurando uma instância do Amazon EC2 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurando uma instância do Amazon EC2

Siga as etapas neste tópico para configurar uma instância do Amazon EC2 a ser usada como núcleo do AWS IoT Greengrass .

dica

Ou, para usar um script que configura seu ambiente e instala o software AWS IoT Greengrass principal para você, consulteInício rápido: Configuração do dispositivo do Greengrass.

Embora você possa concluir este tutorial usando uma instância do Amazon EC2, ele AWS IoT Greengrass deve ser usado idealmente com hardware físico. Sempre que possível, recomendamos configurar um Raspberry Pi em vez de usar uma instância do Amazon EC2. Se estiver usando um Raspberry Pi, você não precisará seguir as etapas deste tópico.

 

  1. Faça login no AWS Management Console e execute uma instância do Amazon EC2 usando uma AMI do Amazon Linux. Para obter informações sobre as instâncias do Amazon EC2, consulte o Guia de conceitos básicos do Amazon EC2.

  2. Depois que sua instância do Amazon EC2 estiver em execução, habilite a porta 8883 para permitir a entrada de comunicações MQTT para que outros dispositivos possam se conectar ao núcleo. AWS IoT Greengrass

    1. No painel de navegação da Amazon EC2, selecione Grupos de segurança.

      Painel de navegação com Grupos de segurança em destaque.
    2. Selecione o grupo de segurança da instância que você acabou de executar e, em seguida, selecione a guia Regras de entrada.

    3. Selecione Edit inbound rules (Editar regras de entrada).

      Para habilitar a porta 8883, você adiciona uma regra de TCP personalizada ao grupo de segurança. Para obter mais informações, consulte Adicionar regras a um grupo de segurança no Guia do usuário do Amazon EC2.

    4. Na página Edita regras de entrada, selecione Adicionar regra, insira as configurações a seguir e, depois, selecione Salvar.

      • Para Tipo, selecione Regra TCP personalizada.

      • Em Intervalo de portas, insira 8883.

      • Para Source (Origem), selecione Anywhere (Qualquer lugar).

      • Em Descrição, insira MQTT Communications.

       

  3. Conecte-se à sua instância Amazon EC2.

    1. No painel de navegação, selecione Instances (Instâncias), selecione sua instância e, em seguida, selecione Connect (Conectar).

    2. Siga as instruções na página Connect To Your Instance (Conectar à sua instância) para conectar-se à instância usando SSH e o arquivo da chave privada.

    Você pode usar PuTTY para Windows ou Terminal para macOS. Para obter mais informações, consulte Connect to your Linux instance no Amazon EC2 User Guide.

    Agora você está pronto para configurar sua instância do Amazon EC2 para o AWS IoT Greengrass.

  4. Depois de se conectar à sua instância do Amazon EC2, crie as contas ggc_user e ggc_group:

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

    Se o comando adduser não estiver disponível no sistema, use o comando a seguir.

    sudo useradd --system ggc_user
  5. Para aumentar a segurança, certifique-se de que as proteções de hardlink e softlink (symlink) estão habilitadas no sistema operacional da startup da instância do Amazon EC2.

    nota

    As etapas para habilitar as proteções de hardlink e softlink variam de acordo com o sistema operacional. Consulte a documentação para obter sua distribuição.

    1. Execute o seguinte comando para verificar se as proteções de hardlink e softlink estão habilitadas:

      sudo sysctl -a | grep fs.protected

      Se hardlinks e softlinks estão definidos como 1, suas proteções estão habilitadas corretamente. Prossiga para a etapa 6.

      nota

      Os softlinks são representados por fs.protected_symlinks.

    2. Se hardlinks e softlinks não estão definidos como 1, habilite essas proteções. Navegue até o arquivo de configuração do sistema.

      cd /etc/sysctl.d ls
    3. Usando o editor de texto de sua preferência (Leafpad, GNU nano ou vi), adicione as duas linhas a seguir ao final do arquivo de configuração do sistema. No Amazon Linux 1, esse é o arquivo 00-defaults.conf. No Amazon Linux 2, esse é o arquivo 99-amazon.conf. Talvez seja necessário alterar as permissões (usando o comando chmod) para gravar no arquivo ou usar o comando sudo para editar como raiz (por exemplo, sudo nano 00-defaults.conf).

      fs.protected_hardlinks = 1 fs.protected_symlinks = 1
    4. Reinicialize a instância do Amazon EC2.

      sudo reboot

      Depois de alguns minutos, conecte-se à sua instância usando SSH e então execute o comando a seguir para confirmar a alteração.

      sudo sysctl -a | grep fs.protected

      Os hardlinks e softlinks estão definidos como 1.

  6. Extraia e execute o script a seguir para montar Grupos de controle do Linux (cgroups). Isso permite AWS IoT Greengrass definir o limite de memória para funções Lambda. Também é necessário que os Cgroups sejam executados AWS IoT Greengrass no modo de contêinerização padrão.

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

    Agora, sua instância do Amazon EC2 deve estar pronta para o AWS IoT Greengrass.

  7. Opcional. Instale o tempo de execução do Java 8, que é exigido pelo gerenciador de fluxo. Este tutorial não usa o gerenciador de fluxo, mas usa o fluxo de trabalho de Criação de grupo padrão que habilita o gerenciador de fluxo por padrão. Use os comandos a seguir para instalar o módulo de tempo de execução do Java 8 no dispositivo de núcleo ou desabilite o gerenciador de fluxo antes de implantar seu grupo. As instruções para desabilitar o gerenciador de fluxo são fornecidas no Módulo 3.

    • Para distribuições com base em Debian:

      sudo apt install openjdk-8-jdk
    • Para distribuições com base em Red Hat:

      sudo yum install java-1.8.0-openjdk
  8. Para garantir que você tenha todas as dependências necessárias, baixe e execute o verificador de dependências do Greengrass a partir do AWS IoT Greengrass repositório Samples em. GitHub Esses comandos fazem download, descompactam e executam o script verificador de dependências na sua instância do 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
    Importante

    Este tutorial requer o Python 3.7 Runtime para executar funções locais do Lambda. Quando o gerenciador de fluxo está habilitado, ele também requer o Java 8 Runtime. Se o script check_ggc_dependencies gerar avisos sobre esses pré-requisitos de tempo de execução ausentes, certifique-se de instalá-los antes de continuar. Você pode ignorar os avisos sobre outros pré-requisitos de tempo de execução opcionais ausentes.

A configuração da instância doAmazon EC2 está completa. Avance para Módulo 2: Instalação do software do AWS IoT Greengrass Core.