

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

# 자습서:를 사용하여 EFS 파일 시스템을 생성하고 EC2 인스턴스에 탑재 AWS CLI
<a name="wt1-getting-started"></a>

암호화된 EFS 파일 시스템을 생성하고 VPC의 EC2 인스턴스에 탑재한 다음 AWS CLI를 사용하여 설정을 테스트합니다.

**참고**  
[시작하기](getting-started.md) 자습서에서는 콘솔을 사용하여 Amazon EC2 및 EFS 리소스를 생성합니다. 이 자습서에서는 AWS CLI 를 사용하여 동일한 작업을 수행합니다. 주로 Amazon EFS API에 익숙해집니다.

이 자습서에서는 계정에 다음 AWS 리소스를 생성합니다.
+ Amazon EC2 리소스:
  + 보안 그룹 2개(EC2 인스턴스 및 EFS 파일 시스템용)

    적절한 인바운드/아웃바운드 액세스를 승인하는 규칙을 이러한 보안 그룹에 추가합니다. 이렇게 하면 표준 NFSv4.1 TCP 포트를 사용하여 탑재 대상을 통해 EC2 인스턴스를 파일 시스템에 연결할 수 있습니다.
  + VPC의 EC2 인스턴스 
+ Amazon EFS 리소스:
  + 파일 시스템.
  + 파일 시스템의 탑재 대상입니다.

    EC2 인스턴스에 파일 시스템을 탑재하려면 VPC에서 탑재 대상을 만들어야 합니다. VPC의 각 가용 영역에 탑재 대상을 하나씩 만들 수 있습니다. 자세한 내용은 [Amazon EFS 작동 방식](how-it-works.md) 단원을 참조하십시오.

그런 다음 EC2 인스턴스에서 파일 시스템을 테스트합니다. 자습서의 마지막에 나오는 정리 단계에서는 이러한 리소스를 제거하는 방법을 설명합니다.

이 자습서에서는 이러한 모든 리소스를 미국 서부(오리건) 리전(`us-west-2`)에 생성합니다. 어떤 방법을 사용 AWS 리전 하든 일관되게 사용해야 합니다. VPC, EC2 리소스, EFS 리소스 등 모든 리소스가 동일한 AWS 리전에 있어야 합니다.

