Raspberry Pi 설정 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 2023년 6월 30일에 수명 연장 단계에 들어갔습니다. AWS IoT Greengrass V1 관리형 정책에 대한 자세한 정보는 섹션을 참조하세요. 이 날짜 이후에는 기능, 개선 사항, 버그 수정 또는 보안 패치를 제공하는 업데이트가 AWS IoT Greengrass V1 릴리스되지 않습니다. 에서 실행되는 기기는 AWS IoT Greengrass V1 중단되지 않으며 계속 작동하고 클라우드에 연결됩니다. 새로운 기능이 크게 추가되고 추가 플랫폼에 대한 지원이 추가되는 으로 마이그레이션하는 AWS IoT Greengrass Version 2 것이 좋습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Raspberry Pi 설정

이 주제의 단계에 따라 AWS IoT Greengrass 코어로 사용할 Raspberry Pi를 설정합니다.

작은 정보

AWS IoT Greengrass에서는 다른 방법으로도 AWS IoT Greengrass 코어 소프트웨어를 설치할 수 있습니다. 예를 들어 Greengrass 디바이스 설정을 사용하여 환경을 구성하고 최신 버전의 AWS IoT Greengrass 코어 소프트웨어를 설치할 수 있습니다. 또는 지원되는 Debian 플랫폼에서 APT 패키지 관리자를 사용하여 AWS IoT Greengrass 코어 소프트웨어를 설치하거나 업그레이드할 수 있습니다. 자세한 내용은 AWS IoT Greengrass 코어 소프트웨어 설치 섹션을 참조하세요.

