

지원 종료 공지: 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)을 참조하세요.

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

# Raspberry Pi 설정
<a name="setup-filter.rpi"></a>

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

**작은 정보**  
<a name="ggc-install-options"></a>AWS IoT Greengrass 는 AWS IoT Greengrass 코어 소프트웨어 설치를 위한 다른 옵션도 제공합니다. 예를 들어 [Greengrass 디바이스 설정을](quick-start.md) 사용하여 환경을 구성하고 최신 버전의 AWS IoT Greengrass 코어 소프트웨어를 설치할 수 있습니다. 또는 지원되는 Debian 플랫폼에서 [APT 패키지 관리자](install-ggc.md#ggc-package-manager)를 사용하여 AWS IoT Greengrass 코어 소프트웨어를 설치하거나 업그레이드할 수 있습니다. 자세한 내용은 [AWS IoT Greengrass 코어 소프트웨어 설치](install-ggc.md) 단원을 참조하십시오.

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

 

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

1. [Raspbian Buster](https://downloads.raspberrypi.org/raspbian/images/raspbian-2020-02-14/) 운영 체제를 `zip` 파일로 다운로드합니다.

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

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

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

1. 다음으로 [Wi-Fi 네트워크 또는 이더넷 케이블을 통해 Raspberry Pi를 인터넷에 연결합니다](https://www.raspberrypi.org/documentation/configuration/wireless/desktop.md).
**참고**  
컴퓨터가 연결된 네트워크와 *동일한* 네트워크에 Raspberry Pi를 연결하고, 계속하기 전에 컴퓨터와 Raspberry Pi 모두 인터넷에 접속되어 있는지 확인합니다. 작업 환경에 있거나 방화벽 뒤에 있는 경우, Pi와 컴퓨터가 동일한 네트워크에 있도록 두 장치를 게스트 네트워크에 연결해야 할 수도 있습니다. 하지만 이렇게 하면 인트라넷과 같은 로컬 네트워크 리소스와 컴퓨터의 연결이 해제될 수 있습니다. 한 가지 해결책은 Pi를 게스트 Wi-Fi 네트워크에 연결하고 이더넷 케이블을 통해 컴퓨터를 게스트 Wi-Fi 네트워크 *및* 로컬 네트워크에 연결하는 것입니다. 이 구성에서는 컴퓨터를 게스트 Wi-Fi 네트워크를 통해 Raspberry Pi에, 이더넷 케이블을 통해 로컬 네트워크 리소스에 연결할 수 있습니다.

1. Pi에 원격으로 연결하려면 Pi에서 [SSH](https://en.wikipedia.org/wiki/Secure_Shell)를 설정해야 합니다. Raspberry Pi에서 [터미널 창](https://www.raspberrypi.org/documentation/usage/terminal/)을 열고 다음 명령을 실행합니다.

   ```
   sudo raspi-config
   ```

   다음과 같은 모양이어야 합니다.  
![\[Raspberry Pi 소프트웨어 구성 도구(raspi-config) 스크린샷\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/gg-get-started-001.png)

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

   ```
   sudo reboot
   ```

1. 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-address*는 `hostname -I` 명령을 사용하여 가져온 Raspberry Pi의 IP 주소입니다.

   Windows를 사용하는 경우, [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)를 설치하고 구성해야 합니다. **연결**을 확장하고 **데이터**를 선택한 다음 **프롬프트**가 선택되어 있는지 확인합니다.  
![\[Prompt가 선택된 PuTTY 창\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/gg-get-started-001.4.png)

   다음으로 **Session(세션)**을 선택하고 Raspberry Pi의 IP 주소를 입력한 다음 기본 설정을 사용하여 **열기**를 선택합니다.  
![\[Host Name(또는 IP 주소) 필드에 IP 주소가 있는 PuTTY 창\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/gg-get-started-001.5.png)

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

   기본 Raspberry Pi 로그인 및 암호는 각각 **pi**와 **raspberry**입니다.  
![\[초기 PuTTY 터미널 창\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/gg-get-started-001.6.png)
**참고**  
컴퓨터가 VPN을 사용하여 원격 네트워크에 연결되어 있는 경우, SSH를 사용하여 컴퓨터에서 Raspberry Pi에 연결하기가 어려울 수 있습니다.

1. <a name="add-ggc-user-ggc-group"></a>이제 Raspberry Pi를 설정할 준비가 되었습니다 AWS IoT Greengrass. 먼저 로컬 Raspberry Pi 터미널 창 또는 SSH 터미널 창에서 다음 명령을 실행합니다.
**작은 정보**  
<a name="ggc-install-options"></a>AWS IoT Greengrass 는 AWS IoT Greengrass 코어 소프트웨어 설치를 위한 다른 옵션도 제공합니다. 예를 들어 [Greengrass 디바이스 설정을](quick-start.md) 사용하여 환경을 구성하고 최신 버전의 AWS IoT Greengrass 코어 소프트웨어를 설치할 수 있습니다. 또는 지원되는 Debian 플랫폼에서 [APT 패키지 관리자](install-ggc.md#ggc-package-manager)를 사용하여 AWS IoT Greengrass 코어 소프트웨어를 설치하거나 업그레이드할 수 있습니다. 자세한 내용은 [AWS IoT Greengrass 코어 소프트웨어 설치](install-ggc.md) 단원을 참조하십시오.

   ```
   sudo adduser --system ggc_user
   sudo addgroup --system ggc_group
   ```

1. Pi 장치에 대한 보안을 개선하려면 시작 시 운영 체제에서 hardlink 및 softlink(symlink) 보호를 활성화합니다.

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

      ```
      cd /etc/sysctl.d
      ls
      ```
**참고**  
`98-rpi.conf` 파일이 보이지 않으면 `README.sysctl` 파일의 지침을 따릅니다.

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

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

   1. Pi를 재부팅합니다.

      ```
      sudo reboot
      ```

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

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

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

1. <a name="stretch-step"></a> 명령줄 부트 파일을 편집하여 메모리 cgroup을 활성화하고 탑재합니다. 이렇게 하면 AWS IoT Greengrass 가 Lambda 함수의 메모리 제한을 설정할 수 있습니다. AWS IoT Greengrass 기본 [컨테이너화](lambda-group-config.md#lambda-containerization-considerations) 모드에서 실행하려면 Cgroup도 필요합니다.

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

      ```
      cd /boot/
      ```

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

      ```
      cgroup_enable=memory cgroup_memory=1
      ```

   1. 이제 Pi를 재부팅합니다.

      ```
      sudo reboot
      ```

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

1. <a name="install-java-8-runtime"></a>선택 사항. Java 8 런타임을 설치합니다. 이 런타임은 [스트림 관리자](stream-manager.md)에 필요합니다. 이 튜토리얼에서는 스트림 관리자를 사용하지 않지만 기본적으로 스트림 관리자를 활성화하는 **기본 그룹 생성** 워크플로를 사용합니다. 그룹을 배포하기 전에 다음 명령을 사용하여 코어 장치에 Java 8 런타임을 설치하거나 스트림 관리자를 비활성화해야 합니다. 스트림 관리자를 비활성화하는 지침은 모듈 3에 나와 있습니다.

   ```
   sudo apt install openjdk-8-jdk
   ```

1. 필요한 모든 종속성이 있는지 확인하려면 GitHub의 [AWS IoT Greengrass 샘플](https://github.com/aws-samples/aws-greengrass-samples) 리포지토리에서 Greengrass 종속성 확인 프로그램을 다운로드하여 실행합니다. 이 명령은 `Downloads` 디렉터리에 있는 종속성 확인 스크립트의 압축을 풀고 실행합니다.
**참고**  
 Raspbian 커널 버전 5.4.51을 실행하는 경우 종속성 검사기가 실패할 수 있습니다. 이 버전은 메모리 cgroup을 제대로 마운트하지 않습니다. 이로 인해 컨테이너 모드에서 실행되는 Lambda 함수가 실패할 수 있습니다.  
커널 업데이트에 대한 자세한 내용은 Raspberry Pi 포럼에서 [커널 업그레이드 후 로드되지 않은 Cgroups](https://www.raspberrypi.org/forums/viewtopic.php?t=280656)를 참조하십시오.

   ```
   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 키를 눌러 다른 텍스트 화면을 표시합니다.
**중요**  
<a name="lambda-runtime-prereqs"></a>이 튜토리얼에서 로컬 Lambda 함수를 실행하려면 Python 3.7 런타임이 필요합니다. 스트림 관리자를 활성화한 경우에도 Java 8 런타임이 필요합니다. `check_ggc_dependencies` 스크립트에서 이러한 누락된 런타임 사전 조건에 대한 경고를 생성하는 경우 계속하기 전에 해당 사전 조건을 설치해야 합니다. 선택 사항인 다른 런타임 사전 조건 누락 관련 경고는 무시해도 됩니다.

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

귀하의 Raspberry Pi 구성이 완료되었습니다. 계속해서 [모듈 2: AWS IoT Greengrass 코어 소프트웨어 설치](module2.md)로 이동하세요.