

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

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

# 모듈 1: Greengrass를 위한 환경 설정
<a name="module1"></a>

이 모듈에서는에서 AWS IoT Greengrass 코어 디바이스 AWS IoT Greengrass 로 사용할 준비가 된 out-of-the-box 사용할 수 있는 방법을 보여줍니다. Amazon EC2 

**작은 정보**  
또는 코어 장치를 자동으로 설정하는 스크립트를 사용하려면 [빠른 시작: Greengrass 장치 설정](quick-start.md) 단원을 참조하십시오.

이 모듈은 완료하는 데 30분이 채 걸리지 않습니다.

시작하기 전에 이 자습서의 [요구 사항](gg-gs.md#gg-requirements)을 읽으십시오. 그런 다음 다음 항목 중 하나의 설정 지침을 따릅니다. 코어 장치 유형에 적용되는 항목만 선택합니다.

**Topics**
+ [Raspberry Pi 설정](setup-filter.rpi.md)
+ [Amazon EC2 인스턴스 설정](setup-filter.ec2.md)
+ [다른 장치 설정](setup-filter.other.md)

**참고**  
사전 구축된 Docker 컨테이너에서 AWS IoT Greengrass 실행 중인를 사용하는 방법을 알아보려면 섹션을 참조하세요[Docker 컨테이너 AWS IoT Greengrass 에서 실행](run-gg-in-docker-container.md).

# 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)로 이동하세요.

# Amazon EC2 인스턴스 설정
<a name="setup-filter.ec2"></a>

이 주제의 단계에 따라 AWS IoT Greengrass 코어로 사용할 Amazon EC2 인스턴스를 설정합니다.

**작은 정보**  
또는 환경을 설정하고 AWS IoT Greengrass 코어 소프트웨어를 설치하는 스크립트를 사용하려면 섹션을 참조하세요[빠른 시작: Greengrass 장치 설정](quick-start.md).

 Amazon EC2 인스턴스를 사용하여이 자습서를 완료할 수 있지만 물리적 하드웨어와 함께 사용하는 것이 AWS IoT Greengrass 이상적입니다. 가능하면 Amazon EC2 인스턴스를 사용하는 대신 [Raspberry Pi를 설정](setup-filter.rpi.md)하는 것이 좋습니다. Raspberry Pi를 사용하는 경우 이 주제의 단계를 따를 필요가 없습니다.

 

1. Amazon Linux AMI를 사용하여 [AWS Management Console](https://console.aws.amazon.com/)에 로그인하고 Amazon EC2 인스턴스를실행합니다. Amazon EC2 인스턴스에 대한 자세한 내용은 [Amazon EC2 시작 가이드](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)를 참조하세요.

1. Amazon EC2 인스턴스가 실행된 후 포트 8883을 활성화하여 다른 디바이스가 AWS IoT Greengrass 코어에 연결할 수 있도록 수신 MQTT 통신을 허용합니다.

   1. Amazon EC2 콘솔의 탐색 창에서 **보안 그룹**을 선택합니다.  
![\[보안 그룹이 강조 표시된 탐색 창\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/gg-get-started-002.6.1.png)

   1. 방금 시작한 인스턴스에 대한 보안 그룹을 선택한 다음 **인바운드 규칙** 탭을 선택합니다.

   1. **인바운드 규칙 편집**을 선택합니다.

      포트 8883을 활성화하려면 사용자 지정 TCP 규칙을 보안 그룹에 추가합니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [보안 그룹에 규칙 추가](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule)를 참조하세요.

   1. **인바운드 규칙 편집** 페이지에서 **규칙 추가**을 선택하고 다음 설정을 입력한 다음 **저장**를 선택합니다.
      + **유형**의 경우 **사용자 지정 TCP 규칙**을 선택합니다.
      + **포트 범위**에 **8883**을 입력합니다.
      + **Source(소스)**에서 **Anywhere(위치 무관)**를 선택합니다.
      + **설명**에 **MQTT Communications**를 입력합니다.

       

1. Amazon EC2 인스턴스에 연결합니다.

   1. 탐색 창에서 **인스턴스**를 선택하고 해당 인스턴스를 선택한 다음 **연결**을 선택합니다.

   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의 경우 Terminal을 사용할 수 있습니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [Linux 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)을 참조하세요.

   이제 AWS IoT Greengrass에 대한 Amazon EC2 인스턴스를 설정할 준비가 되었습니다.

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(symlink) 보호가 활성화되어 있는지 확인합니다.
**참고**  
 hardlink 및 softlink 보호를 활성화하는 단계는 운영 체제마다 다릅니다. 해당 배포의 설명서를 참조하십시오.

   1.  다음 명령을 실행하여 hardlink 및 softlink 보호가 활성화되었는지 확인합니다.

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

       hardlink 및 softlink가 `1`로 설정된 경우 보호가 올바르게 활성화된 것입니다. 6단계로 이동합니다.
**참고**  
Softlink는 `fs.protected_symlinks`로 표시됩니다.

   1. hardlink 및 softlink가 `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
      ```

      hardlink 및 softlink가 1로 설정된 것이 보여야 합니다.

1. 다음 스크립트를 추출하고 실행하여 [Linux 제어 그룹](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/ch01)(cgroups)을 탑재합니다. 이렇게 하면 AWS IoT Greengrass 가 Lambda 함수의 메모리 제한을 설정할 수 있습니다. 기본 [컨테이너화](lambda-group-config.md#lambda-containerization-considerations) AWS IoT Greengrass 모드에서 Cgroup을 실행하려면 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>선택 사항. Java 8 런타임을 설치합니다. 이 런타임은 [스트림 관리자](stream-manager.md)에 필요합니다. 이 튜토리얼에서는 스트림 관리자를 사용하지 않지만 기본적으로 스트림 관리자를 활성화하는 **기본 그룹 생성** 워크플로를 사용합니다. 그룹을 배포하기 전에 다음 명령을 사용하여 코어 장치에 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>이 튜토리얼에서 로컬 Lambda 함수를 실행하려면 Python 3.7 런타임이 필요합니다. 스트림 관리자를 활성화한 경우에도 Java 8 런타임이 필요합니다. `check_ggc_dependencies` 스크립트에서 이러한 누락된 런타임 사전 조건에 대한 경고를 생성하는 경우 계속하기 전에 해당 사전 조건을 설치해야 합니다. 선택 사항인 다른 런타임 사전 조건 누락 관련 경고는 무시해도 됩니다.

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

# 다른 장치 설정
<a name="setup-filter.other"></a>

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

**작은 정보**  
또는 환경을 설정하고 AWS IoT Greengrass 코어 소프트웨어를 설치하는 스크립트를 사용하려면 섹션을 참조하세요[빠른 시작: Greengrass 장치 설정](quick-start.md).

처음 사용하는 경우 Raspberry Pi 또는 Amazon EC2 인스턴스를 코어 디바이스로 사용하고 디바이스에 적합한 [설정 단계를](module1.md) 따르는 AWS IoT Greengrass것이 좋습니다.

Yocto 프로젝트를 사용하여 사용자 지정 Linux 기반 시스템을 빌드하려는 경우 `meta-aws` 프로젝트의 AWS IoT Greengrass Bitbake 레시피를 사용할 수 있습니다. 또한이 레시피는 임베디드 애플리케이션을 위한 AWS 엣지 소프트웨어를 지원하는 소프트웨어 플랫폼을 개발하는 데 도움이 됩니다. Bitbake 빌드는 장치에 AWS IoT Greengrass Core 소프트웨어를 설치, 구성 및 자동으로 실행합니다.

Yocto Project  
하드웨어 아키텍처에 관계없이 임베디드 애플리케이션을 위한 사용자 지정 Linux 기반 시스템을 구축할 수 있도록 지원하는 오픈 소스 협업 프로젝트입니다. 자세한 내용은 [Yocto 프로젝트](https://www.yoctoproject.org/)를 참조하십시오.

`meta-aws`  
Yocto 레시피를 제공하는 AWS 관리형 프로젝트입니다. 레시피를 사용하여 [OpenEmbedded](https://www.openembedded.org/wiki/Main_Page) 및 Yocto 프로젝트로 구축된 Linux 기반 시스템에서 AWS 엣지 소프웨어를 개발할 수 있습니다. 커뮤니티에서 지원하는 이 기능에 대한 자세한 내용은 GitHub에서 [https://github.com/aws/meta-aws](https://github.com/aws/meta-aws) 프로젝트를 참조하십시오.

`meta-aws-demos`  
프로젝트에 대한 데모가 포함된 AWS 관리형 `meta-aws` 프로젝트입니다. 통합 프로세스에 대한 더 많은 예시는 GitHub의 [https://github.com/aws-samples/meta-aws-demos](https://github.com/aws-samples/meta-aws-demos) 프로젝트를 참조하십시오.

다른 장치나 [지원되는 플랫폼](what-is-gg.md#gg-platforms)을 사용하려면 이 주제의 단계를 따르십시오.

1. <a name="setup-jetson"></a>코어 장치가 NVIDIA Jetson 장치인 경우 먼저 JetPack 4.3 인스톨러에서 펌웨어를 플래시해야 합니다. 다른 장치를 구성하고 있는 경우 2단계로 건너뜁니다.
**참고**  
사용하는 JetPack 설치 관리자 버전은 대상 CUDA Toolkit 버전에 따라 다릅니다. 다음 지침에서는 JetPack 4.3 및 CCUDA Toolkit 10.0를 사용합니다. 장치에 적합한 버전 사용에 대한 자세한 내용은 NVIDIA 설명서의 [Jetpack 설치 방법](https://docs.nvidia.com/jetson/jetpack/install-jetpack/index.html)을 참조하십시오.

   1. Ubuntu 16.04 이상을 실행하는 물리적 데스크톱에서 NVIDIA 설명서의 [JetPack 다운로드 및 설치](https://docs.nvidia.com/jetson/archives/jetpack-archived/jetpack-33/index.html#jetpack/3.3/install.htm%3FTocPath%3D_____3)(4.3)를 따라 JetPack 4.3 설치 프로그램으로 펌웨어를 플래시합니다.

      설치 관리자의 지침을 따라 Jetson 보드의 모든 패키지 및 종속성을 설치하고, 데스크탑과 Micro-B 케이블을 연결해야 합니다.

   1. 정상 모드로 보드를 재부팅하고 디스플레이를 보드에 연결합니다.
**참고**  
SSH를 사용하여 Jetson 보드에 연결할 때 기본 사용자 이름(**nvidia**)과 기본 암호(**nvidia**)를 사용합니다.

1. 다음 명령을 실행하여 `ggc_user` 사용자와 `ggc_group` 그룹을 생성합니다. 실행하는 명령은 코어 장치에 설치된 배포에 따라 다릅니다.
   + 코어 장치가 OpenWrt를 실행하는 경우 다음 명령을 실행하십시오.

     ```
     opkg install shadow-useradd
     opkg install shadow-groupadd
     useradd --system ggc_user
     groupadd --system ggc_group
     ```
   + 또는 다음 명령을 실행하십시오.

     ```
     sudo adduser --system ggc_user
     sudo addgroup --system ggc_group
     ```
**참고**  
시스템에서 `addgroup` 명령을 사용할 수 없는 경우 다음 명령을 사용하십시오.  

     ```
     sudo groupadd --system ggc_group
     ```

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

     ```
     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 종속성 확인 프로그램을 다운로드하여 실행합니다. 이 명령은 종속성 확인 스크립트의 압축을 풀고 실행합니다.

   ```
   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
   ```
**참고**  
`check_ggc_dependencies` 스크립트는 AWS IoT Greengrass 지원되는 플랫폼에서 실행되며 특정 Linux 시스템 명령이 필요합니다. 자세한 내용은 종속성 확인 프로그램의 [Readme](https://github.com/aws-samples/aws-greengrass-samples/blob/master/greengrass-dependency-checker-GGCv1.11.x/README.md)를 참조하십시오.

1. 종속성 확인 프로그램 출력에 표시된 대로 필요한 모든 종속성을 장치에 설치합니다. 누락된 커널 수준 종속성을 위해 커널을 다시 컴파일해야 할 수 있습니다. Linux 제어 그룹(`cgroups`)을 탑재하려면 [cgroupfs-mount](https://raw.githubusercontent.com/tianon/cgroupfs-mount/master/cgroupfs-mount) 스크립트를 실행합니다. 이렇게 AWS IoT Greengrass 하면가 Lambda 함수의 메모리 제한을 설정할 수 있습니다. 기본 [컨테이너화](lambda-group-config.md#lambda-containerization-considerations) AWS IoT Greengrass 모드에서 실행하려면 Cgroup도 필요합니다.

   출력에 오류가 표시되지 않으면 AWS IoT Greengrass 가 디바이스에서 성공적으로 실행할 수 있어야 합니다.
**중요**  
<a name="lambda-runtime-prereqs"></a>이 튜토리얼에서 로컬 Lambda 함수를 실행하려면 Python 3.7 런타임이 필요합니다. 스트림 관리자를 활성화한 경우에도 Java 8 런타임이 필요합니다. `check_ggc_dependencies` 스크립트에서 이러한 누락된 런타임 사전 조건에 대한 경고를 생성하는 경우 계속하기 전에 해당 사전 조건을 설치해야 합니다. 선택 사항인 다른 런타임 사전 조건 누락 관련 경고는 무시해도 됩니다.

    AWS IoT Greengrass 요구 사항 및 종속성 목록은 섹션을 참조하세요[지원되는 플랫폼 및 요구 사항](what-is-gg.md#gg-platforms).