처음으로 Raspberry Pi를 설정하는 경우, 아래 모든 단계에 따라야 합니다. 그렇지 않으면 9단계로 건너뛰어도 됩니다. 하지만 2단계에서 권장하는 대로 운영 체제를 사용해 Raspberry Pi의 이미지를 다시 생성하는 것이 좋습니다.

 

  1. SD Memory Card Formatter와 같은 SD 카드 포맷터를 다운로드하고 설치합니다. SD 카드를 컴퓨터에 삽입합니다. 프로그램을 시작하고 SD 카드를 삽입한 드라이브를 선택합니다. SD 카드의 빠른 포맷을 수행할 수 있습니다.

  2. Raspbian Buster 운영 체제를 zip 파일로 다운로드합니다.

  3. SD 카드 쓰기 도구(예: Etcher)를 사용하여 도구의 지침에 따라 다운로드한 zip 파일을 SD 카드로 플래시합니다. 운영 체제 이미지가 크기 때문에 이 단계는 시간이 약간 걸릴 수 있습니다. 컴퓨터에서 SD 카드를 빼내고 Raspberry Pi에 microSD 카드를 삽입합니다.

  4. 처음으로 부팅하는 경우, Raspberry Pi를 모니터(HDMI를 통해), 키보드, 마우스에 연결하는 것이 좋습니다. 그 다음 Pi를 마이크로 USB 전원에 연결하면 Raspbian 운영 체제가 시작됩니다.

  5. 계속하기 전에 Pi의 키보드 레이아웃을 구성하는 것이 좋습니다. 그러려면 오른쪽 상단의 Raspberry 아이콘을 선택하고, 기본 설정Mouse and Keyboard Settings(마우스 및 키보드 설정)를 차례로 선택합니다. 그 다음 Keyboard(키보드) 탭에서 Keyboard Layout(키보드 레이아웃)을 선택한 다음 적절한 키보드 종류를 선택합니다.

  6. 다음으로 Wi-Fi 네트워크 또는 이더넷 케이블을 통해 Raspberry Pi를 인터넷에 연결합니다.

    참고

    컴퓨터가 연결된 네트워크와 동일한 네트워크에 Raspberry Pi를 연결하고, 계속하기 전에 컴퓨터와 Raspberry Pi 모두 인터넷에 접속되어 있는지 확인합니다. 작업 환경에 있거나 방화벽 뒤에 있는 경우, Pi와 컴퓨터가 동일한 네트워크에 있도록 두 디바이스를 게스트 네트워크에 연결해야 할 수도 있습니다. 하지만 이렇게 하면 인트라넷과 같은 로컬 네트워크 리소스와 컴퓨터의 연결이 해제될 수 있습니다. 한 가지 해결책은 Pi를 게스트 Wi-Fi 네트워크에 연결하고 이더넷 케이블을 통해 컴퓨터를 게스트 Wi-Fi 네트워크 로컬 네트워크에 연결하는 것입니다. 이 구성에서는 컴퓨터를 게스트 Wi-Fi 네트워크를 통해 Raspberry Pi에, 이더넷 케이블을 통해 로컬 네트워크 리소스에 연결할 수 있습니다.

  7. Pi에 원격으로 연결하려면 Pi에서 SSH를 설정해야 합니다. Raspberry Pi에서 터미널 창을 열고 다음 명령을 실행합니다.

    sudo raspi-config

    다음과 같은 모양이어야 합니다.

    
                            Raspberry Pi 소프트웨어 구성 도구(raspi-config) 스크린샷

    아래로 스크롤해 [Interfacing Options]를 선택한 다음 [P2 SSH]를 선택합니다. 메시지가 나타나면 를 선택합니다. (Tab 키를 누른 다음 Enter 키를 누릅니다). 이제 SSH가 활성화되어야 합니다. 확인(OK)을 선택합니다. Tab키를 사용하여 완료를 선택한 다음 Enter를 누릅니다. Raspberry Pi가 자동으로 재부팅되지 않는 경우 다음 명령을 실행합니다.

    sudo reboot
  8. Raspberry Pi의 터미널에서 다음 명령을 실행합니다.

    hostname -I

    이렇게 하면 Raspberry Pi의 IP 주소가 반환됩니다.

    참고

    그 다음에 ECDSA 키 지문 관련 메시지(Are you sure you want to continue connecting (yes/no)?)를 받으면 yes를 입력합니다. Raspberry Pi의 기본 암호는 raspberry입니다.

    macOS를 사용하는 경우에는 터미널 창을 열고 다음을 입력합니다.

    ssh pi@IP-address

    IP-addresshostname -I 명령을 사용하여 가져온 Raspberry Pi의 IP 주소입니다.

    Windows를 사용하는 경우, PuTTY를 설치하고 구성해야 합니다. 연결을 확장하고 데이터를 선택한 다음 프롬프트가 선택되어 있는지 확인합니다.

    
                            Prompt가 선택된 PuTTY 창

    다음으로 Session(세션)을 선택하고 Raspberry Pi의 IP 주소를 입력한 다음 기본 설정을 사용하여 열기를 선택합니다.

    
                            Host Name(또는 IP 주소) 필드에 IP 주소가 있는 PuTTY 창

    PuTTY 보안 알림이 표시되면 를 선택합니다.

    기본 Raspberry Pi 로그인 및 암호는 각각 piraspberry입니다.

    
                            초기 PuTTY 터미널 창
    참고

    컴퓨터가 VPN을 사용하여 원격 네트워크에 연결되어 있는 경우, SSH를 사용하여 컴퓨터에서 Raspberry Pi에 연결하기가 어려울 수 있습니다.

  9. 이제 AWS IoT Greengrass에 대해 Raspberry Pi를 설정할 준비가 되었습니다. 먼저 로컬 Raspberry Pi 터미널 창 또는 SSH 터미널 창에서 다음 명령을 실행합니다.

    작은 정보

    AWS IoT Greengrass에서는 다른 방법으로도 AWS IoT Greengrass 코어 소프트웨어를 설치할 수 있습니다. 예를 들어 Greengrass 디바이스 설정을 사용하여 환경을 구성하고 최신 버전의 AWS IoT Greengrass 코어 소프트웨어를 설치할 수 있습니다. 또는 지원되는 Debian 플랫폼에서 APT 패키지 관리자를 사용하여 AWS IoT Greengrass 코어 소프트웨어를 설치하거나 업그레이드할 수 있습니다. 자세한 내용은 AWS IoT Greengrass 코어 소프트웨어 설치 섹션을 참조하세요.

    sudo adduser --system ggc_user sudo addgroup --system ggc_group
  10. Pi 디바이스에 대한 보안을 개선하려면 시작 시 운영 체제에서 hardlink 및 softlink(symlink) 보호를 활성화합니다.

    1. 98-rpi.conf 파일로 이동합니다.

      cd /etc/sysctl.d ls
      참고

      98-rpi.conf 파일이 보이지 않으면 README.sysctl 파일의 지침을 따릅니다.

    2. 텍스트 편집기(예: Leafpad, GNU nano 또는 vi)를 사용하여 파일 끝에 다음 두 줄을 추가합니다. sudo 명령을 사용하여 루트로 편집해야 할 수 있습니다(예: sudo nano 98-rpi.conf).

      fs.protected_hardlinks = 1 fs.protected_symlinks = 1
    3. Pi를 재부팅합니다.

      sudo reboot

      약 1분 후 SSH를 사용하여 Pi에 연결하고 다음 명령을 실행하여 변경 사항을 확인합니다.

      sudo sysctl -a 2> /dev/null | grep fs.protected

      fs.protected_hardlinks = 1fs.protected_symlinks = 1가 보여야 합니다.

  11. 명령줄 부트 파일을 편집하여 메모리 cgroup을 활성화하고 탑재합니다. 이렇게 하면 AWS IoT Greengrass에서 Lambda 함수에 대한 메모리 제한을 설정할 수 있습니다. 또한 Cgroup은 기본 컨테이너화 모드에서 AWS IoT Greengrass을(를) 실행해야 합니다.

    1. boot 디렉터리로 이동합니다.

      cd /boot/
    2. 텍스트 편집기를 사용하여 cmdline.txt을 엽니다. 다음을 새 줄로 추가하지 말고 기존 줄의 끝에 추가합니다. sudo 명령을 사용하여 루트로 편집해야 할 수 있습니다(예: sudo nano cmdline.txt).

      cgroup_enable=memory cgroup_memory=1
    3. 이제 Pi를 재부팅합니다.

      sudo reboot

    이제 AWS IoT Greengrass에 Raspberry Pi를 사용할 준비가 되었습니다.

  12. 선택 사항. Java 8 런타임을 설치합니다. 이 런타임은 스트림 관리자에 필요합니다. 이 튜토리얼에서는 스트림 관리자를 사용하지 않지만 기본적으로 스트림 관리자를 활성화하는 기본 그룹 생성 워크플로를 사용합니다. 그룹을 배포하기 전에 다음 명령을 사용하여 코어 디바이스에 Java 8 런타임을 설치하거나 스트림 관리자를 비활성화해야 합니다. 스트림 관리자를 비활성화하는 지침은 모듈 3에 나와 있습니다.

    sudo apt install openjdk-8-jdk
  13. 필요한 모든 종속성이 있는지 확인하려면 GitHub의 AWS IoT Greengrass 샘플 리포지토리에서 Greengrass 종속성 확인 프로그램을 다운로드하여 실행합니다. 이 명령은 Downloads 디렉터리에 있는 종속성 확인 스크립트의 압축을 풀고 실행합니다.

    참고

    Raspbian 커널 버전 5.4.51을 실행하는 경우 종속성 검사기가 실패할 수 있습니다. 이 버전은 메모리 cgroup을 제대로 마운트하지 않습니다. 이로 인해 컨테이너 모드에서 실행되는 Lambda 함수가 실패할 수 있습니다.

    커널 업데이트에 대한 자세한 내용은 Raspberry Pi 포럼에서 커널 업그레이드 후 로드되지 않은 Cgroups를 참조하십시오.

    cd /home/pi/Downloads 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 modprobe configs sudo ./check_ggc_dependencies | more

    more가 나타나면 Spacebar 키를 눌러 다른 텍스트 화면을 표시합니다.

    중요

    이 튜토리얼에서 로컬 Lambda 함수를 실행하려면 Python 3.7 런타임이 필요합니다. 스트림 관리자를 활성화한 경우에도 Java 8 런타임이 필요합니다. check_ggc_dependencies 스크립트에서 이러한 누락된 런타임 사전 조건에 대한 경고를 생성하는 경우 계속하기 전에 해당 사전 조건을 설치해야 합니다. 선택 사항인 다른 런타임 사전 조건 누락 관련 경고는 무시해도 됩니다.

    modprobe 명령에 대한 자세한 내용을 보려면 터미널에서 man modprobe를 실행합니다.

귀하의 Raspberry Pi 구성이 완료되었습니다. 계속해서 모듈 2: AWS IoT Greengrass 코어 소프트웨어 설치로 이동하십시오.