

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

# 첫 번째 단계
<a name="freertos-prereqs"></a>

**중요**  <a name="deprecation-message-general"></a>
이 페이지는 더 이상 사용되지 않는 Amazon-FreeRTOS 리포지토리를 참조합니다. 새 프로젝트를 생성할 때는 [여기서 시작](freertos-getting-started-modular.md)하는 것이 좋습니다. 현재 사용되지 않는 Amazon-FreeRTOS 리포지토리를 기반으로 하는 기존 FreeRTOS 프로젝트가 이미 있는 경우에는 [Amazon-FreeRTOS Github 리포지토리 마이그레이션 가이드](github-repo-migration.md) 섹션을 참조하세요.

에서 FreeRTOS 사용을 시작하려면 AWS IoT 및 FreeRTOS 클라우드 서비스에 액세스할 수 있는 권한이 있는 사용자인 AWS 계정이 있어야 AWS IoT합니다. 또한 FreeRTOS를 다운로드하고 보드의 FreeRTOS 데모 프로젝트가 함께 작동하도록 구성해야 합니다 AWS IoT. 다음 단원에서는 이러한 요구 사항을 소개합니다.

**참고**  
Espressif ESP32-DevKitC, ESP-WROVER-KIT 또는 ESP32-WROOM-32SE를 사용하는 경우 이 단계를 건너뛰고 [Espressif ESP32-DevKitC 및 ESP-WROVER-KIT 시작하기](getting_started_espressif.md)로 이동하십시오.
Nordic nRF52840-DK를 사용하는 경우 이러한 단계들을 건너뛰고 [Nordic nRF52840-DK 시작하기](getting_started_nordic.md)로 이동하십시오.

