【AWS CLI】Red Hat Enterprise Linux 8에서 AWS CLI 사용 가능

목표



· Red Hat Enterprise Linux 8 기반 EC2 인스턴스에 AWS CLI를 설치합니다.
· AWS CLI를 사용하여 대상 AWS 계정 내에서 리소스 작업을 가능하게 합니다.

이용환경



하드웨어: AWS EC2 서버
OS(AMI): Red Hat Enterprise Linux 8 (HVM), SSD Volume Type
기타 소프트웨어:
파이썬 3.8.0
aws-cli/1.18.81 Python/3.8.0 Linux/4.18.0-193.el8.x86_64 botocore/1.17.4

작업 흐름




항번
제목


1
파이썬 설치

2
AWSCLI 설치

3
액세스 키 ID 및 비밀 액세스 키 발급

4
AWSCLI 동작 확인


절차



1. 파이썬 설치



AWS CLI는 파이썬이 기반이므로 먼저 파이썬 실행 환경이 설치되어 있어야 합니다.
그러나 Red Hat Enterprise Linux 8에서는 기본적으로 파이썬이 설치되지 않은 것처럼 보입니다.
먼저 설치합니다(※).
2020/6/17 현재 yum에서 최신 python3.8을 설치했습니다.

※ 참고로 한 사이트
Red Hat Enterprise Linux 8에 Python 설치
htps : // v.ぁsss d. jp / archi c ぇ s / in-sea rch-f-o-stpy 흠 - t r l-8 /

①python3.8 설치yum install python38 실행
Complete! 라고 출력되는 것.
[root@ip-172-31-45-222 ~]# yum install python38
Installed:
  python38-3.8.0-6.module+el8.2.0+5978+503155c0.x86_64                       python38-libs-3.8.0-6.module+el8.2.0+5978+503155c0.x86_64
  python38-pip-19.2.3-5.module+el8.2.0+5979+f9f0b1d2.noarch                  python38-pip-wheel-19.2.3-5.module+el8.2.0+5979+f9f0b1d2.noarch
  python38-setuptools-41.6.0-4.module+el8.2.0+5978+503155c0.noarch           python38-setuptools-wheel-41.6.0-4.module+el8.2.0+5978+503155c0.noarch

Complete!

②python 명령 동작 확인python3 --version 실행 (RHEL에서는 버전도 명령 내에 포함되어야 함)
⇒ 정상적으로 버전 정보가 출력되는 것

[root@ip-172-31-45-222 ~]# python3 --version
Python 3.8.0

2. AWSCLI 설치



①AWS CLI 설치pip3 install awscli 실행
Successfully installed 라고 출력되는 것.
[root@ip-172-31-45-222 ~]# pip3 install awscli
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting awscli
  Downloading https://files.pythonhosted.org/packages/9f/13/a93f9ef5d6a0820dbd324a222aba7ff299454cbc0f8c8d37d918e3b530fb/awscli-1.18.81.tar.gz (1.2MB)
     |????????????????????????????????| 1.2MB 7.3MB/s
Collecting botocore==1.17.4 (from awscli)
  Downloading https://files.pythonhosted.org/packages/bc/83/e5c0420ed9d628c6cd054c8a0782dece06515a90b63de4e1c3ce2b943dc2/botocore-1.17.4-py2.py3-none-any.whl (6.3MB)
     |????????????????????????????????| 6.3MB 23.7MB/s
Collecting docutils<0.16,>=0.10 (from awscli)
  Downloading https://files.pythonhosted.org/packages/22/cd/a6aa959dca619918ccb55023b4cb151949c64d4d5d55b3f4ffd7eee0c6e8/docutils-0.15.2-py3-none-any.whl (547kB)
     |????????????????????????????????| 552kB 36.8MB/s
Collecting rsa<=3.5.0,>=3.1.2 (from awscli)
  Downloading https://files.pythonhosted.org/packages/e1/ae/baedc9cb175552e95f3395c43055a6a5e125ae4d48a1d7a924baca83e92e/rsa-3.4.2-py2.py3-none-any.whl (46kB)
     |????????????????????????????????| 51kB 27.9MB/s
Collecting s3transfer<0.4.0,>=0.3.0 (from awscli)
  Downloading https://files.pythonhosted.org/packages/69/79/e6afb3d8b0b4e96cefbdc690f741d7dd24547ff1f94240c997a26fa908d3/s3transfer-0.3.3-py2.py3-none-any.whl (69kB)
     |????????????????????????????????| 71kB 32.6MB/s
Collecting PyYAML<5.4,>=3.10 (from awscli)
  Downloading https://files.pythonhosted.org/packages/64/c2/b80047c7ac2478f9501676c988a5411ed5572f35d1beff9cae07d321512c/PyYAML-5.3.1.tar.gz (269kB)
     |????????????????????????????????| 276kB 37.7MB/s
Collecting colorama<0.4.4,>=0.2.5 (from awscli)
  Downloading https://files.pythonhosted.org/packages/c9/dc/45cdef1b4d119eb96316b3117e6d5708a08029992b2fee2c143c7a0a5cc5/colorama-0.4.3-py2.py3-none-any.whl
Collecting python-dateutil<3.0.0,>=2.1 (from botocore==1.17.4->awscli)
  Downloading https://files.pythonhosted.org/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl (227kB)
     |????????????????????????????????| 235kB 41.5MB/s
