LoginSignup
1
3

More than 3 years have passed since last update.

【AWS CLI】Red Hat Enterprise Linux 8でAWS CLIを使用可能にする

Last updated at Posted at 2020-06-17

目標

・Red Hat Enterprise Linux 8 ベースのEC2インスタンスにAWS CLIをインストールする。
・AWS CLIを利用して対象AWSアカウント内のリソース操作を可能にする。

利用環境

ハードウェア : AWS EC2サーバ
OS(AMI) : Red Hat Enterprise Linux 8 (HVM), SSD Volume Type
その他ソフトウェア:
Python 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 pythonのインストール
2 AWSCLIのインストール
3 アクセスキーIDとシークレットアクセスキーの発行
4 AWSCLI動作確認

手順

1. pythonのインストール

AWS CLIはpythonがベースとなっているため、まずはpythonの実行環境がインストールされている必要があります。
しかしRed Hat Enterprise Linux 8ではデフォルトでpythonがインストールされていないようで、
まずそれをインストールします(※)。
2020/6/17現在最新のpython3.8をyumでインストールしました。

※参考にさせて頂いたサイト
Red Hat Enterprise Linux 8にPythonをインストールする
https://dev.classmethod.jp/articles/in-search-of-lost-python-at-rhel-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コンソール上で発行します。

①以下へアクセス
https://console.aws.amazon.com/iam/home?#/security_credential

新しいアクセスキーの作成をクリック
tempsnip.png

キーファイルのダウンロードをクリック
クリック後、「rootkey.csv」というファイルがダウンロードされ、
その中にアクセスキーIDとシークレットアクセスキーが記載されています。
tempsnip.png

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"
}
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3