

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

# 2단계: 환경 설정
<a name="getting-started-set-up-environment"></a>

**참고**  
이러한 단계는 nucleus lite에는 적용되지 않습니다.

이 섹션의 단계에 따라 AWS IoT Greengrass 코어 디바이스로 사용할 Linux 또는 Windows 디바이스를 설정합니다.

## Linux 디바이스 설정(Raspberry Pi)
<a name="getting-started-set-up-raspberry-pi"></a>

이 단계에서는 Raspberry Pi OS와 함께 Raspberry Pi를 사용한다고 가정합니다. 다른 디바이스 또는 운영 체제를 사용하는 경우 해당 디바이스의 관련 설명서를 참조하세요.

**용 Raspberry Pi를 설정하려면 AWS IoT Greengrass V2**

1. Raspberry Pi에 원격으로 연결하려면 Pi에서 SSH를 활성화해야 합니다. 자세한 내용은 *Raspberry Pi 설명서*에서 [SSH(Secure shell)](https://www.raspberrypi.com/documentation/computers/remote-access.html#ssh)를 참조하세요.

1. SSH를 사용하여 연결할 Raspberry Pi의 IP 주소를 찾습니다. 이를 위해 Raspberry Pi에서 다음 명령을 실행할 수 있습니다.

   ```
   hostname -I
   ```

1. SSH를 사용하여 Raspberry Pi에 연결합니다.

   개발 컴퓨터에서 다음 명령을 실행합니다. *username*을 로그인할 사용자의 이름으로 바꾸고 *pi-ip-address*를 이전 단계에서 찾은 IP 주소로 바꿉니다.

   ```
   ssh username@pi-ip-address
   ```
**중요**  
개발 컴퓨터에서 이전 버전의 Windows를 사용하는 경우 `ssh` 명령이 없거나 `ssh`가 있어도 Raspberry Pi에 연결하지 못할 수 있습니다. Raspberry Pi에 연결하려면 무료 오픈 소스 SSH 클라이언트인 [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)를 설치하고 구성하면 됩니다. [PuTTY 설명서](https://tartarus.org/~simon/putty-snapshots/htmldoc/Chapter2.html#gs)를 참조하여 Raspberry Pi에 연결합니다.

1.  AWS IoT Greengrass 코어 소프트웨어가 실행해야 하는 Java 런타임을 설치합니다. Raspberry Pi에서 다음 명령을 사용하여 Java 11을 설치합니다.

   ```
   sudo apt install default-jdk
   ```

   설치가 완료되면 다음 명령을 실행하여 Raspberry Pi에서 Java가 실행되는지 확인합니다.

   ```
   java -version
   ```

   디바이스에서 실행되는 Java 버전이 명령을 통해 인쇄됩니다. 출력은 다음 예제와 비슷할 것입니다.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

**팁: Raspberry Pi에서 커널 파라미터 설정**  
디바이스가 Raspberry Pi인 경우 다음 단계를 완료하여 Linux 커널 파라미터를 보고 업데이트할 수 있습니다.  
`/boot/cmdline.txt` 파일을 엽니다. 이 파일은 Raspberry Pi가 부팅될 때 적용할 Linux 커널 파라미터를 지정합니다.  
예를 들어 Linux 기반 시스템에서 GNU nano를 사용하여 파일을 열도록 다음 명령을 실행할 수 있습니다.  

   ```
   sudo nano /boot/cmdline.txt
   ```
`/boot/cmdline.txt` 파일에 다음 커널 파라미터가 포함되어 있는지 확인합니다. `systemd.unified_cgroup_hierarchy=0` 파라미터는 cgroups v2 대신 cgroups v1을 사용하도록 지정합니다.  

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```
`/boot/cmdline.txt` 파일에 이러한 파라미터가 포함되어 있지 않거나 값이 다른 파라미터가 포함되어 있는 경우 이러한 파라미터와 값을 포함하도록 파일을 업데이트합니다.
`/boot/cmdline.txt` 파일을 업데이트한 경우 Raspberry Pi를 재부팅하여 변경 사항을 적용합니다.  

   ```
   sudo reboot
   ```

## Linux 디바이스 설정(기타)
<a name="getting-started-set-up-linux"></a><a name="set-up-linux-device-environment-procedure"></a>

**용 Linux 디바이스를 설정하려면 AWS IoT Greengrass V2**

1.  AWS IoT Greengrass 코어 소프트웨어가 실행해야 하는 Java 런타임을 설치합니다. [Amazon Corretto](https://aws.amazon.com/corretto/) 또는 [OpenJDK](https://openjdk.java.net/) 장기 지원 버전을 사용하는 것이 좋습니다. 버전 8 이상이 필요합니다. 다음 명령은 디바이스에 OpenJDK를 설치하는 방법을 보여줍니다.
   + Debian 기반 또는 Ubuntu 기반 배포판의 경우:

     ```
     sudo apt install default-jdk
     ```
   + Red Hat 기반 배포판의 경우:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + 대상 Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Amazon Linux 2023의 경우:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   설치가 완료되면 다음 명령을 실행하여 Linux 디바이스에서 Java가 실행되는지 확인합니다.

   ```
   java -version
   ```

   디바이스에서 실행되는 Java 버전이 명령을 통해 인쇄됩니다. 예를 들어 Debian 기반 배포의 경우 출력이 다음 샘플과 유사할 수 있습니다.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (선택 사항) 디바이스에서 구성 요소를 실행하는 기본 시스템 사용자와 그룹을 생성합니다. 설치 관리자 인수를 사용하여 설치하는 동안 AWS IoT Greengrass 코어 소프트웨어 `--component-default-user` 설치 관리자가이 사용자와 그룹을 생성하도록 선택할 수도 있습니다. 자세한 내용은 [설치 프로그램 인수](configure-installer.md) 단원을 참조하십시오.

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1.  AWS IoT Greengrass 코어 소프트웨어(일반적으로 `root`)를 실행하는 사용자에게 모든 사용자 및 모든 그룹에서를 실행할 수 `sudo` 있는 권한이 있는지 확인합니다.

   1. 다음 명령을 실행하여 `/etc/sudoers` 파일을 엽니다.

      ```
      sudo visudo
      ```

   1. 사용자에 대한 권한이 다음 예제와 같은지 확인합니다.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. (선택 사항) [컨테이너화된 Lambda 함수를 실행](run-lambda-functions.md)하려면 [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1을 활성화하고 *memory* 및 *devices* cgroups를 활성화하고 탑재해야 합니다. 컨테이너화된 Lambda 함수를 실행할 계획이 없는 경우 이 단계를 건너뛸 수 있습니다.

   이러한 cgroups 옵션을 활성화하려면 다음 Linux 커널 파라미터로 디바이스를 부팅합니다.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   디바이스의 커널 파라미터를 보고 설정하는 방법에 대한 자세한 내용은 운영 체제 및 부트 로더 설명서를 참조하세요. 지침에 따라 커널 파라미터를 영구적으로 설정합니다.

1. [디바이스 요구 사항](greengrass-nucleus-component.md#greengrass-v2-requirements)의 요구 사항 목록에 따라 디바이스에 기타 모든 필수 종속성을 설치합니다.

## Windows 디바이스 설정
<a name="getting-started-set-up-windows"></a><a name="set-up-windows-device-environment-procedure"></a>

**용 Windows 디바이스를 설정하려면 AWS IoT Greengrass V2**

1.  AWS IoT Greengrass 코어 소프트웨어가 실행해야 하는 Java 런타임을 설치합니다. [Amazon Corretto](https://aws.amazon.com/corretto/) 또는 [OpenJDK](https://openjdk.java.net/) 장기 지원 버전을 사용하는 것이 좋습니다. 버전 8 이상이 필요합니다.

1. [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) 시스템 변수에서 Java를 사용할 수 있는지 확인하고 사용할 수 없는 경우 추가합니다. LocalSystem 계정은 AWS IoT Greengrass 코어 소프트웨어를 실행하므로 사용자의 PATH 사용자 변수 대신 PATH 시스템 변수에 Java를 추가해야 합니다. 해결 방법:

   1. Windows 키를 눌러 시작 메뉴를 엽니다.

   1. 시작 메뉴에서 **environment variables**를 입력하여 시스템 옵션을 검색합니다.

   1. 시작 메뉴 검색 결과에서 **시스템 환경 변수 편집**을 선택하여 **시스템 속성** 창을 엽니다.

   1. **환경 변수...**를 선택하여 **환경 변수** 창을 엽니다.

   1. **시스템 변수**에서 **경로**를 선택하고 **편집**을 선택합니다. **환경 변수 편집** 창에서 각 경로를 별도의 줄로 볼 수 있습니다.

   1. Java 설치 `bin` 폴더의 경로가 있는지 확인합니다. 경로는 다음 예제와 유사할 수 있습니다.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. **경로**에서 Java 설치 `bin` 폴더가 누락된 경우 **새로 만들기**를 선택하여 추가한 다음 **확인**을 선택합니다.

1. <a name="set-up-windows-device-environment-open-cmd"></a>관리자 권한으로 Windows 명령 프롬프트(`cmd.exe`)를 엽니다.

1. <a name="set-up-windows-device-environment-create"></a>Windows 디바이스의 LocalSystem 계정에 기본 사용자를 생성합니다. *암호*를 안전한 암호로 바꿉니다.

   ```
   net user /add ggc_user password
   ```
**작은 정보**  <a name="windows-password-expiration-tip"></a>
Windows 구성에 따라 사용자의 암호가 미래의 날짜에 만료되도록 설정할 수 있습니다. Greengrass 애플리케이션이 계속 작동하도록 하려면 암호가 만료되는 시기를 추적하고 만료되기 전에 이를 업데이트합니다. 사용자의 암호가 만료되지 않도록 설정할 수도 있습니다.  
사용자와 암호가 만료되는 시기를 확인하려면 다음 명령을 실행합니다.  

     ```
     net user ggc_user | findstr /C:expires
     ```
사용자의 암호가 만료되지 않도록 설정하려면 다음 명령을 실행합니다.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
[`wmic` 명령이 더는 사용되지 않는](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic) Windows 10 이상을 사용하는 경우 다음 PowerShell 명령을 실행합니다.  

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Microsoft에서 [PsExec 유틸리티](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec)를 다운로드하여 디바이스에 설치합니다.

1. <a name="set-up-windows-device-credentials"></a>PsExec 유틸리티를 사용하여 기본 사용자의 사용자 이름과 암호를 LocalSystem 계정의 Credential Manager 인스턴스에 저장합니다. 이전에 설정한 사용자의 암호로 *암호*를 바꿉니다.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   **PsExec License Agreement**가 열리면 **Accept**를 선택하여 라이선스에 동의하고 명령을 실행합니다.
**참고**  
Windows 디바이스에서 LocalSystem 계정은 Greengrass nucleus를 실행하고 PsExec 유틸리티를 사용하여 기본 사용자 정보를 LocalSystem 계정에 저장해야 합니다. Credential Manager 애플리케이션을 사용하면 이 정보가 LocalSystem 계정 대신 현재 로그인한 사용자의 Windows 계정에 저장됩니다.