Amazon EC2 AMI 도구 설정
Amazon EC2 AMI 도구 설정
AMI 도구를 사용하면 Amazon S3 기반 Linux AMI를 만들고 관리할 수 있어요. 이 도구를 쓰려면 Linux 인스턴스에 설치해야 하는데, RPM을 지원하지 않는 배포판을 위해 RPM과 .zip 파일 두 가지로 제공돼요.
출처: 문서
본문
RPM으로 AMI 도구 설정하기
- Linux 배포판의 패키지 관리자(예:
yum)를 사용해 Ruby를 설치합니다. 예를 들어:
[ec2-user ~]$ sudo yum install -y ruby
wget이나curl같은 도구로 RPM 파일을 다운로드합니다. 예를 들어:
[ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm
- 다음 명령으로 RPM 파일의 서명을 검증합니다.
[ec2-user ~]$ rpm -K ec2-ami-tools.noarch.rpm
위 명령은 파일의 SHA1과 MD5 해시가 OK임을 나타내야 해요. 명령이 해시가 NOT OK라고 표시하면 다음 명령으로 파일의 Header SHA1과 MD5 해시를 확인하세요.
[ec2-user ~]$ rpm -Kv ec2-ami-tools.noarch.rpm
그런 다음 파일의 Header SHA1과 MD5 해시를 아래의 검증된 AMI 도구 해시와 비교해 파일의 진위를 확인하세요.
- Header SHA1: a1f662d6f25f69871104e6a62187fa4df508f880
- MD5: 9faff05258064e2f7909b66142de6782
파일의 해시가 검증된 AMI 도구 해시와 일치하면 다음 단계로 진행합니다.
- 다음 명령으로 RPM을 설치합니다.
[ec2-user ~]$ sudo yum install ec2-ami-tools.noarch.rpm
ec2-ami-tools-version명령으로 AMI 도구 설치를 확인합니다.
[ec2-user ~]$ ec2-ami-tools-version
참고:
cannot load such file -- ec2/amitools/version (LoadError)같은 로드 오류가 나면, 다음 단계를 진행해 AMI 도구 설치 위치를 RUBYLIB 경로에 추가하세요.
- (선택) 이전 단계에서 오류가 발생했다면 AMI 도구 설치 위치를 RUBYLIB 경로에 추가합니다.
추가할 경로를 확인하려면 다음 명령을 실행하세요.
[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에 위치해 있어요.
이전 단계의 위치를 RUBYLIB 경로에 추가합니다.
[ec2-user ~]$ export RUBYLIB=$RUBYLIB:/usr/lib/ruby/site_ruby:/usr/lib64/ruby/site_ruby
ec2-ami-tools-version 명령으로 AMI 도구 설치를 확인합니다.
[ec2-user ~]$ ec2-ami-tools-version
.zip 파일로 AMI 도구 설정하기
apt-get같은 패키지 관리자로 Ruby와 unzip을 설치합니다. 예를 들어:
[ec2-user ~]$ sudo apt-get update -y && sudo apt-get install -y ruby unzip
wget이나curl같은 도구로 .zip 파일을 다운로드합니다. 예를 들어:
[ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip
/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).
EC2_AMITOOL_HOME환경 변수를 도구의 설치 디렉터리로 설정합니다. 예를 들어:
[ec2-user ~]$ export EC2_AMITOOL_HOME=/usr/local/ec2/ec2-ami-tools-x.x.x
- 도구를
PATH환경 변수에 추가합니다. 예를 들어:
[ec2-user ~]$ export PATH=$EC2_AMITOOL_HOME/bin:$PATH
ec2-ami-tools-version명령으로 AMI 도구 설치를 확인할 수 있어요.
[ec2-user ~]$ ec2-ami-tools-version
서명 인증서 관리 (Manage signing certificates)
AMI 도구의 일부 명령은 **서명 인증서(또는 X.509 인증서)**가 필요해요. 인증서를 만든 뒤 AWS에 업로드해야 합니다. 예를 들어 OpenSSL 같은 서드파티 도구로 인증서를 만들 수 있어요.
서명 인증서를 만들려면
- OpenSSL을 설치하고 구성합니다.
openssl genrsa명령으로 프라이빗 키를 만들고 출력을 .pem 파일로 저장합니다. 2048비트 또는 4096비트 RSA 키를 만들 것을 권장해요.
openssl genrsa 2048 > private-key.pem
openssl req명령으로 인증서를 생성합니다.
openssl req -new -x509 -nodes -sha256 -days 365 -key private-key.pem -outform PEM -out certificate.pem
인증서를 AWS에 업로드하려면 upload-signing-certificate 명령을 사용합니다.
aws iam upload-signing-certificate --user-name user-name --certificate-body file://path/to/certificate.pem
사용자의 인증서를 나열하려면 list-signing-certificates 명령을 사용합니다.
aws iam list-signing-certificates --user-name user-name
사용자의 서명 인증서를 비활성화하거나 다시 활성화하려면 update-signing-certificate 명령을 사용합니다. 다음 명령은 인증서를 비활성화해요.
aws iam update-signing-certificate --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE --status Inactive --user-name user-name
인증서를 삭제하려면 delete-signing-certificate 명령을 사용합니다.
aws iam delete-signing-certificate --user-name user-name --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE