

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

# AWS 병렬 컴퓨팅 서비스 시작하기
<a name="getting-started"></a>

이 자습서에서는 AWS PCS를 사용해 볼 수 있는 간단한 클러스터를 생성합니다. 다음 그림은 클러스터의 설계를 보여줍니다.

![\[자습서 클러스터의 아키텍처 다이어그램: 2개의 컴퓨팅 노드 그룹은의 리소스이며 서비스 소유에서 실행되는 Slurm 클러스터 컨트롤러에 AWS 계정 연결됩니다 AWS 계정. 두 컴퓨팅 노드 그룹의 EC2 인스턴스는 Amazon EFS 및 Amazon FSx for Lustre의 공유 스토리지에 연결됩니다.\]](http://docs.aws.amazon.com/ko_kr/pcs/latest/userguide/images/aws-pcs-tutorial-environment-diagram.png)


자습서 클러스터 설계에는 다음과 같은 주요 구성 요소가 있습니다.
+ [AWS PCS 네트워킹 요구](working-with_networking_vpc-requirements.md) 사항을 충족하는 VPC 및 서브넷입니다.
+ 공유 홈 디렉터리로 사용되는 Amazon EFS 파일 시스템입니다.
+ 공유 고성능 디렉터리를 제공하는 Amazon FSx for Lustre 파일 시스템입니다.
+ Slurm 컨트롤러를 제공하는 AWS PCS 클러스터입니다.
+ 2 AWS PCS 컴퓨팅 노드 그룹.
  + 시스템에 대한 셸 기반 대화형 액세스를 제공하는 `login` 노드 그룹입니다.
  + `compute-1` 노드 그룹은 작업을 실행할 수 있도록 탄력적으로 규모를 조정하는 인스턴스를 제공합니다.
+ `compute-1` 노드 그룹의 EC2 인스턴스로 작업을 전송하는 대기열 1개.

클러스터에는 보안 그룹, IAM 역할 및 EC2 시작 템플릿과 같은 추가 AWS 리소스가 필요하며, 이는 다이어그램에 표시되지 않습니다.

**참고**  
 Bash 셸에서이 주제의 명령줄 단계를 완료하는 것이 좋습니다. Bash 셸을 사용하지 않는 경우 줄 연속 문자 및 변수 설정 및 사용 방식과 같은 일부 스크립트 명령을 통해 셸이 조정되어야 합니다. 또한 쉘의 인용 및 이스케이프 규칙이 다를 수 있습니다. 자세한 내용은 *AWS Command Line Interface 버전 2 사용 설명서*의에서 [문자열이 있는 따옴표 및 리터럴 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html)을 참조하세요.

**Topics**
+ [AWS PCS를 시작하기 위한 사전 조건](getting-started_prerequisites.md)
+ [AWS PCS 자습서와 AWS CloudFormation 함께 사용](getting-started_cfn-note.md)
+ [AWS PCS용 VPC 및 서브넷 생성](getting-started_create-vpc.md)
+ [AWS PCS에 대한 보안 그룹 생성](getting-started_create-sg.md)
+ [AWS PCS에서 클러스터 생성](getting-started_create-cluster.md)
+ [Amazon Elastic File System에서 AWS PCS용 공유 스토리지 생성](getting-started_create-efs.md)
+ [Amazon FSx for Lustre에서 AWS PCS용 공유 스토리지 생성](getting-started_create-fsx.md)
+ [AWS PCS에서 컴퓨팅 노드 그룹 생성](getting-started_create-cng.md)
+ [AWS PCS에서 작업을 관리하기 위한 대기열 생성](getting-started_create-queue.md)
+ [AWS PCS 클러스터에 연결](getting-started_connect.md)
+ [AWS PCS에서 클러스터 환경 탐색](getting-started_explore.md)
+ [AWS PCS에서 단일 노드 작업 실행](getting-started_run-job.md)
+ [AWS PCS에서 Slurm을 사용하여 다중 노드 MPI 작업 실행](getting-started_run-mpi-job.md)
+ [AWS PCS에 대한 AWS 리소스 삭제](getting-started_delete.md)

# AWS PCS를 시작하기 위한 사전 조건
<a name="getting-started_prerequisites"></a>

다음 주제를 참조하여 AWS 계정 및 로컬 개발 환경을 AWS PCS용으로 준비합니다.

**Topics**
+ [에 가입 AWS 하고 관리 사용자를 생성합니다.](setting-up.md)
+ [AWS PCS AWS CLI 용 설치](setting-up_cli.md)
+ [AWS PCS에 필요한 IAM 권한](required-iam-permissions.md)

# 에 가입 AWS 하고 관리 사용자를 생성합니다.
<a name="setting-up"></a>

다음 작업을 완료하여 AWS 병렬 컴퓨팅 서비스(AWS PCS)를 설정합니다.

**Topics**
+ [에 가입 AWS 계정](#sign-up-for-aws)
+ [관리자 액세스 권한이 있는 사용자 생성](#create-an-admin)

## 에 가입 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 User Guide*의 [루트 사용자로 로그인](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 Sign-In 사용 설명서*[의 AWS 액세스 포털에 로그인](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)을 참조하세요.

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

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

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

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

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

# AWS PCS AWS CLI 용 설치
<a name="setting-up_cli"></a>

최신 버전의를 사용해야 합니다 AWS CLI. 자세한 내용은 [버전 2 사용 설명서의 최신 버전의에 설치 또는 업데이트를 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) *AWS Command Line Interface 참조하세요*.

를 구성해야 합니다 AWS CLI. 자세한 내용은 버전 2 사용 설명서의 [구성을 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 참조하세요. *AWS Command Line Interface * 

명령 프롬프트에 다음 명령을 입력하여를 확인합니다. 그러면 도움말 정보가 AWS CLI표시됩니다.

```
aws pcs help
```

# AWS PCS에 필요한 IAM 권한
<a name="required-iam-permissions"></a>

사용 중인 IAM 보안 주체는 AWS PCS IAM 역할, 서비스 연결 역할 AWS CloudFormation, VPC 및 관련 리소스로 작업할 수 있는 권한이 있어야 합니다. 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 및 서비스 연결 역할 [AWS 병렬 컴퓨팅 서비스를 위한 ID 및 액세스 관리](security-iam.md)생성을 참조하세요. [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) 이 가이드의 모든 단계를 동일한 사용자로 완료해야 합니다. 현재 사용자를 확인하려면 다음 명령을 실행합니다.

```
aws sts get-caller-identity
```

# AWS PCS 자습서와 AWS CloudFormation 함께 사용
<a name="getting-started_cfn-note"></a>

 AWS PCS 자습서에는 여러 단계가 있으며, 이는 AWS PCS 클러스터의 부분과 이를 생성하는 데 필요한 절차를 이해하는 데 도움이 되도록 마련된 것입니다. 자습서를 한 번 이상 진행하는 것이 좋습니다. 관련된 내용을 잘 이해한 후에는 AWS CloudFormation 를 사용하여 자동화를 통해 샘플 클러스터를 빠르게 생성할 수 있습니다.

CloudFormation 는 AWS 인프라 배포를 예측 가능하고 반복적으로 생성하고 프로비저닝할 수 있는 AWS 서비스입니다. CloudFormation 템플릿을 사용하여 샘플 클러스터에 대한 AWS 리소스를 **스택**이라는 단일 단위로 자동으로 프로비저닝할 수 있습니다. 스택 작업을 마치면 스택을 삭제할 수 있습니다.

자세한 내용은 [CloudFormation 및 AWS PCS 시작하기](get-started-cfn.md) 단원을 참조하십시오.

# AWS PCS용 VPC 및 서브넷 생성
<a name="getting-started_create-vpc"></a>

 CloudFormation 템플릿을 사용하여 VPC 및 서브넷을 생성할 수 있습니다. 다음 URL을 사용하여 CloudFormation 템플릿을 다운로드한 다음 [CloudFormation 콘솔](https://console.aws.amazon.com/cloudformation/home#/stacks/create)에 템플릿을 업로드하여 새 CloudFormation 스택을 생성합니다. 자세한 내용은 *AWS CloudFormation 사용 설명서*[의 CloudFormation 콘솔 사용을](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console.html) 참조하세요.

```
https://aws-hpc-recipes.s3.amazonaws.com/main/recipes/net/hpc_large_scale/assets/main.yaml
```

 CloudFormation 콘솔에서 템플릿을 연 상태에서 다음 옵션을 입력합니다. 템플릿에 제공된 기본값을 사용할 수 있습니다.
+ **스택 이름 제공에서** 다음을 수행합니다.
  + **스택 이름**에 다음을 입력합니다.

    ```
    hpc-networking
    ```
+ **파라미터**에서:
  + **VPC**에서: 
    + **CidrBlock**에서 다음을 입력합니다.

      ```
      10.3.0.0/16
      ```
  + **서브넷 A에서**: 
    + **CidrPublicSubnetA**에서 다음을 입력합니다.

      ```
      10.3.0.0/20
      ```
    + **CidrPrivateSubnetA**에서 다음을 입력합니다.

      ```
      10.3.128.0/20
      ```
  + **서브넷 B에서**: 
    + **CidrPublicSubnetB**에서 다음을 입력합니다.

      ```
      10.3.16.0/20
      ```
    + **CidrPrivateSubnetB**에서 다음을 입력합니다.

      ```
      10.3.144.0/20
      ```
  + **서브넷 C에서**: 
    + **ProvisionSubnetsC**에서 **True**를 선택합니다.
    + **CidrPublicSubnetC**에서 다음을 입력합니다.

      ```
      10.3.32.0/20
      ```
    + **CidrPrivateSubnetC**에서 다음을 입력합니다.

      ```
      10.3.160.0/20
      ```
+ **기능**에서:
  + 가 **IAM 리소스를 생성할 AWS CloudFormation 수 있음을 승인합니다** 확인란을 선택합니다.

CloudFormation 스택의 상태를 모니터링합니다. 에 도달하면 새 VPC에서 기본 보안 그룹의 ID를 `CREATE_COMPLETE`찾습니다. 자습서의 뒷부분에서 ID를 사용합니다.

## 클러스터 VPC의 기본 보안 그룹 찾기
<a name="getting-started_create-vpc_default-sg"></a>

 새 VPC에서 기본 보안 그룹의 ID를 찾으려면 다음 절차를 따릅니다.
+ [Amazon VPC 콘솔](https://console.aws.amazon.com/vpc)로 이동하세요.
+ **VPC 대시보드**에서 **VPC로 필터링**을 선택합니다.
  + 이름이 로 시작하는 VPC를 선택합니다`hpc-networking`.
  + **보안**에서 **보안 그룹을** 선택합니다.
+ 라는 **그룹의 보안 그룹 ID**를 찾습니다`default`. 설명가 있습니다`default VPC security group`. 나중에 ID를 사용하여 EC2 시작 템플릿을 구성합니다.

# AWS PCS에 대한 보안 그룹 생성
<a name="getting-started_create-sg"></a>

 AWS PCS는 보안 그룹을 사용하여 클러스터 및 해당 컴퓨팅 노드 그룹으로 들어오고 나가는 네트워크 트래픽을 관리합니다. 이 주제에 대한 자세한 내용은 섹션을 참조하세요[보안 그룹 요구 사항 및 고려 사항](working-with_networking_sg.md#working-with_networking_sg-requirements).

이 단계에서는 CloudFormation 템플릿을 사용하여 두 개의 보안 그룹을 생성합니다.
+  AWS PCS 컨트롤러, 컴퓨팅 노드 및 로그인 노드 간의 통신을 지원하는 클러스터 보안 그룹입니다.
+ SSH 액세스를 지원하기 위해 선택적으로 로그인 노드에 추가할 수 있는 인바운드 SSH 보안 그룹

## AWS PCS에 대한 보안 그룹 생성
<a name="getting-started_create-sg_create"></a>

 CloudFormation 템플릿을 사용하여 보안 그룹을 생성할 수 있습니다. 다음 URL을 사용하여 CloudFormation 템플릿을 다운로드한 다음 [CloudFormation 콘솔](https://console.aws.amazon.com/cloudformation/home#/stacks/create)에 템플릿을 업로드하여 새 CloudFormation 스택을 생성합니다. 자세한 내용은 *AWS CloudFormation 사용 설명서*[의 CloudFormation 콘솔 사용을](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console.html) 참조하세요.

```
https://aws-hpc-recipes.s3.amazonaws.com/main/recipes/pcs/getting_started/assets/pcs-cluster-sg.yaml
```

 AWS CloudFormation 콘솔에서 템플릿을 연 상태에서 다음 옵션을 입력합니다. 일부 옵션은 템플릿에 미리 채워집니다. 기본값으로 두면 됩니다.
+ **스택 이름 제공**에서
  + **스택 이름**에 다음을 입력합니다.

    ```
    getstarted-sg
    ```
+ **파라미터** 아래
  + **VpcId**에서 이름이 로 시작하는 VPC를 선택합니다`hpc-networking`.
  +  (선택 사항) **ClientIpCidr**에서 인바운드 SSH 보안 그룹에 대한 보다 제한적인 IP 범위를 입력합니다. 자체 IP/서브넷(자체 ip의 경우 x.x.x.x.x/32, 범위의 경우 x.x.x.x/24로 제한하는 것이 좋습니다. x.x.x.x를 자체 PUBLIC IP로 바꿉니다. [https://ifconfig.co/](https://ifconfig.co/) 같은 도구를 사용하여 퍼블릭 IP를 가져올 수 있습니다.)

 CloudFormation 스택의 상태를 모니터링합니다. 보안 그룹 리소스`CREATE_COMPLETE`에 도달하면 준비됩니다.

 두 가지 보안 그룹이 생성되며 이름은 다음과 같습니다.
+ `cluster-getstarted-sg` - 클러스터 보안 그룹입니다.
+ `inbound-ssh-getstarted-sg` - 인바운드 SSH 액세스를 허용하는 보안 그룹입니다.

# AWS PCS에서 클러스터 생성
<a name="getting-started_create-cluster"></a>

 AWS PCS에서 클러스터는 리소스를 관리하고 워크로드를 실행하기 위한 영구 리소스입니다. 새 VPC 또는 기존 VPC의 서브넷에서 특정 스케줄러(AWS PCS는 현재 Slurm 지원)에 대한 클러스터를 생성합니다. 클러스터는 작업을 수락하고 예약하며 해당 작업을 처리하는 컴퓨팅 노드(EC2 인스턴스)도 시작합니다.

**클러스터 생성**

1. [AWS PCS 콘솔](https://console.aws.amazon.com/pcs/home#/clusters)을 열고 **클러스터 생성을** 선택합니다.

1. **클러스터 세부 정보** 섹션에 다음 필드를 입력합니다.
   + **클러스터 이름** -를 입력합니다. `get-started` 
   + **스케줄러** - **Slurm 버전 25.05** 선택
   + **컨트롤러 크기** - **스몰** 선택

1.  **네트워킹** 섹션에서 다음 필드의 값을 선택합니다.
   + **VPC** - 라는 VPC를 선택합니다. `hpc-networking:Large-Scale-HPC` 
   + **서브넷** - 이름이 로 시작하는 서브넷을 선택합니다. `hpc-networking:PrivateSubnetA` 
   + **보안 그룹** - 라는 클러스터 보안 그룹을 선택합니다. `cluster-getstarted-sg` 

1. **클러스터 생성**을 선택합니다.

**참고**  
**상태** 필드에는 클러스터가 프로비저닝되는 동안 **생성**이 표시됩니다. 클러스터 생성에는 몇 분 정도 걸릴 수 있습니다.

# Amazon Elastic File System에서 AWS PCS용 공유 스토리지 생성
<a name="getting-started_create-efs"></a>

Amazon Elastic File System(Amazon EFS)은 스토리지 용량 및 성능을 프로비저닝하거나 관리하지 않고도 파일 데이터를 공유할 수 있도록 서버리스의 완전 탄력적 파일 스토리지를 제공하는 AWS 서비스입니다. 자세한 내용은 Amazon Elastic File System 사용 설명서에서 [Amazon Elastic File System이란?](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html)을 참조하세요.**

 AWS PCS 데모 클러스터는 EFS 파일 시스템을 사용하여 클러스터 노드 간에 공유 홈 디렉터리를 제공합니다. 클러스터와 동일한 VPC에 EFS 파일 시스템을 생성합니다.

**Amazon EFS 파일 시스템 생성**

1. [Amazon EFS 콘솔](https://console.aws.amazon.com/efs)로 이동합니다.

1.  AWS PCS를 시도할 AWS 리전 위치와 동일하게 설정되어 있는지 확인합니다.

1. **파일 시스템 생성**을 선택합니다.

1. **파일 시스템 생성** 페이지에서 다음 파라미터를 설정합니다.
   + **이름**에 `getstarted-efs`을 입력합니다.
   + **Virtual Private Cloud(VPC)**에서 라는 VPC를 선택합니다. `hpc-networking:Large-Scale-HPC` 
   + **생성(Create)**을 선택합니다. 그러면 **파일 시스템** 페이지로 돌아갑니다.

1. **파일 시스템의 파일 시스템 ID**를 기록해 둡니다. `getstarted-efs` 나중에 이 정보가 필요합니다.

# Amazon FSx for Lustre에서 AWS PCS용 공유 스토리지 생성
<a name="getting-started_create-fsx"></a>

Amazon FSx for Lustre를 사용하면 인기 있는 고성능 Lustre 파일 시스템을 쉽고 비용 효율적으로 시작하고 실행할 수 있습니다. Lustre는 기계 학습, 고성능 컴퓨팅 (HPC), 비디오 처리, 금융 모델링 등 속도가 중요한 워크로드에 사용합니다. 자세한 내용은 [Amazon FSx for Lustre 사용 설명서의 Amazon FSx for Lustre란 무엇입니까?](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html)를 참조하세요. * FSx * 

 AWS PCS 데모 클러스터는 FSx for Lustre 파일 시스템을 사용하여 클러스터 노드 간에 고성능 공유 디렉터리를 제공할 수 있습니다. 클러스터와 동일한 VPC에 FSx for Lustre 파일 시스템을 생성합니다.

**FSx for Lustre 파일 시스템을 생성하려면**

1. [Amazon FSx 콘솔](https://console.aws.amazon.com/fsx)로 이동합니다.

1. 콘솔이 클러스터 AWS 리전 와 동일하게 사용하도록 설정되어 있는지 확인합니다.

1. **파일 시스템 생성**을 선택합니다.
   + **파일 시스템 유형 선택**에서 **Amazon FSx for Lustre**를 선택한 **후 다음을** 선택합니다.

1. **파일 시스템 세부 정보 지정** 페이지에서 다음 파라미터를 설정합니다.
   + **파일 시스템 세부 정보**에서
     + **이름**에 `getstarted-fsx`을 입력합니다.
     + **배포 및 스토리지 유형**에서 **영구, SSD를 선택합니다.**
     + **스토리지 단위당 처리량의** 경우 **125MB/s/TiB**를 선택합니다.
     + **스토리지 용량에** 1.2TiB를 입력합니다.
     + **메타데이터 구성**에서 **자동**을 선택합니다.
     + **데이터 압축 유형**에서 **LZ4**를 선택합니다.
   + **네트워크 및 보안**에서
     + **Virtual Private Cloud(VPC)**에서 라는 VPC를 선택합니다. `hpc-networking:Large-Scale-HPC` 
     + **VPC 보안 그룹의** 경우 라는 보안 그룹을 그대로 둡니다. `default` 
     + **서브넷**에서 이름이 로 시작하는 서브넷을 선택합니다. `hpc-networking:PrivateSubnetA` 
   + 다른 옵션은 기본값으로 설정된 상태로 둡니다.
   + **Next**(다음)를 선택합니다.

1. **검토 및 생성** 페이지에서 **파일 시스템 생성을** 선택합니다. 그러면 **파일 시스템** 페이지로 돌아갑니다.

1.  생성한 FSx for Lustre 파일 시스템의 세부 정보 페이지로 이동합니다.

1. **파일 시스템 ID**와 **탑재 이름을** 기록해 둡니다. 나중에 이 정보가 필요합니다.

**참고**  
 **상태** 필드에 파일 시스템이 프로비저닝되는 동안 **생성**이 표시됩니다. 파일 시스템 생성에는 몇 분 정도 걸릴 수 있습니다. 자습서의 나머지 부분을 진행하기 전에 완료될 때까지 기다립니다.

# AWS PCS에서 컴퓨팅 노드 그룹 생성
<a name="getting-started_create-cng"></a>

 컴퓨팅 노드 그룹은 AWS PCS가 시작하고 관리하는 컴퓨팅 노드(EC2 인스턴스)의 가상 컬렉션입니다. 컴퓨팅 노드 그룹을 정의할 때 EC2 인스턴스 유형, 최소 및 최대 인스턴스 수, 대상 VPC 서브넷, 기본 구매 옵션, 사용자 지정 시작 구성과 같은 일반적인 특성을 지정합니다. AWS PCS는 이러한 설정에 따라 컴퓨팅 노드 그룹에서 컴퓨팅 노드를 효율적으로 시작, 관리 및 종료합니다. 데모 클러스터는 컴퓨팅 노드 그룹을 사용하여 사용자 액세스를 위한 로그인 노드를 제공하고 별도의 컴퓨팅 노드 그룹을 사용하여 작업을 처리합니다. 다음 주제에서는 클러스터에서 이러한 컴퓨팅 노드 그룹을 설정하는 절차를 설명합니다.

**Topics**
+ [AWS PCS용 인스턴스 프로파일 생성](getting-started_create-cng_instance-profile.md)
+ [AWS PCS용 시작 템플릿 생성](getting-started_create-cng_launch-templates.md)
+ [AWS PCS에서 로그인 노드에 대한 컴퓨팅 노드 그룹 생성](getting-started_create-cng_login-nodes.md)
+ [AWS PCS에서 컴퓨팅 작업을 실행하기 위한 컴퓨팅 노드 그룹 생성](getting-started_create-cng_workers.md)

# AWS PCS용 인스턴스 프로파일 생성
<a name="getting-started_create-cng_instance-profile"></a>

컴퓨팅 노드 그룹은 생성 시 인스턴스 프로파일이 필요합니다. AWS Management Console 을 사용하여 Amazon EC2 역할을 생성하는 경우, 콘솔이 자동으로 인스턴스 프로파일을 생성하여 해당 역할과 동일한 이름을 부여합니다. 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [인스턴스 프로파일 사용을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) 참조하세요.

 다음 절차에서는 AWS Management Console 를 사용하여 컴퓨팅 노드 그룹에 대한 인스턴스 프로파일도 생성하는 Amazon EC2에 대한 역할을 생성합니다.

**역할 및 인스턴스 프로파일을 생성하려면**
+ [IAM 콘솔](https://console.aws.amazon.com/iam)로 이동합니다.
+ **액세스 관리(Access management)**에서 **정책(Policies)**을 선택합니다.
  + **정책 생성**을 선택합니다.
  + **권한 지정**의 **정책 편집기**에서 **JSON**을 선택합니다.
  + 텍스트 편집기의 내용을 다음과 같이 바꿉니다.

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

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Action": [
                    "pcs:RegisterComputeNodeGroupInstance"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
    ```

------
  + **다음**을 선택합니다.
  + **검토 및 생성**에서 **정책 이름**에를 입력합니다`AWSPCS-getstarted-policy`.
  + **정책 생성**을 선택합니다.
+ **액세스 관리**에서 **역할**을 선택합니다.
+ **역할 생성**을 선택합니다.
+ **신뢰할 수 있는 엔터티 선택**에서:
  + **신뢰할 수 있는 엔터티 유형**에서 **AWS 서비스를** 선택합니다.
  + **사용 사례**에서 **EC2**를 선택합니다.
    + 그런 다음 지정된 서비스의 **사용 사례 선택**에서 **EC2**를 선택합니다.
  + **다음**을 선택합니다.
+ **권한 추가**에서:
  + **권한 정책**에서 **AWSPCS-getstarted-policy**를 검색합니다.
  + **AWSPCS-getstarted-policy** 옆의 확인란을 선택하여 역할에 추가합니다.
  + **권한 정책**에서 **AmazonSSMManagedInstanceCore**를 검색합니다.
  + **AmazonSSMManagedInstanceCore** 옆의 확인란을 선택하여 역할에 추가합니다.
  + **다음**을 선택합니다.
+ **이름, 검토 및 생성**에서 다음을 수행합니다.
  + **역할 세부 정보**에서:
    + [**역할 이름(Role name)**]에 `AWSPCS-getstarted-role`을 입력합니다.
  + **역할 생성**을 선택합니다.

# AWS PCS용 시작 템플릿 생성
<a name="getting-started_create-cng_launch-templates"></a>

 컴퓨팅 노드 그룹을 생성할 때 AWS PCS가 시작하는 EC2 인스턴스를 구성하는 데 사용하는 EC2 시작 템플릿을 제공합니다. 여기에는 인스턴스가 시작될 때 실행되는 보안 그룹 및 스크립트와 같은 설정이 포함됩니다.

 이 단계에서는 하나의 CloudFormation 템플릿을 사용하여 두 개의 EC2 시작 템플릿을 생성합니다. 템플릿 하나는 로그인 노드를 생성하는 데 사용되고 다른 하나는 컴퓨팅 노드를 생성하는 데 사용됩니다. 이들 간의 주요 차이점은 인바운드 SSH 액세스를 허용하도록 로그인 노드를 구성할 수 있다는 것입니다.

## CloudFormation 템플릿 액세스
<a name="getting-started_create-cng_launch-templates_get-cfn-template"></a>

 다음 URL을 사용하여 CloudFormation 템플릿을 다운로드한 다음 [CloudFormation 콘솔](https://console.aws.amazon.com/cloudformation/home#/stacks/create)에 템플릿을 업로드하여 새 CloudFormation 스택을 생성합니다. 자세한 내용은 *AWS CloudFormation 사용 설명서*[의 CloudFormation 콘솔 사용을](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console.html) 참조하세요.

```
https://aws-hpc-recipes.s3.amazonaws.com/main/recipes/pcs/getting_started/assets/pcs-lt-efs-fsxl.yaml
```

## CloudFormation 템플릿을 사용하여 EC2 시작 템플릿 생성
<a name="getting-started_create-cng_launch-templates_use-cfn-template"></a>

 다음 절차에 따라 CloudFormation 콘솔에서 CloudFormation 템플릿을 완료합니다.
+ **스택 이름 제공에서** 다음을 수행합니다.
  + **스택 이름**에를 입력합니다`getstarted-lt`.
+ **파라미터**에서:
  + **보안**에서
    + **VpcSecurityGroupId**에서 클러스터 VPC`default`에서 라는 보안 그룹을 선택합니다.
    + **ClusterSecurityGroupId**에서 라는 그룹을 선택합니다. `cluster-getstarted-sg` 
    + **SshSecurityGroupId**에서 라는 이름의 그룹을 선택합니다. `inbound-ssh-getstarted-sg` 
    + **SshKeyName**에서 원하는 SSH 키 페어를 선택합니다.
  + **파일 시스템에서**
    + **EfsFilesystemId**에 자습서의 앞부분에서 생성한 EFS 파일 시스템의 파일 시스템 ID를 입력합니다.
    + **FSxLustreFilesystemId**에 자습서의 앞부분에서 생성한 FSx for Lustre 파일 시스템의 파일 시스템 ID를 입력합니다.
    + **FSxLustreFilesystemMountName**에 동일한 FSx for Lustre 파일 시스템의 탑재 이름을 입력합니다.
+ **다음을** 선택한 **후 다음을** 다시 선택합니다.
+ **제출**을 선택합니다.

 CloudFormation 스택의 상태를 모니터링합니다. 시작 템플릿`CREATE_COMPLETE`에 도달하면 사용할 준비가 된 것입니다.

**참고**  
CloudFormation 템플릿이 생성한 모든 리소스를 보려면 [CloudFormation 콘솔](https://console.aws.amazon.com/cloudformation)을 엽니다. `getstarted-lt` 스택을 선택한 다음 **리소스(Resources)** 탭을 선택합니다.

# AWS PCS에서 로그인 노드에 대한 컴퓨팅 노드 그룹 생성
<a name="getting-started_create-cng_login-nodes"></a>

 컴퓨팅 노드 그룹은 AWS PCS가 시작하고 관리하는 컴퓨팅 노드(EC2 인스턴스)의 가상 컬렉션입니다. 컴퓨팅 노드 그룹을 정의할 때 EC2 인스턴스 유형, 최소 및 최대 인스턴스 수, 대상 VPC 서브넷, 기본 구매 옵션, 사용자 지정 시작 구성과 같은 일반적인 특성을 지정합니다. AWS PCS는 이러한 설정에 따라 컴퓨팅 노드 그룹에서 컴퓨팅 노드를 효율적으로 시작, 관리 및 종료합니다.

 이 단계에서는 클러스터에 대한 대화형 액세스를 제공하는 정적 컴퓨팅 노드 그룹을 시작합니다. SSH 또는 Amazon EC2 Systems Manager(SSM)를 사용하여 로그인한 다음 셸 명령을 실행하고 Slurm 작업을 관리할 수 있습니다.

**컴퓨팅 노드 그룹을 생성하려면**
+ [AWS PCS 콘솔](https://console.aws.amazon.com/pcs)을 열고 **클러스터**로 이동합니다.
+ 라는 클러스터를 선택합니다. `get-started` 
+ **컴퓨팅 노드 그룹**으로 이동하여 **생성을** 선택합니다.
+ **컴퓨팅 노드 그룹 설정** 섹션에서 다음을 제공합니다.
  + **컴퓨팅 노드 그룹 이름** -를 입력합니다`login`.
+ **컴퓨팅 구성**에서 다음 값을 입력하거나 선택합니다.
  + **EC2 시작 템플릿** - 이름이 인 시작 템플릿을 선택합니다. `login-getstarted-lt` 
  + **IAM 인스턴스 프로파일** - 라는 인스턴스 프로파일을 선택합니다. `AWSPCS-getstarted-role` 
  + **서브넷 **- 이름이 로 시작하는 서브넷을 선택합니다`hpc-networking:PublicSubnetA`.
  + **인스턴스 **-를 선택합니다`c6i.xlarge`.
  + **조정 구성** - **최소 인스턴스 수**에를 입력합니다`1`. **최대 인스턴스 수에 **를 입력합니다. `1` 
+ **추가 설정**에서 다음을 지정합니다.
  + **AMI ID** - 다음 형식의 이름을 가진 사용하려는 AMI를 선택합니다.

    ```
    aws-pcs-sample_ami-amzn2-platform-slurm-version
    ```

    샘플 AMIs[AWS PCS에서 샘플 Amazon Machine Image(AMIs) 사용](working-with_ami_samples.md).
+ **컴퓨팅 노드 그룹 생성을** 선택합니다.

 **상태** 필드에는 컴퓨팅 노드 그룹이 프로비저닝되는 동안 **생성**이 표시됩니다. 진행 중인 동안 자습서의 다음 단계로 진행할 수 있습니다.

# AWS PCS에서 컴퓨팅 작업을 실행하기 위한 컴퓨팅 노드 그룹 생성
<a name="getting-started_create-cng_workers"></a>

 이 단계에서는 클러스터에 제출된 작업을 실행하기 위해 탄력적으로 확장되는 컴퓨팅 노드 그룹을 시작합니다.

**컴퓨팅 노드 그룹을 생성하려면**
+ [AWS PCS 콘솔](https://console.aws.amazon.com/pcs)을 열고 **클러스터**로 이동합니다.
+ 라는 클러스터를 선택합니다. `get-started` 
+ **컴퓨팅 노드 그룹**으로 이동하여 **생성을** 선택합니다.
+ **컴퓨팅 노드 그룹 설정** 섹션에서 다음을 제공합니다.
  + **컴퓨팅 노드 그룹 이름** -를 입력합니다`compute-1`.
+ **컴퓨팅 구성**에서 다음 값을 입력하거나 선택합니다.
  + **EC2 시작 템플릿** - 이름이 인 시작 템플릿을 선택합니다. `compute-getstarted-lt` 
  + **IAM 인스턴스 프로파일** - 라는 인스턴스 프로파일을 선택합니다. `AWSPCS-getstarted-role` 
  + **서브넷 **- 이름이 로 시작하는 서브넷을 선택합니다`hpc-networking:PrivateSubnetA`.
  + **인스턴스 **-를 선택합니다`c6i.xlarge`.
  + **조정 구성** - **최소 인스턴스 수**에를 입력합니다`0`. **최대 인스턴스 수에 **를 입력합니다. `4` 
+ **추가 설정**에서 다음을 지정합니다.
  + **AMI ID** - 다음 형식의 이름을 가진 사용하려는 AMI를 선택합니다.

    ```
    aws-pcs-sample_ami-amzn2-platform-slurm-version
    ```

    샘플 AMIs[AWS PCS에서 샘플 Amazon Machine Image(AMIs) 사용](working-with_ami_samples.md).
+ **컴퓨팅 노드 그룹 생성을** 선택합니다.

 **상태** 필드에는 컴퓨팅 노드 그룹이 프로비저닝되는 동안 **생성**이 표시됩니다.

**중요**  
 이 자습서의 다음 단계로 진행하기 전에 **상태** 필드에 **활성**이 표시될 때까지 기다립니다.

# AWS PCS에서 작업을 관리하기 위한 대기열 생성
<a name="getting-started_create-queue"></a>

 대기열에 작업을 제출하여 실행합니다. 작업은 AWS PCS가 컴퓨팅 노드 그룹에서 실행하도록 예약할 때까지 대기열에 남아 있습니다. 각 대기열은 처리를 수행하는 데 필요한 EC2 인스턴스를 제공하는 하나 이상의 컴퓨팅 노드 그룹과 연결됩니다.

 이 단계에서는 컴퓨팅 노드 그룹을 사용하여 작업을 처리하는 대기열을 생성합니다.

**대기열 생성**
+ [AWS PCS 콘솔](https://console.aws.amazon.com/pcs)을 엽니다.
+ 이름이 `get-started`인 클러스터를 선택합니다.
+ **컴퓨팅 노드 그룹**으로 이동하여 `compute-1` 그룹의 상태가 **활성**인지 확인합니다.
**중요**  
다음 단계를 진행하기 전에 `compute-1` 그룹의 상태가 **활성**이어야 합니다.
+ **대기열**로 이동하여 **대기열 생성을** 선택합니다.
  + **대기열 구성** 섹션에서 다음 값을 제공합니다.
    + **대기열 이름** - 다음을 입력합니다. `demo` 
    + **컴퓨팅 노드 그룹** - 라는 컴퓨팅 노드 그룹을 선택합니다`compute-1`.
+ **대기열 생성**을 선택합니다.

 **상태** 필드에는 대기열이 **생성되는** 동안 생성이 표시됩니다.

**중요**  
 이 자습서의 다음 단계로 진행하기 전에 **상태** 필드에 **활성**이 표시될 때까지 기다립니다.

# AWS PCS 클러스터에 연결
<a name="getting-started_connect"></a>

 `login` 컴퓨팅 노드 그룹의 상태가 **활성**이 되면 생성한 EC2 인스턴스에 연결할 수 있습니다.

**로그인 노드에 연결하려면**
+ [AWS PCS 콘솔](https://console.aws.amazon.com/pcs)을 열고 **클러스터**로 이동합니다.
+ 이름이 `get-started`인 클러스터를 선택합니다.
+ **컴퓨팅 노드 그룹을** 선택합니다.
+ 라는 컴퓨팅 노드 그룹으로 이동합니다`login`.
+ **컴퓨팅 노드 그룹 ID**를 찾습니다.
+ 다른 브라우저 창 또는 탭에서 [Amazon EC2 콘솔](https://console.aws.amazon.com/ec2)을 엽니다.
  + **인스턴스**를 선택합니다.
  + 다음 태그가 있는 EC2 인스턴스를 검색합니다. *node-group-id*를 이전 단계의 **컴퓨팅 노드 그룹 ID** 값으로 바꿉니다. 인스턴스는 1개여야 합니다.

    ```
    aws:pcs:compute-node-group-id=node-group-id
    ```
  + EC2 인스턴스에 연결합니다. 세션 관리자 또는 SSH를 사용할 수 있습니다.

------
#### [ Session Manager ]
    + 인스턴스를 선택합니다.
    + **연결**을 선택합니다.
    + **인스턴스에 연결**에서 **세션 관리자**를 선택합니다.
    + **연결**을 선택합니다.
    + **연결**을 선택합니다. 브라우저에서 대화형 터미널이 시작됩니다.

------
#### [ SSH ]
    + 인스턴스를 선택합니다.
    + **연결**을 선택합니다.
    + **인스턴스에 연결**에서 **SSH 클라이언트**를 선택합니다.
    + 콘솔에서 제공하는 지침을 따릅니다.
**참고**  
인스턴스의 사용자 이름이이 **`ec2-user`** 아닙니다`root`.

------

# AWS PCS에서 클러스터 환경 탐색
<a name="getting-started_explore"></a>

 클러스터에 로그인한 후 셸 명령을 실행할 수 있습니다. 예를 들어 사용자를 변경하고, 공유 파일 시스템의 데이터를 작업하고, Slurm과 상호 작용할 수 있습니다.

## 사용자 변경
<a name="getting-started_explore_change-user"></a>

 세션 관리자를 사용하여 클러스터에 로그인한 경우 로 연결될 수 있습니다`ssm-user`. 세션 관리자용으로 생성된 특수 사용자입니다. 다음 명령을 사용하여 Amazon Linux 2의 기본 사용자로 전환합니다. SSH를 사용하여 연결한 경우이 작업을 수행할 필요가 없습니다.

```
sudo su - ec2-user
```

## 공유 파일 시스템 작업
<a name="getting-started_explore_fs"></a>

명령에서 EFS 파일 시스템과 FSx for Lustre 파일 시스템을 사용할 수 있는지 확인할 수 있습니다`df -h`. 클러스터의 출력은 다음과 유사해야 합니다.

```
[ec2-user@ip-10-3-6-103 ~]$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   3.8G     0  3.8G   0% /dev
tmpfs                      3.9G     0  3.9G   0% /dev/shm
tmpfs                      3.9G  556K  3.9G   1% /run
tmpfs                      3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/nvme0n1p1              24G   18G  6.6G  73% /
127.0.0.1:/                8.0E     0  8.0E   0% /home
10.3.132.79@tcp:/zlshxbev  1.2T  7.5M  1.2T   1% /shared
tmpfs                      780M     0  780M   0% /run/user/0
tmpfs                      780M     0  780M   0% /run/user/1000
```

 `/home` 파일 시스템은 127.0.0.1을 탑재하며 용량이 매우 큽니다. 자습서 앞부분에서 생성한 EFS 파일 시스템입니다. 여기에 작성된 모든 파일은 클러스터의 모든 노드에서 `/home`에서 사용할 수 있습니다.

 `/shared` 파일 시스템은 프라이빗 IP를 탑재하며 용량은 1.2TB입니다. 자습서 앞부분에서 생성한 FSx for Lustre 파일 시스템입니다. 여기에 작성된 모든 파일은 클러스터의 모든 노드에서 `/shared`에서 사용할 수 있습니다.

## Slurm과 상호 작용
<a name="getting-started_explore_slurm"></a>

**Contents**
+ [대기열 및 노드 나열](#getting-started_explore_slurm_queues)
+ [작업 표시](#getting-started_explore_slurm_jobs)

### 대기열 및 노드 나열
<a name="getting-started_explore_slurm_queues"></a>

 를 사용하여 대기열과 연결된 노드를 나열할 수 있습니다`sinfo`. 클러스터의 출력은 다음과 유사해야 합니다.

```
[ec2-user@ip-10-3-6-103 ~]$ sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
demo         up   infinite      4  idle~ compute-1-[1-4]
[ec2-user@ip-10-3-6-103 ~]$
```

 라는 파티션을 기록해 둡니다`demo`. 상태는 `up` 이고 노드는 최대 4개입니다. 노드 `compute-1` 그룹의 노드와 연결됩니다. 컴퓨팅 노드 그룹을 편집하고 최대 인스턴스 수를 8개로 늘리면 노드 수가 읽히`8`고 노드 목록에가 표시됩니다`compute-1-[1-8]`. 4개의 노드`test`로 라는 두 번째 컴퓨팅 노드 그룹을 생성하고 `demo` 대기열에 추가한 경우 해당 노드도 노드 목록에 표시됩니다.

### 작업 표시
<a name="getting-started_explore_slurm_jobs"></a>

 를 사용하여 시스템의 모든 작업을 모든 상태로 나열할 수 있습니다`squeue`. 클러스터의 출력은 다음과 유사해야 합니다.

```
[ec2-user@ip-10-3-6-103 ~]$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
```

Slurm 작업이 보류 중이거나 실행 중인 경우 나중에 `squeue` 다시 실행해 보십시오.

# AWS PCS에서 단일 노드 작업 실행
<a name="getting-started_run-job"></a>

 Slurm을 사용하여 작업을 실행하려면 작업 요구 사항을 지정하는 제출 스크립트를 준비하고 `sbatch` 명령을 사용하여 대기열에 제출합니다. 일반적으로 공유 디렉터리에서 수행되므로 로그인 및 컴퓨팅 노드에는 파일에 액세스할 수 있는 공통 공간이 있습니다.

 클러스터의 로그인 노드에 연결하고 쉘 프롬프트에서 다음 명령을 실행합니다.
+ 기본 사용자가 됩니다. 공유 디렉터리로 변경합니다.

  ```
  sudo su - ec2-user
  cd /shared
  ```
+ 다음 명령을 사용하여 예제 작업 스크립트를 생성합니다.

  ```
  cat << EOF > job.sh
  #!/bin/bash
  #SBATCH -J single
  #SBATCH -o single.%j.out
  #SBATCH -e single.%j.err
  
  echo "This is job \${SLURM_JOB_NAME} [\${SLURM_JOB_ID}] running on \${SLURMD_NODENAME}, submitted from \${SLURM_SUBMIT_HOST}" && sleep 60 && echo "Job complete"
  EOF
  ```
+ Slurm 스케줄러에 작업 스크립트를 제출합니다.

  ```
  sbatch -p demo job.sh
  ```
+  작업이 제출되면 작업 ID가 숫자로 반환됩니다. 해당 ID를 사용하여 작업 상태를 확인합니다. 다음 명령의 *job-id*를에서 반환된 번호로 바꿉니다`sbatch`.

  ```
  squeue --job job-id
  ```  
**Example**  

  ```
  squeue --job 1
  ```

   `squeue` 명령은 다음과 유사한 출력을 반환합니다.

  ```
  JOBID PARTITION NAME USER     ST TIME NODES NODELIST(REASON)
  1     demo      test ec2-user CF 0:47 1     compute-1
  ```
+  `R` (실행 중) 상태에 도달할 때까지 작업 상태를 계속 확인합니다. 가 아무것도 반환`squeue`하지 않으면 작업이 완료됩니다.
+  `/shared` 디렉터리의 내용을 검사합니다.

  ```
  ls -alth /shared
  ```

  명령 출력은 다음과 유사합니다.

  ```
  -rw-rw-r- 1 ec2-user ec2-user 107 Mar 19 18:33 single.1.out
  -rw-rw-r- 1 ec2-user ec2-user 0 Mar 19 18:32 single.1.err
  -rw-rw-r- 1 ec2-user ec2-user 381 Mar 19 18:29 job.sh
  ```

   `single.1.out` 및 라는 파일이 클러스터의 컴퓨팅 노드 중 하나에서 작성`single.1.err`되었습니다. 작업은 공유 디렉터리(`/shared`)에서 실행되었으므로 로그인 노드에서도 사용할 수 있습니다. 따라서이 클러스터에 대해 FSx for Lustre 파일 시스템을 구성했습니다.
+  `single.1.out` 파일의 내용을 검사합니다.

  ```
  cat /shared/single.1.out
  ```

   출력은 다음과 유사합니다.

  ```
  This is job test [1] running on compute-1, submitted from ip-10-3-13-181
  Job complete
  ```

# AWS PCS에서 Slurm을 사용하여 다중 노드 MPI 작업 실행
<a name="getting-started_run-mpi-job"></a>

 이 지침은 Slurm을 사용하여 AWS PCS에서 MPI(메시지 전달 인터페이스) 작업을 실행하는 방법을 보여줍니다.

로그인 노드의 셸 프롬프트에서 다음 명령을 실행합니다.
+  기본 사용자가 됩니다. 홈 디렉터리로 변경합니다.

  ```
  sudo su - ec2-user
  cd ~/
  ```
+  C 프로그래밍 언어로 소스 코드를 생성합니다.

  ```
  cat > hello.c << EOF
  // * mpi-hello-world - https://www.mpitutorial.com
  // Released under MIT License
  // 
  // Copyright (c) 2014 MPI Tutorial.
  //
  // Permission is hereby granted, free of charge, to any person obtaining a copy
  // of this software and associated documentation files (the "Software"), to 
  // deal in the Software without restriction, including without limitation the 
  // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 
  // sell copies of the Software, and to permit persons to whom the Software is 
  // furnished to do so, subject to the following conditions:
  // The above copyright notice and this permission notice shall be included in 
  // all copies or substantial portions of the Software.
  //
  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
  // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
  // DEALINGS IN THE SOFTWARE.
  
  #include <mpi.h>
  #include <stdio.h>
  #include <stddef.h>
  
  int main(int argc, char** argv) {
    // Initialize the MPI environment. The two arguments to MPI Init are not
    // currently used by MPI implementations, but are there in case future
    // implementations might need the arguments.
    MPI_Init(NULL, NULL);
  
    // Get the number of processes
    int world_size;
    MPI_Comm_size(MPI_COMM_WORLD, &world_size);
  
    // Get the rank of the process
    int world_rank;
    MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
  
    // Get the name of the processor
    char processor_name[MPI_MAX_PROCESSOR_NAME];
    int name_len;
    MPI_Get_processor_name(processor_name, &name_len);
  
    // Print off a hello world message
    printf("Hello world from processor %s, rank %d out of %d processors\n",
           processor_name, world_rank, world_size);
  
    // Finalize the MPI environment. No more MPI calls can be made after this
    MPI_Finalize();
  }
  EOF
  ```
+ OpenMPI 모듈을 로드합니다.

  ```
  module load openmpi
  ```
+ C 프로그램을 컴파일합니다.

  ```
  mpicc -o hello hello.c
  ```
+ Slurm 작업 제출 스크립트를 작성합니다.

  ```
  cat > hello.sh << EOF
  #!/bin/bash
  #SBATCH -J multi
  #SBATCH -o multi.out
  #SBATCH -e multi.err
  #SBATCH --exclusive
  #SBATCH --nodes=4
  #SBATCH --ntasks-per-node=1
  
  srun $HOME/hello
  EOF
  ```
+ 공유 디렉터리로 변경합니다.

  ```
  cd /shared
  ```
+ 작업 스크립트를 제출합니다.

  ```
  sbatch -p demo ~/hello.sh
  ```
+ 작업이 완료될 때까지 `squeue`를 사용하여 모니터링합니다.
+ 의 내용을 확인합니다`multi.out`.

  ```
  cat multi.out
  ```

  출력 결과는 다음과 비슷합니다. 각 순위에는 다른 노드에서 실행되었으므로 고유한 IP 주소가 있습니다.

  ```
  Hello world from processor ip-10-3-133-204, rank 0 out of 4 processors
  Hello world from processor ip-10-3-128-219, rank 2 out of 4 processors
  Hello world from processor ip-10-3-141-26, rank 3 out of 4 processors
  Hello world from processor ip-10-3-143-52, rank 1 out of 4 processor
  ```

# AWS PCS에 대한 AWS 리소스 삭제
<a name="getting-started_delete"></a>

 이 자습서를 위해 생성한 클러스터 및 노드 그룹을 완료한 후에는 생성한 리소스를 삭제해야 합니다.

**중요**  
에서 실행 중인 모든 리소스에 대한 청구 요금이 발생합니다. AWS 계정

**이 자습서에서 생성한 AWS PCS 리소스를 삭제하려면**
+ [AWS PCS 콘솔](https://console.aws.amazon.com/pcs/home#/clusters)을 엽니다.
+ **get-started**라는 클러스터로 이동합니다.
+ **대기열** 섹션으로 이동합니다.
+ **데모**라는 대기열을 선택합니다.
+ **Delete**(삭제)를 선택합니다.
**중요**  
계속하기 전에 대기열이 삭제될 때까지 기다립니다.
+ **컴퓨팅 노드 그룹** 섹션으로 이동합니다.
+ compute**-1이라는 컴퓨팅** 노드 그룹을 선택합니다.
+ **Delete**(삭제)를 선택합니다.
+ **로그인**이라는 컴퓨팅 노드 그룹을 선택합니다.
+ **Delete**(삭제)를 선택합니다.
**중요**  
계속하기 전에 두 컴퓨팅 노드 그룹이 모두 삭제될 때까지 기다립니다.
+ **시작하기**에 대한 클러스터 세부 정보 페이지에서 **삭제**를 선택합니다.
**중요**  
클러스터가 삭제될 때까지 기다렸다가 후속 단계를 진행합니다.

**이 자습서에서 생성한 다른 AWS 리소스를 삭제하려면**
+ [IAM 콘솔](https://console.aws.amazon.com/iam)을 엽니다.
  + **역할**을 선택합니다.
  + **AWSPCS-getstarted-role**이라는 역할을 선택한 다음 **삭제**를 선택합니다.
  + 역할이 삭제된 후 **정책을** 선택합니다.
  + **AWSPCS-getstarted-policy**라는 정책을 선택한 다음 **삭제**를 선택합니다.
+ [CloudFormation 콘솔](https://console.aws.amazon.com/cloudformation)을 엽니다.
  + **getstarted-lt**라는 스택을 선택합니다.
  + **Delete**(삭제)를 선택합니다.
**중요**  
계속하기 전에 스택이 삭제될 때까지 기다립니다.
+ [Amazon EFS 콘솔](https://console.aws.amazon.com/efs)을 엽니다.
  + **파일 시스템**을 선택합니다.
  + **getstarted-efs**라는 파일 시스템을 선택합니다.
  + **Delete**(삭제)를 선택합니다.
**중요**  
계속하기 전에 파일 시스템이 삭제될 때까지 기다립니다.
+ [Amazon FSx 콘솔](https://console.aws.amazon.com/fsx)을 엽니다.
  + **파일 시스템**을 선택합니다.
  + **getstarted-fsx**라는 파일 시스템을 선택합니다.
  + **Delete**(삭제)를 선택합니다.
**중요**  
계속하기 전에 파일 시스템이 삭제될 때까지 기다립니다.
+ [CloudFormation 콘솔](https://console.aws.amazon.com/cloudformation)을 엽니다.
  + **getstarted-sg**라는 스택을 선택합니다.
  + **Delete**(삭제)를 선택합니다.
+ [CloudFormation 콘솔](https://console.aws.amazon.com/cloudformation)을 엽니다.
  + **hpc-networking**이라는 스택을 선택합니다.
  + **Delete**(삭제)를 선택합니다.