

# Amazon EC2 AMI 도구 설정
<a name="set-up-ami-tools"></a>

AMI 도구를 사용하여 Amazon S3 지원 Linux AMI를 생성하고 관리할 수 있습니다. 도구를 사용하려면 Linux 인스턴스에 이 도구를 설치해야 합니다. AMI 도구는 RPM으로도 설치 가능하고 RPM을 지원하지 않는 Linux 배포판의 경우 .zip 파일로도 설치 가능합니다.

**RPM을 사용하여 AMI 도구를 설치하려면**

1. yum과 같은 Linux 배포용 패키지 관리자를 사용하여 Ruby를 설치합니다. 예:

   ```
   [ec2-user ~]$ sudo yum install -y ruby
   ```

1. wget 또는 curl과 같은 도구를 사용하여 RPM 파일을 다운로드합니다. 예:

   ```
   [ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm
   ```

1. 다음 명령을 사용하여 RPM 파일의 서명이 활성화되었는지 확인합니다.

   ```
   [ec2-user ~]$ rpm -K ec2-ami-tools.noarch.rpm
   ```

   위의 명령은 파일의 SHA1 및 MD5 해시가 `OK.`임을 나타냅니다. 명령에서 해시가 `NOT OK`임을 나타내면 다음 명령을 사용하여 파일의 헤더 SHA1 및 MD5 해시를 표시합니다.

   ```
   [ec2-user ~]$ rpm -Kv ec2-ami-tools.noarch.rpm
   ```

   그런 다음 파일의 헤더 SHA1 및 MD5 해시를 다음 확인된 AMI 도구 해시와 비교하여 파일의 진위 여부를 확인합니다.
   + 헤더 SHA1: a1f662d6f25f69871104e6a62187fa4df508f880
   + MD5: 9faff05258064e2f7909b66142de6782

   파일의 헤더 SHA1 및 MD5 해시가 확인된 AMI 도구 해시와 일치하면 다음 단계를 계속 진행합니다.

1. 다음 명령을 사용하여 RPM을 설치합니다:

   ```
   [ec2-user ~]$ sudo yum install ec2-ami-tools.noarch.rpm
   ```

1. [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version) 명령을 사용하여 AMI 도구 설치를 확인합니다.

   ```
   [ec2-user ~]$ ec2-ami-tools-version
   ```
**참고**  
"cannot load such file -- ec2/amitools/version (LoadError)"과 같은 로드 오류가 발생하면 다음 단계를 수행하여 AMI 도구 설치 위치를 `RUBYLIB` 경로에 추가합니다.

1. (선택 사항) 이전 단계에서 오류가 발생하면 AMI 도구 설치 위치를 `RUBYLIB` 경로에 추가합니다.

   1. 다음 명령을 실행하여 추가할 경로를 확인합니다.

      ```
      [ec2-user ~]$ rpm -qil ec2-ami-tools | grep ec2/amitools/version
      /usr/lib/ruby/site_ruby/ec2/amitools/version.rb
      /usr/lib64/ruby/site_ruby/ec2/amitools/version.rb
      ```

      위의 예시를 보면 이전 로드 오류에서 없다고 표시된 파일이 `/usr/lib/ruby/site_ruby` 및 `/usr/lib64/ruby/site_ruby`에 위치하고 있습니다.

   1. 이전 단계의 위치를 `RUBYLIB` 경로에 추가합니다.

      ```
      [ec2-user ~]$ export RUBYLIB=$RUBYLIB:{{/usr/lib/ruby/site_ruby}}:{{/usr/lib64/ruby/site_ruby}}
      ```

   1. [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version) 명령을 사용하여 AMI 도구 설치를 확인합니다.

      ```
      [ec2-user ~]$ ec2-ami-tools-version
      ```

**.zip 파일을 사용하여 AMI 도구를 설치하려면**

1. **apt-get**과 같은 Linux 배포용 패키지 관리자를 사용하여 Ruby를 설치하고 압축을 풉니다. 예:

   ```
   [ec2-user ~]$ sudo apt-get update -y && sudo apt-get install -y ruby unzip
   ```

1. wget 또는 curl과 같은 도구를 사용하여 .zip 파일을 다운로드합니다. 예:

   ```
   [ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip
   ```

1. 파일의 압축을 적합한 설치 디렉터리(예: `/usr/local/ec2`)에 풉니다.

   ```
   [ec2-user ~]$ sudo mkdir -p /usr/local/ec2
   $ sudo unzip ec2-ami-tools.zip -d /usr/local/ec2
   ```

   .zip 파일에는 ec2-ami-tools-{{x}}.{{x}}.{{x}} 폴더가 있습니다. {{x}}.{{x}}.{{x}}는 도구의 버전 번호입니다(예: `ec2-ami-tools-1.5.7`).

1. `EC2_AMITOOL_HOME` 환경 변수를 도구의 설치 디렉터리로 설정합니다. 예:

   ```
   [ec2-user ~]$ export EC2_AMITOOL_HOME=/usr/local/ec2/ec2-ami-tools-{{x}}.{{x}}.{{x}}
   ```

1. 도구를 `PATH` 환경 변수에 추가합니다. 예:

   ```
   [ec2-user ~]$ export PATH=$EC2_AMITOOL_HOME/bin:$PATH
   ```

1. [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version) 명령을 사용하여 AMI 도구 설치를 확인할 수 있습니다.

   ```
   [ec2-user ~]$ ec2-ami-tools-version
   ```

## 서명 인증서 관리
<a name="ami-tools-managing-certs"></a>

AMI 도구의 특정 명령에는 X.509 인증서라고도 하는 서명 인증서가 필요합니다. 인증서를 생성한 다음 AWS에 업로드해야 합니다. 예를 들어 OpenSSL과 같은 타사 도구를 사용하여 인증서를 생성할 수 있습니다.

**서명 인증서를 만들려면**

1. OpenSSL을 설치 및 구성합니다.

1. `openssl genrsa` 명령을 사용하여 프라이빗 키를 생성하고 `.pem` 파일에 출력을 저장합니다. 2048 또는 4096비트 RSA 키를 생성하는 것이 좋습니다.

   ```
   openssl genrsa 2048 > {{private-key.pem}}
   ```

1. `openssl req` 명령을 사용하여 인증서를 만듭니다.

   ```
   openssl req -new -x509 -nodes -sha256 -days 365 -key {{private-key.pem}} -outform PEM -out {{certificate.pem}}
   ```

AWS에 인증서를 업로드하려면 [upload-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/upload-signing-certificate.html) 명령을 사용합니다.

```
aws iam upload-signing-certificate --user-name {{user-name}} --certificate-body file://{{path/to/certificate}}.pem
```

사용자에게 적용되는 인증서를 나열하려면 [list-signing-certificates](https://docs.aws.amazon.com/cli/latest/reference/iam/list-signing-certificates.html) 명령을 사용하십시오.

```
aws iam list-signing-certificates --user-name {{user-name}}
```

사용자의 서명 인증서를 비활성화하거나 다시 활성화하려면 [update-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/update-signing-certificate.html) 명령을 사용하십시오. 다음 명령으로 인증서를 비활성화할 수 있습니다.

```
aws iam update-signing-certificate --certificate-id {{OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE}} --status {{Inactive}} --user-name {{user-name}}
```

인증서를 삭제하려면 [delete-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-signing-certificate.html) 명령을 사용하십시오.

```
aws iam delete-signing-certificate --user-name {{user-name}} --certificate-id {{OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE}}
```