**Topics**
+ [사전 조건](#wt1-prepare)
+ [설정 AWS CLI](#wt1-setup-awscli)
+ [1단계: EC2 리소스 생성](#wt1-create-ec2-resources)
+ [2단계: EFS 리소스 생성](#wt1-create-efs-resources)
+ [3단계: EC2 인스턴스에 파일 시스템 탑재 및 테스트](#wt1-test)
+ [4단계: 정리](#wt1-clean-up)

## 사전 조건
<a name="wt1-prepare"></a>
+ 의 루트 자격 증명을 사용하여 콘솔에 로그인하고 시작하기 연습을 시도 AWS 계정 할 수 있습니다. 그러나 AWS Identity and Access Management (IAM)에서는의 루트 자격 증명을 사용하지 않을 것을 권장합니다 AWS 계정. 대신 계정에서 관리자 사용자를 만들어 해당 보안 인증을 사용하여 계정에서 리소스를 관리합니다. 자세한 내용은 *AWS IAM Identity Center 사용 설명서*의 [ IAM Identity Center 사용자에 대한 AWS 계정 액세스 할당](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-assign-account-access-user.html)을 참조하세요.
+ 자신의 계정에서 만든 기본 VPC 또는 사용자 지정 VPC를 사용할 수 있습니다. 이 연습에서는 기본 VPC 구성을 사용합니다. 단, 사용자 지정 VPC를 사용하는 경우 다음을 확인하세요.
  + DNS 호스트 이름이 사용됩니다. 자세한 내용을 알아보려면 Amazon VPC 사용 설명서**의 [VPC의 DNS 속성](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)을 참조하세요.
  + 인터넷 게이트웨이가 VPC에 연결되어 있습니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [인터넷 게이트웨이를 사용한 인터넷 연결](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)을 참조하세요.
  + VPC 서브넷이 VPC 서브넷에서 시작된 인스턴스의 퍼블릭 IP 주소를 요청하도록 구성되어 있습니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [VPC 및 서브넷의 IP 주소 지정](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html)을 참조하세요.
  + VPC 라우팅 테이블에 모든 인터넷 바인딩된 트래픽을 인터넷 게이트웨이로 보내는 규칙이 포함되어 있습니다.
+ 를 설정하고 관리자 프로필을 AWS CLI 추가해야 합니다.

## 설정 AWS CLI
<a name="wt1-setup-awscli"></a>

다음 지침에 따라 AWS CLI 및 사용자 프로필을 설정합니다.

**를 설정하려면 AWS CLI**

1.  AWS CLI를 다운로드하고 구성합니다. 지침은 *AWS Command Line Interface 사용 설명서*의 [AWS CLI시작하기](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)를 참조하세요.

1. 프로필을 설정합니다.

   사용자 자격 증명을 AWS CLI `config` 파일에 저장합니다. 이 자습서의 예제 CLI 명령은 adminuser 프로필을 지정합니다. `config` 파일에 adminuser 프로필을 생성합니다. 또 다음과 같이 `config` 파일에 관리자 사용자 프로필을 기본값으로 설정할 수도 있습니다.

   ```
   [profile adminuser]
   aws_access_key_id = admin user access key ID
   aws_secret_access_key = admin user secret access key
   region = us-west-2
   
   [default]
   aws_access_key_id = admin user access key ID
   aws_secret_access_key = admin user secret access key
   region = us-west-2
   ```

   앞의 프로필은 기본값도 설정합니다 AWS 리전. CLI 명령에서 리전을 지정하지 않으면 us-west-2 리전으로 간주됩니다.

1. 명령 프롬프트에 다음 명령을 입력하여 설정을 확인합니다. 이들 명령은 명시적으로 보안 인증을 제공하지 않으므로 기본 프로필의 자격 증명이 사용됩니다.
   + help 명령 사용해 보기

     또 `--profile` 파라미터를 사용하여 명시적으로 사용자 프로필을 지정할 수 있습니다.

     ```
     aws help
     ```

     ```
     aws help \
     --profile adminuser
     ```

## 1단계: EC2 리소스 생성
<a name="wt1-create-ec2-resources"></a>

이 단계에서는 다음 작업을 수행합니다.
+ 보안 그룹 2개를 만듭니다.
+ 추가 액세스를 승인하는 규칙을 보안 그룹에 추가합니다.
+ EC2 인스턴스를 시작합니다. 다음 단계에서는 이 인스턴스에 EFS 파일 시스템을 생성하여 탑재합니다.

### 1.1단계: 보안 그룹 2개 만들기
<a name="wt1-create-sg"></a>

이 단원에서는 EC2 인스턴스 및 EFS 탑재 대상의 VPC에 보안 그룹을 생성합니다. 이 자습서의 후반부에서는 이러한 보안 그룹을 EC2 인스턴스 및 EFS 탑재 대상에 할당합니다. 보안 그룹에 대한 자세한 내용은 [Linux 인스턴스에 대한 Amazon EC2 보안 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html#vpc-security-groups)을 참조하세요.

**보안 그룹 생성**

1. `create-security-group` CLI 명령을 사용해 두 개의 보안 그룹을 생성합니다.

   1. EC2 인스턴스에 대한 보안 그룹(`efs-walkthrough1-ec2-sg`)을 생성하고 VPC ID를 제공합니다.

      ```
      $ aws ec2 create-security-group \
      --region us-west-2 \
      --group-name efs-walkthrough1-ec2-sg \
      --description "Amazon EFS walkthrough 1, SG for EC2 instance" \
      --vpc-id vpc-id-in-us-west-2 \
      --profile adminuser
      ```

      보안 그룹 ID를 기록합니다. 다음은 응답의 예입니다.

      ```
      {
          "GroupId": "sg-aexample"
      }
      ```

      다음 명령을 사용하여 VPC ID를 찾을 수 있습니다.

      ```
      $ aws  ec2 describe-vpcs    
      ```

      

   1. EFS 탑재 대상에 대한 보안 그룹(`efs-walkthrough1-mt-sg`)을 생성합니다. VPC ID를 제공해야 합니다.

      ```
      $ aws ec2 create-security-group \
      --region us-west-2 \
      --group-name efs-walkthrough1-mt-sg \
      --description "Amazon EFS walkthrough 1, SG for mount target" \
      --vpc-id vpc-id-in-us-west-2 \
      --profile adminuser
      ```

      보안 그룹 ID를 기록합니다. 다음은 응답의 예입니다.

      ```
      {
          "GroupId": "sg-aexample"
      }
      ```

1. 보안 그룹을 확인합니다.

   ```
   aws ec2 describe-security-groups \
   --group-ids list of security group IDs separated by space \
   --profile adminuser \
   --region us-west-2
   ```

   두 보안 그룹에는 모든 트래픽이 나가도록 허용하는 아웃바운드 규칙 하나를 갖고 있습니다.

   다음 섹션에서 다음 사항을 활성화하는 추가 액세스 권한을 승인합니다.
   + EC2 인스턴스에 연결되도록 활성화합니다.
   + EC2 인스턴스와 EFS 탑재 대상 간 트래픽을 활성화합니다(이 자습서의 후반부에서 이 보안 그룹을 연결함).

### 1.2단계: 인바운드/아웃바운드 액세스를 승인하는 규칙을 보안 그룹에 추가
<a name="wt1-update-sg"></a>

이 단계에서는 인바운드/아웃바운드 액세스를 승인하는 규칙을 보안 그룹에 추가합니다.

**규칙 추가**

1. 모든 호스트에서 SSH를 사용해 EC2 인스턴스에 연결할 수 있도록 EC2 인스턴스(`efs-walkthrough1-ec2-sg`)의 보안 그룹에 대해 수신 Secure Shell(SSH) 연결을 승인합니다.

   ```
   $ aws ec2 authorize-security-group-ingress \
   --group-id id of the security group created for EC2 instance \
   --protocol tcp \
   --port 22 \
   --cidr 0.0.0.0/0 \
   --profile adminuser \
   --region us-west-2
   ```

   보안 그룹에 추가한 인바운드 및 아웃바운드 규칙이 있는지 확인합니다.

   ```
   aws ec2 describe-security-groups \
   --region us-west-2 \
   --profile adminuser \
   --group-id security-group-id
   ```

1. EFS 탑재 대상(`efs-walkthrough1-mt-sg`)의 보안 그룹에 대해 인바운드 액세스 권한을 승인합니다.

   명령 프롬프트에서 관리자 프로파일을 사용하여 다음 AWS CLI `authorize-security-group-ingress` 명령을 실행하여 인바운드 규칙을 추가합니다.

   ```
   $ aws ec2 authorize-security-group-ingress \
   --group-id ID of the security group created for Amazon EFS mount target \
   --protocol tcp \
   --port 2049 \
   --source-group ID of the security group created for EC2 instance \
   --profile adminuser \
   --region us-west-2
   ```

1. 이제 두 보안 그룹이 인바운드 액세스를 승인하는지 확인합니다.

   ```
   aws ec2 describe-security-groups \
   --group-names efs-walkthrough1-ec2-sg   efs-walkthrough1-mt-sg \
   --profile adminuser \
   --region us-west-2
   ```

### 1.3단계: EC2 인스턴스 시작
<a name="wt1-create-ec2-instance"></a>

이 단계에서는 EC2 인스턴스를 시작합니다.

**EC2 인스턴스 시작**

1. EC2 인스턴스 시작 시 제공해야 하는 다음 정보를 수집합니다.
   + 키 페어 이름. 키 페어 생성 지침은 *Amazon EC2 사용 설명서*의 [Amazon EC2 인스턴스에 대한 키 페어 생성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html)을 참조하세요.
   + 시작하려는 Amazon Machine Image(AMI)의 ID입니다.

     EC2 인스턴스를 시작하는 데 사용하는 AWS CLI 명령에는 파라미터로 배포하려는 Amazon Machine Image(AMI)의 ID가 필요합니다. 이 연습에서는 Amazon Linux HVM AMI를 사용합니다.
**참고**  
대부분의 범용 Linux 기반 AMI를 사용할 수 있습니다. 다른 Linux AMI를 사용하는 경우, 배포의 패키지 관리자를 사용하여 인스턴스에 NFS 클라이언트를 설치해야 합니다. 또한 필요할 때 소프트웨어 패키지를 추가해야 할 수도 있습니다.

     Amazon Linux HVM AMI의 경우 [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/)에서 최신 ID를 찾을 수 있습니다. 다음과 같이 Amazon Linux AMI ID 테이블에서 ID 값을 선택합니다.
     + **US West Oregon(미국 서부 오레곤)** 리전을 선택합니다. 이 연습은 미국 서부(오레곤) 리전(us-west-2)에 모든 리소스를 생성했다고 가정합니다.
     + **EBS 지원 HVM 64비트** 유형을 선택합니다(CLI 명령에서 인스턴스 스토어를 지원하지 않는 `t2.micro` 인스턴스 유형을 지정하기 때문).

     
   + EC2 인스턴스에 생성한 보안 그룹 ID.
   + AWS 리전. 이 연습에서는 us-west-2 리전을 사용합니다.
   + 인스턴스를 시작하려는 VPC 서브넷 ID. `describe-subnets` 명령을 사용해 서브넷 목록을 가져올 수 있습니다.

     ```
     $ aws ec2 describe-subnets \
     --region us-west-2 \
     --filters "Name=vpc-id,Values=vpc-id" \
     --profile adminuser
     ```

     서브넷 ID를 선택한 후 `describe-subnets` 결과의 다음 값을 기록합니다.
     + **서브넷 ID** – 탑재 대상 생성 때 이 값이 필요합니다. 이 연습에서는 EC2 인스턴스를 시작한 동일한 서브넷에 탑재 대상을 생성합니다.
     + **서브넷 가용 영역** – 이 값은 EC2 인스턴스에 파일 시스템을 탑재할 때 사용하는 탑재 대상의 DNS 이름을 구성하기 위해 필요합니다.

1. 다음 AWS CLI `run-instances` 명령을 실행하여 EC2 인스턴스를 시작합니다.

   ```
   $ aws ec2 run-instances \
   --image-id AMI ID \
   --count 1 \
   --instance-type t2.micro \
   --associate-public-ip-address \
   --key-name key-pair-name \
   --security-group-ids ID of the security group created for EC2 instance \
   --subnet-id VPC subnet ID \
   --region us-west-2 \
   --profile adminuser
   ```

1. `run-instances` 명령이 반환한 인스턴스 ID를 기록합니다.

1. 생성한 EC2 인스턴스에 EC2 인스턴스 연결과 파일 시스템 탑재에 사용할 퍼블릭 DNS 이름이 있어야 합니다. 퍼블릭 DNS 이름은 다음 형식을 갖고 있습니다.

   ```
   ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
   ```

   다음 CLI 명령을 실행하고 퍼블릭 DNS 이름을 기록합니다.

   ```
   aws ec2 describe-instances \
   --instance-ids EC2 instance ID \
   --region us-west-2 \ 
   --profile adminuser
   ```

   퍼블릭 DNS 이름을 찾지 못하는 경우 EC2 인스턴스를 시작한 VPC 구성을 확인합니다. 자세한 내용은 [사전 조건](#wt1-prepare) 단원을 참조하십시오.

1. (선택 사항)생성한 EC2 인스턴스에 이름을 할당합니다. 이렇게 하려면 키 이름과 인스턴스에 할당하려는 이름으로 설정된 값으로 태그를 추가합니다. 다음 AWS CLI `create-tags` 명령을 실행하여이 작업을 수행합니다.

   ```
   $  aws ec2 create-tags \
   --resources  EC2-instance-ID \
   --tags Key=Name,Value=Provide-instance-name  \
   --region us-west-2 \
   --profile adminuser
   ```

## 2단계: EFS 리소스 생성
<a name="wt1-create-efs-resources"></a>

이 단계에서는 다음 작업을 수행합니다.
+ 암호화된 EFS 파일 시스템 생성 
+ 수명 주기 관리를 활성화
+ EFS 인스턴스를 시작한 가용 영역에 탑재 대상 생성

### 2.1단계: EFS 파일 시스템 생성
<a name="wt1-create-file-system"></a>

이 단계에서는 EFS 파일 시스템을 생성합니다. `FileSystemId`를 적어 두고 다음 단계에서 파일 시스템의 탑재 대상을 생성할 때 사용합니다.

**파일 시스템을 만들려면**
+ 파일 시스템을 생성하고, 필요한 경우 `Name` 태그를 추가합니다.

  1. 명령 프롬프트에서 다음 AWS CLI `create-file-system` 명령을 실행합니다.

     ```
     $  aws efs create-file-system \
     --encrypted \
     --creation-token FileSystemForWalkthrough1 \
     --tags Key=Name,Value=SomeExampleNameValue \
     --region us-west-2 \
     --profile adminuser
     ```

     응답은 다음과 같습니다.

     ```
     {
         "OwnerId": "111122223333",
         "CreationToken": "FileSystemForWalkthrough1",
         "FileSystemId": "fs-c657c8bf",
         "CreationTime": 1548950706.0,
         "LifeCycleState": "creating",
         "NumberOfMountTargets": 0,
         "SizeInBytes": {
             "Value": 0,
             "ValueInIA": 0,
             "ValueInStandard": 0
         },
         "PerformanceMode": "generalPurpose",
         "Encrypted": true,
         "KmsKeyId": "arn:aws:kms:us-west-2:111122223333:a5c11222-7a99-43c8-9dcc-abcdef123456",
         "ThroughputMode": "bursting",
         "Tags": [
             {
                 "Key": "Name",
                 "Value": "SomeExampleNameValue"
             }
         ]
     }
     ```

  1. `FileSystemId` 값을 기록해 둡니다. 이 값은 [2.3 단계: 탑재 대상 만들기](#wt1-create-mount-target) 단원에서 이 파일 시스템에 대한 탑재 대상을 생성할 때 필요합니다.

### 2.2단계: 수명 주기 관리 활성화
<a name="wt1-lifecycle-management"></a>

이 단계에서는 EFS Infrequent Access(IA) 스토리지 클래스를 사용하기 위해 파일 시스템에서 수명 주기 관리를 활성화합니다. 자세한 내용은 [스토리지 수명 주기 관리](lifecycle-management-efs.md) 및 [EFS 스토리지 클래스](features.md#storage-classes) 섹션을 참조하세요.

**수명 주기 관리 활성화**
+ 명령 프롬프트에서 다음 AWS CLI `put-lifecycle-configuration` 명령을 실행합니다.

  ```
  $  aws efs put-lifecycle-configuration \
  --file-system-id fs-c657c8bf \
  --lifecycle-policies TransitionToIA=AFTER_30_DAYS \
  --region us-west-2 \
  --profile adminuser
  ```

  응답은 다음과 같습니다.

  ```
  {
    "LifecyclePolicies": [
      {
          "TransitionToIA": "AFTER_30_DAYS"
      }
    ]
  }
  ```

### 2.3 단계: 탑재 대상 만들기
<a name="wt1-create-mount-target"></a>

이 단계에서는 EC2 인스턴스에서 시작한 가용 영역에서 파일 시스템의 탑재 대상을 만듭니다.

1. 다음 정보가 있는지 확인합니다.
   + 탑재 대상을 생성하려는 파일 시스템의 ID(예: `fs-example`).
   + [1단계: EC2 리소스 생성](#wt1-create-ec2-resources)단계에서 EC2 인스턴스를 시작한 VPC 서브넷 ID.

     이 자습서에서는 EC2 인스턴스를 시작한 동일한 서브넷에 탑재 대상을 생성하기 때문에 서브넷 ID(예: `subnet-example`)가 필요합니다.
   + 이전 단계에서 탑재 대상에 대해 생성한 보안 그룹의 ID.

1. 명령 프롬프트에서 다음 AWS CLI `create-mount-target` 명령을 실행합니다.

   ```
   $ aws efs create-mount-target \
   --file-system-id file-system-id \
   --subnet-id  subnet-id \
   --security-group ID-of-the security-group-created-for-mount-target \
   --region us-west-2 \
   --profile adminuser
   ```

   응답은 다음과 같습니다.

   ```
   {
       "MountTargetId": "fsmt-example",
       "NetworkInterfaceId": "eni-example",
       "FileSystemId": "fs-example",
       "PerformanceMode" : "generalPurpose",
       "LifeCycleState": "available",
       "SubnetId": "fs-subnet-example",
       "OwnerId": "account-id",
       "IpAddress": "xxx.xx.xx.xxx"
   }
   ```

1. 또 `describe-mount-targets` 명령을 사용해 파일 시스템에 생성한 탑재 대상에 대한 설명을 가져올 수 있습니다.

   ```
   $ aws efs describe-mount-targets \
   --file-system-id file-system-id \
   --region us-west-2 \
   --profile adminuser
   ```

## 3단계: EC2 인스턴스에 파일 시스템 탑재 및 테스트
<a name="wt1-test"></a>

이 단계에서는 다음 작업을 수행합니다.
+ 필수 정보 수집
+ EC2 인스턴스에 NFS 클라이언트를 설치합니다.
+ EC2 인스턴스에 파일 시스템을 탑재하고 테스트합니다.

**Topics**
+ [3.1단계: 정보 수집](#wt1-connect-test-gather-info)
+ [3.2단계: EC2 인스턴스에 NFS 클라이언트 설치](#wt1-connect-install-nfs-client)
+ [3.3단계: EC2 인스턴스에 파일 시스템 탑재 및 테스트](#wt1-mount-fs-and-test)

### 3.1단계: 정보 수집
<a name="wt1-connect-test-gather-info"></a>

이 단원의 단계를 수행하면서 다음 정보가 있는지 확인합니다.
+ 다음 형식으로 된 EC2 인스턴스의 퍼블릭 DNS 이름: 

  ```
  ec2-xx-xxx-xxx-xx.aws-region.compute.amazonaws.com 
  ```
+ 파일 시스템의 DNS 이름. 다음 일반 형식을 사용하여 DNS 이름을 구성할 수 있습니다.

  ```
  file-system-id.efs.aws-region.amazonaws.com
  ```

  탑재 대상을 사용하여 파일 시스템을 탑재한 EC2 인스턴스에서는 탑재 대상의 IP 주소에 대해 파일 시스템의 DNS 이름을 확인합니다.

**참고**  
Amazon EFS에서는 EC2 인스턴스에 퍼블릭 IP 주소 또는 퍼블릭 DNS 이름이 없어도 됩니다. 앞에 나열된 사항은 이 연습 예제에서 SSH를 사용하여 VPC 외부에서 인스턴스에 연결할 수 있도록 하기 위한 요구 사항입니다.

### 3.2단계: EC2 인스턴스에 NFS 클라이언트 설치
<a name="wt1-connect-install-nfs-client"></a>

Windows에서 또는 Linux, macOS X나 기타 Unix 변형을 실행하는 컴퓨터에서 EC2 인스턴스에 연결할 수 있습니다.

**NFS 클라이언트 설치**

1. EC2 인스턴스에 연결합니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [EC2 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)을 참조하세요.

1. SSH 세션을 사용해 EC2 인스턴스에서 다음 명령을 실행합니다.

   1. (선택 사항)업데이트를 가져오고 재부팅합니다.

      ```
      $  sudo yum -y update  
      $  sudo reboot
      ```

      재부팅 후 EC2 인스턴스에 다시 연결합니다.

   1. NFS 클라이언트를 설치합니다.

      ```
      $ sudo yum -y install nfs-utils
      ```
**참고**  
EC2 인스턴스를 시작할 때 **Amazon Linux AMI 2016.03.0** Amazon Linux AMI를 선택하면 기본적으로 `nfs-utils`가 AMI에 이미 포함되어 있으므로 설치할 필요가 없습니다.

### 3.3단계: EC2 인스턴스에 파일 시스템 탑재 및 테스트
<a name="wt1-mount-fs-and-test"></a>

이제 EC2 인스턴스에 파일 시스템을 탑재합니다.

1. 디렉터리("efs-mount-point")를 만듭니다.

   ```
   $ mkdir ~/efs-mount-point 
   ```

1. EFS 파일 시스템을 탑재합니다.

   ```
   $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-DNS:/   ~/efs-mount-point  
   ```

   EC2 인스턴스는 IP 주소에 대해 탑재 대상의 DNS 이름을 확인할 수 있습니다. 직접 탑재 대상의 IP 주소를 지정할 수도 있습니다.

   ```
   $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/  ~/efs-mount-point
   ```

1. EC2 인스턴스에 EFS 파일 시스템을 탑재했으므로 이제 파일을 생성할 수 있습니다.

   1. 디렉터리를 변경합니다.

      ```
      $ cd ~/efs-mount-point  
      ```

   1. 디렉터리 내용을 나열합니다.

      ```
      $ ls -al
      ```

      비어 있어야 합니다.

      ```
      drwxr-xr-x 2 root     root     4096 Dec 29 22:33 .
      drwx------ 4 ec2-user ec2-user 4096 Dec 29 22:54 ..
      ```

      

   1. 생성 시 파일 시스템의 루트 디렉터리는 루트 사용자가 소유하며 루트 사용자의 쓰기가 가능합니다. 따라서 파일을 추가할 수 있도록 권한을 변경해야 합니다.

      ```
      $ sudo chmod go+rw .
      ```

      `ls -al` 명령을 사용하면 권한이 변경된 것을 확인할 수 있습니다.

      ```
      drwxrwxrwx 2 root     root     4096 Dec 29 22:33 .
      drwx------ 4 ec2-user ec2-user 4096 Dec 29 22:54 ..
      ```

   1. 텍스트 파일을 생성합니다.

      ```
      $ touch test-file.txt 
      ```

   1. 디렉터리 내용을 나열합니다.

      ```
      $ ls -l
      ```

이제 VPC의 EC2 인스턴스에 EFS 파일 시스템을 성공적으로 생성하고 탑재했습니다.

탑재한 파일 시스템은 재부팅하면 탑재가 해제됩니다. 디렉터리를 자동으로 다시 탑재하려면 `fstab` 파일을 사용합니다. Auto Scaling 그룹을 사용하여 EC2 인스턴스를 시작하는 경우 시작 구성에서 스크립트를 설정할 수도 있습니다.

## 4단계: 정리
<a name="wt1-clean-up"></a>

만든 리소스가 더 이상 필요 없는 경우 제거해야 합니다. CLI를 사용하여 제거할 수 있습니다.
+ EC2 리소스(EC2 인스턴스 및 두 보안 그룹)를 제거합니다. 탑재 대상을 삭제하면 Amazon EFS는 네트워크 인터페이스를 삭제합니다.
+ EFS 리소스(파일 시스템, 탑재 대상)를 제거합니다.

**이 연습에서 생성된 AWS 리소스를 삭제하려면**

1. 이 자습서를 위해 생성한 EC2 인스턴스를 종료합니다.

   ```
   $ aws ec2 terminate-instances \
   --instance-ids instance-id \
   --profile adminuser
   ```

   콘솔을 사용해 EC2 리소스 또한 삭제할 수 있습니다. 지침은 [인스턴스 종료](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console) 섹션을 참조하세요.

1. 탑재 대상을 삭제합니다.

   파일 시스템을 삭제하기 전에 파일 시스템에 생성한 탑재 대상을 삭제해야 합니다. `describe-mount-targets` CLI 명령을 사용해 탑재 대상 목록을 가져올 수 있습니다.

   ```
   $  aws efs describe-mount-targets \
   --file-system-id file-system-ID \
   --profile adminuser \
   --region aws-region
   ```

   그런 다음 `delete-mount-target` CLI 명령을 사용해 탑재 대상을 삭제합니다.

   ```
   $ aws efs delete-mount-target \
   --mount-target-id ID-of-mount-target-to-delete \
   --profile adminuser \
   --region aws-region
   ```

1. (선택 사항)생성한 두 개 보안 그룹을 삭제합니다. 보안 그룹 생성은 무료입니다.

   먼저 탑재 대상의 보안 그룹을 생성한 후 EC2 인스턴스의 보안 그룹을 삭제해야 합니다. 탑재 대상의 보안 그룹에 EC2 보안 그룹을 참조하는 규칙이 있기 때문입니다. 따라서 EC2 인스턴스의 보안 그룹을 먼저 삭제할 수 없습니다.

   자세한 내용은 *Amazon EC2 사용 설명서*의 [보안 그룹 삭제](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-sg.html#deleting-a-security-group)를 참조하세요.

1. `delete-file-system` CLI 명령을 사용해 파일 시스템을 삭제합니다. `describe-file-systems` CLI 명령을 사용해 파일 시스템 목록을 가져올 수 있습니다. 이 응답에서 파일 시스템 ID를 얻을 수 있습니다.

   ```
   aws efs describe-file-systems \
   --profile adminuser \
   --region aws-region
   ```

   파일 시스템 ID를 제공해 파일 시스템을 삭제합니다.

   ```
   $ aws efs delete-file-system \
   --file-system-id ID-of-file-system-to-delete \
   --region aws-region \
   --profile adminuser
   ```