Collecting jmespath<1.0.0,>=0.7.1 (from botocore==1.17.4->awscli)
  Downloading https://files.pythonhosted.org/packages/07/cb/5f001272b6faeb23c1c9e0acc04d48eaaf5c862c17709d20e3469c6e0139/jmespath-0.10.0-py2.py3-none-any.whl
Collecting urllib3<1.26,>=1.20; python_version != "3.4" (from botocore==1.17.4->awscli)
  Downloading https://files.pythonhosted.org/packages/e1/e5/df302e8017440f111c11cc41a6b432838672f5a70aa29227bf58149dc72f/urllib3-1.25.9-py2.py3-none-any.whl (126kB)
     |????????????????????????????????| 133kB 47.5MB/s
Collecting pyasn1>=0.1.3 (from rsa<=3.5.0,>=3.1.2->awscli)
  Downloading https://files.pythonhosted.org/packages/62/1e/a94a8d635fa3ce4cfc7f506003548d0a2447ae76fd5ca53932970fe3053f/pyasn1-0.4.8-py2.py3-none-any.whl (77kB)
     |????????????????????????????????| 81kB 35.4MB/s
Collecting six>=1.5 (from python-dateutil<3.0.0,>=2.1->botocore==1.17.4->awscli)
  Downloading https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl
Installing collected packages: six, python-dateutil, docutils, jmespath, urllib3, botocore, pyasn1, rsa, s3transfer, PyYAML, colorama, awscli
  Running setup.py install for PyYAML ... done
  Running setup.py install for awscli ... done
Successfully installed PyYAML-5.3.1 awscli-1.18.81 botocore-1.17.4 colorama-0.4.3 docutils-0.15.2 jmespath-0.10.0 pyasn1-0.4.8 python-dateutil-2.8.1 rsa-3.4.2 s3transfer-0.3.3 six-1.15.0 urllib3-1.25.9

②AWS CLI 설치 확인aws --version 실행
⇒ 정상적으로 버전 정보가 출력되는 것

[root@ip-172-31-45-222 ~]# aws --version
aws-cli/1.18.81 Python/3.8.0 Linux/4.18.0-193.el8.x86_64 botocore/1.17.4

3. 액세스 키 ID 및 비밀 액세스 키 발급



AWS CLI에서 AWS 계정 내 리소스에 액세스하려면,
액세스 키 ID와 비밀번호 액세스 키가 필요하므로 AWS 콘솔에서 게시합니다.

①이하에 액세스
htps : // 이런. 아 ws. 아마존. 코 m/아 m/칭찬? # / Sekuri ty_c Redenchia l

新しいアクセスキーの作成 를 클릭


キーファイルのダウンロード 를 클릭
클릭 후 "rootkey.csv"라는 파일이 다운로드되고,
여기에는 액세스 키 ID와 비밀 액세스 키가 포함되어 있습니다.


3. 액세스 키 ID와 비밀 액세스 키를 AWS CLI로 로드합니다.


aws configure 실행
아래와 같이 각 항목에 값을 기입(※)해 주십시오.
※Default region name은 도쿄 리전(ap-northeast-1)을 설정하고 있습니다.
※Default output format은 「json, text, table」의 3 종류로부터 선택할 수 있는 것 같습니다.

[root@ip-172-31-45-222 ~]# aws configure
AWS Access Key ID [None]: {rootkey.csv記載のAWSAccessKeyId}
AWS Secret Access Key [None]: {rootkey.csv記載のAWSSecretKey}
Default region name [None]: ap-northeast-1
Default output format [None]: json

4. AWSCLI 동작 확인



json의 출력 값을 잘라내기 위해 jq를 설치합니다.
sudo yum install jq 실행
Complete! 라고 표시되는 것

[root@ip-172-31-45-222 ~]# sudo yum install jq

Installed:
  jq-1.5-12.el8.x86_64                                                      oniguruma-6.8.2-1.el8.x86_64

Complete!
aws ec2 describe-instances | jq '.Reservations[].Instances[] | {InstanceId, PrivateIpAddress}'(모든 인스턴스의 인스턴스 ID와 비공개 IP를 잘라보기) 실행
⇒ 성공적으로 각 인스턴스의 ID와 IP 주소가 표시됩니다.

[root@ip-172-31-45-222 ~]# aws ec2 describe-instances | jq '.Reservations[].Instances[] | {InstanceId, PrivateIpAddress}'
{
  "InstanceId": "i-0e2d37561986006ae",
  "PrivateIpAddress": "172.31.42.251"
}
{
  "InstanceId": "i-04b2b0295c4ace2c8",
  "PrivateIpAddress": "172.31.42.211"
}
{
  "InstanceId": "i-05479d1f45744d4e6",
  "PrivateIpAddress": "172.31.33.200"
}
{
  "InstanceId": "i-01996d692bf2eeee6",
  "PrivateIpAddress": "172.31.34.245"
}
{
  "InstanceId": "i-07e3cd75ed7d0e213",
  "PrivateIpAddress": "172.31.34.137"
}
{
  "InstanceId": "i-01ea4405ab69ba0fd",
  "PrivateIpAddress": "172.31.45.222"
}

좋은 웹페이지 즐겨찾기