

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

# 첫 번째 단계
<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 계정**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)을 엽니다.

1. 온라인 지침을 따릅니다.

   등록 절차 중 전화 또는 텍스트 메시지를 받고 전화 키패드로 확인 코드를 입력하는 과정이 있습니다.

   에 가입하면AWS 계정 *AWS 계정 루트 사용자*이 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스할 권한이 있습니다. 보안 모범 사례는 사용자에게 관리 액세스 권한을 할당하고, 루트 사용자만 사용하여 [루트 사용자 액세스 권한이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)을 수행하는 것입니다.

AWS는 가입 프로세스가 완료된 후 확인 이메일을 보냅니다. 언제든지 [https://aws.amazon.com/](https://aws.amazon.com/)으로 이동하고 **내 계정**을 선택하여 현재 계정 활동을 확인하고 계정을 관리할 수 있습니다.

### 관리자 액세스 권한이 있는 사용자 생성
<a name="create-an-admin"></a>

에 가입한 후 일상적인 작업에 루트 사용자를 사용하지 않도록 관리 사용자를 AWS 계정보호AWS IAM Identity Center, AWS 계정 루트 사용자활성화 및 생성합니다.

**보안AWS 계정 루트 사용자**

1.  **루트 사용자를** 선택하고 AWS 계정이메일 주소를 입력하여 계정 소유자[AWS Management Console](https://console.aws.amazon.com/)로에 로그인합니다. 다음 페이지에서 비밀번호를 입력합니다.

   루트 사용자를 사용하여 로그인하는 데 도움이 필요하면 *AWS Sign-In 사용 설명서*의 [루트 사용자로 로그인](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)을 참조하세요.

1. 루트 사용자의 다중 인증(MFA)을 활성화합니다.

   지침은 *IAM 사용 설명서*의 [AWS 계정루트 사용자(콘솔)에 대한 가상 MFA 디바이스 활성화를 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html).

**관리자 액세스 권한이 있는 사용자 생성**

1. IAM Identity Center를 활성화합니다.

   지침은 *AWS IAM Identity Center 사용자 안내서*의 [AWS IAM Identity Center 설정](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)을 참조하세요.

1. IAM Identity Center에서 사용자에게 관리 액세스 권한을 부여합니다.

   를 자격 증명 소스IAM Identity Center 디렉터리로 사용하는 방법에 대한 자습서는 사용 *AWS IAM Identity Center설명서*[의 기본값으로 사용자 액세스 구성을IAM Identity Center 디렉터리](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) 참조하세요.

**관리 액세스 권한이 있는 사용자로 로그인**
+ IAM IDentity Center 사용자로 로그인하려면 IAM Identity Center 사용자를 생성할 때 이메일 주소로 전송된 로그인 URL을 사용합니다.

  IAM Identity Center 사용자를 사용하여 로그인[하는 데 도움이 필요하면 사용 설명서의 AWS액세스 포털에 로그인](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)을 참조하세요. *AWS Sign-In* 

**추가 사용자에게 액세스 권한 할당**

1. IAM Identity Center에서 최소 권한 적용 모범 사례를 따르는 권한 세트를 생성합니다.

   지침은 [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)에 대한 지침은 *AWS IAM Identity Center사용 설명서*에서 참조하세요.

1. 사용자를 그룹에 할당하고, 그룹에 Single Sign-On 액세스 권한을 할당합니다.

   지침은 *AWS IAM Identity Center 사용 설명서*의 [Add groups](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)를 참조하세요.

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

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

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용자 안내서*에서 [서드 파티 ID 제공업체의 역할 생성(페더레이션)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용자 안내서*에서 [IAM 사용자의 역할 생성](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 "YourAWS IoTendpoint";`
   + `#define clientcredentialIOT_THING_NAME "TheAWS IoTthing 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\$1clientcredential\$1keys.h 생성 및 저장**을 선택한 다음 파일을 `demos/include`에 저장합니다. 이 파일은 디렉터리의 기존 파일을 덮어씁니다.
**참고**  
인증서와 프라이빗 키는 데모 용도로만 하드 코딩됩니다. 프로덕션 수준 애플리케이션은 이러한 파일을 보안 위치에 저장해야 합니다.

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