1. [AWS 계정 및 권한 설정](#freertos-account-and-permissions) 

1. [에 MCU 보드 등록 AWS IoT](#get-started-freertos-thing)

1. [FreeRTOS 다운로드](#freertos-download)

1. [FreeRTOS 데모 구성](#freertos-configure)

## AWS 계정 및 권한 설정
<a name="freertos-account-and-permissions"></a>

### 에 가입 AWS 계정
<a name="sign-up-for-aws"></a>

를 시작하려면이 AWS필요합니다 AWS 계정. 생성에 대한 자세한 AWS 계정내용은 *AWS Account Management 참조 안내서*의 [시작하기 AWS 계정](https://docs.aws.amazon.com//accounts/latest/reference/getting-started.html)를 참조하세요.

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
+ 의 사용자 및 그룹 AWS IAM Identity Center:

  권한 세트를 생성합니다. *AWS IAM Identity Center 사용자 안내서*에서 [권한 세트 생성](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)의 지침을 따릅니다.
+ ID 제공업체를 통해 IAM에서 관리되는 사용자:

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용자 설명서*의 [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용자 설명서*에서 [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)의 지침을 따릅니다.
  + (권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. *IAM 사용 설명서*에서 [사용자(콘솔)에 권한 추가](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)의 지침을 따릅니다.

## 에 MCU 보드 등록 AWS IoT
<a name="get-started-freertos-thing"></a>

 AWS 클라우드와 통신 AWS IoT 하려면 보드를에 등록해야 합니다. 보드를에 등록하려면 다음이 AWS IoT필요합니다.

** AWS IoT 정책**  
이 AWS IoT 정책은 디바이스에 AWS IoT 리소스에 액세스할 수 있는 권한을 부여합니다. 클라우드에 저장됩니다 AWS .

** AWS IoT 사물**  
 AWS IoT 사물을 사용하면에서 디바이스를 관리할 수 있습니다 AWS IoT. 클라우드에 저장됩니다 AWS .

**프라이빗 키 및 X.509 인증서**  
프라이빗 키와 인증서를 사용하면 디바이스가 로 인증할 수 있습니다 AWS IoT.

보드를 등록하려면 아래 절차를 수행합니다.

**AWS IoT 정책을 생성하려면**

1. IAM 정책을 생성하려면 AWS 리전 및 AWS 계정 번호를 알아야 합니다.

    AWS 계정 번호를 찾으려면 [AWS 관리 콘솔](https://console.aws.amazon.com/)을 열고 오른쪽 상단의 계정 이름 아래에 있는 메뉴를 찾아 확장한 다음 **내 계정을** 선택합니다. 계정 ID는 **Account Settings(계정 설정)** 아래에 표시됩니다.

    AWS 계정의 AWS 리전을 찾으려면를 사용합니다 AWS Command Line Interface. 를 설치하려면 [AWS Command Line Interface 사용 설명서](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)의 지침을 AWS CLI따릅니다. 를 설치한 후 명령 프롬프트 창을 AWS CLI열고 다음 명령을 입력합니다.

   ```
   aws iot describe-endpoint --endpoint-type=iot:Data-ATS
   ```

   출력은 다음과 같아야 합니다.

   ```
   {
       "endpointAddress": "xxxxxxxxxxxxxx-ats.iot.us-west-2.amazonaws.com"
   }
   ```

   이 예제에서 리전은 `us-west-2`입니다.
**참고**  
예시와 같이 ATS 엔드포인트를 사용하는 것이 좋습니다.

1. [AWS IoT 콘솔](https://console.aws.amazon.com/iotv2/)로 이동합니다.

1. 탐색 창에서 **보안**를 선택하고 **정책**를 선택한 다음 **생성**를 선택합니다.

1. 정책을 식별할 이름을 입력합니다.

1. **설명문 추가** 섹션에서 **고급 모드**를 선택합니다. 다음 JSON을 복사하여 정책 편집기 창에 붙여 넣습니다. `{{aws-region}}` 및를 AWS 리전 및 계정 ID`{{aws-account}}`로 바꿉니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iot:Connect",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Publish",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Subscribe",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Receive",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           }
       ]
   }
   ```

------

   이 정책은 다음 권한을 부여합니다.  
**`iot:Connect`**  
모든 클라이언트 ID로 AWS IoT 메시지 브로커에 연결할 수 있는 권한을 디바이스에 부여합니다.  
**`iot:Publish`**  
모든 MQTT 주제에 MQTT 메시지를 게시할 수 있는 권한을 디바이스에 부여합니다.  
**`iot:Subscribe`**  
모든 MQTT 주제 필터를 구독할 수 있는 권한을 디바이스에 부여합니다.  
**`iot:Receive`**  
모든 MQTT 주제에 대한 AWS IoT 메시지 브로커에서 메시지를 수신할 수 있는 권한을 디바이스에 부여합니다.

1. **생성(Create)**을 선택합니다.

**디바이스에 대한 IoT 사물, 프라이빗 키 및 인증서를 생성하려면**

1. [AWS IoT 콘솔](https://console.aws.amazon.com/iotv2/)로 이동합니다.

1. 탐색 창에서 **Manage(관리)**를 선택한 다음 **Things(사물)**를 선택합니다.

1. 계정에 등록된 IoT 사물이 없는 경우 **You don't have any things yet(아직 사물이 없습니다)** 페이지가 표시됩니다. 이 페이지가 나타나면 **Register a thing(사물 등록)**을 선택합니다. 그렇지 않은 경우, **생성**을 선택합니다.

1. ** AWS IoT 사물 생성** 페이지에서 **단일 사물 생성을** 선택합니다.

1. **Add your device to the thing registry(디바이스를 사물 등록에 추가)** 페이지에 사물의 이름을 입력하고 **Next(다음)**를 선택합니다.

1. **Add a certificate for your thing(사물에 대한 인증서 추가)** 페이지의 **One-click certificate creation(원클릭 인증서 생성)**에서 **Create certificate(인증서 생성)**를 선택합니다.

1. 각각에 대한 **Download(다운로드)** 링크를 선택하여 프라이빗 키와 인증서를 다운로드합니다.

1. **Activate(활성화)**를 선택하여 인증서를 활성화합니다. 인증서는 사용 전에 활성화해야 합니다.

1. **정책 연결을** 선택하여 디바이스에 AWS IoT 작업에 대한 액세스 권한을 부여하는 정책을 인증서에 연결합니다.

1. 방금 생성한 정책을 선택하고 **Register thing(사물 등록)**을 선택합니다.

보드가에 등록된 후 로 계속 AWS IoT진행할 수 있습니다[FreeRTOS 다운로드](#freertos-download).

## FreeRTOS 다운로드
<a name="freertos-download"></a>

[FreeRTOS는 FreeRTOS GitHub 리포지토리](https://github.com/freertos/freertos)에서 다운로드할 수 있습니다.

FreeRTOS를 다운로드했으면 이어서 [FreeRTOS 데모 구성](#freertos-configure)을 진행합니다.

## FreeRTOS 데모 구성
<a name="freertos-configure"></a>

보드에서 데모를 컴파일하고 실행하려면 먼저 FreeRTOS 디렉터리에서 몇 가지 구성 파일을 편집해야 합니다.

**AWS IoT 엔드포인트를 구성하려면**

보드에서 실행되는 애플리케이션이 올바른 AWS IoT 엔드포인트로 요청을 보낼 수 있도록 FreeRTOS에 엔드포인트를 제공해야 합니다.

1. [AWS IoT 콘솔](https://console.aws.amazon.com/iotv2/)로 이동합니다.

1. 왼쪽 탐색 창에서 **설정**을 선택합니다.

    AWS IoT 엔드포인트는 **디바이스 데이터 엔드포인트**에 표시됩니다. URL은 `{{1234567890123}}-ats.iot.{{us-east-1}}.amazonaws.com`와 같아야 합니다. 이 엔드포인트를 기록해 둡니다.

1. 탐색 창에서 **Manage(관리)**를 선택한 다음 **Things(사물)**를 선택합니다.

   디바이스에는 AWS IoT 사물 이름이 있어야 합니다. 이 이름을 기록해 둡니다.

1. `demos/include/aws_clientcredential.h`를 엽니다.

1. 다음 상수의 값을 지정합니다.
   + `#define clientcredentialMQTT_BROKER_ENDPOINT "{{Your AWS IoT endpoint}}";`
   + `#define clientcredentialIOT_THING_NAME "{{The AWS IoT thing name of your board}}"`

**Wi-Fi를 구성하려면**

보드를 Wi-Fi 연결을 통해 인터넷에 연결하는 경우 FreeRTOS에 네트워크 연결에 필요한 Wi-Fi 보안 인증 정보를 제공해야 합니다. 보드가 Wi-Fi를 지원하지 않는 경우 이 단계를 건너뛰어도 됩니다.

1. `demos/include/aws_clientcredential.h`.

1. 다음 `#define` 상수의 값을 지정합니다.
   + `#define clientcredentialWIFI_SSID "{{The SSID for your Wi-Fi network}}"`
   + `#define clientcredentialWIFI_PASSWORD "{{The password for your Wi-Fi network}}"`
   + `#define clientcredentialWIFI_SECURITY` {{Wi-Fi 네트워크의 보안 유형}}

     유효한 보안 유형은 다음과 같습니다.
     + `eWiFiSecurityOpen`(열림, 보안 없음)
     + `eWiFiSecurityWEP`(WEP 보안)
     + `eWiFiSecurityWPA`(WPA 보안)
     + `eWiFiSecurityWPA2`(WPA2 보안)

**AWS IoT 자격 증명의 형식을 지정하려면**

디바이스를 AWS IoT 대신하여와 성공적으로 통신하려면 FreeRTOS에 등록된 사물과 연결된 AWS IoT 인증서 및 프라이빗 키와 권한 정책이 있어야 합니다.
**참고**  
 AWS IoT 자격 증명을 구성하려면 디바이스를 등록할 때 AWS IoT 콘솔에서 다운로드한 프라이빗 키와 인증서가 있어야 합니다. 디바이스를 AWS IoT 사물로 등록한 후에는 AWS IoT 콘솔에서 디바이스 인증서를 검색할 수 있지만 프라이빗 키는 검색할 수 없습니다.

FreeRTOS는 C 언어 프로젝트이며, 인증서와 프라이빗 키를 프로젝트에 추가하려면 특수한 형식을 지정해야 합니다.

1. 브라우저 창에서 `tools/certificate_configuration/CertificateConfigurator.html`을 엽니다.

1. **Certificate PEM file(인증서 PEM 파일)**에서는 AWS IoT 콘솔에서 다운로드한 `{{ID}}-certificate.pem.crt`를 선택합니다.

1. **Private Key PEM file(프라이빗 키 PEM 파일)**에서는 AWS IoT 콘솔에서 다운로드한 `{{ID}}-private.pem.key`를 선택합니다.

1. **aws\_clientcredential\_keys.h 생성 및 저장**을 선택한 다음 파일을 `demos/include`에 저장합니다. 이 파일은 디렉터리의 기존 파일을 덮어씁니다.
**참고**  
인증서와 프라이빗 키는 데모 용도로만 하드 코딩됩니다. 프로덕션 수준 애플리케이션은 이러한 파일을 보안 위치에 저장해야 합니다.

FreeRTOS를 구성한 후에는 이어서 보드에 대한 시작하기 가이드를 진행하여 플랫폼의 하드웨어 및 소프트웨어 개발 환경을 설정한 후 보드에서 데모를 컴파일하고 실행할 수 있습니다. 보드별 지침은 [보드별 시작 안내서](getting-started-guides.md) 단원을 참조하십시오. 시작하기 자습서에서 사용하는 데모 애플리케이션은 coreMQTT 상호 인증 데모이며 `demos/coreMQTT/mqtt_demo_mutual_auth.c`에 있습니다.