AWSではコンソール上の操作だけでなく、AWS CLIを使用し、CUI上の操作が可能です。
また、いくつかの機能についてはコンソールでの操作が未対応のため、AWS CLIを利用する必要があります。
今回は、このAWS CLIをLinuxサーバで使用するための初期設定方法をご紹介致します。
■AWS CLIのインストール
下記手順にて、AWS CLIをサーバにインストールします。ちなみに、AWS環境にて作成したAmazon Linuxであれば、サーバ作成時にインストールされているため、下記作業は不要となります。
1.pipのインストールスクリプトをcurl経由にてダウンロードし、実行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@test ~]# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1488k 100 1488k 0 0 5367k 0 --:--:-- --:--:-- --:--:-- 5394k [root@test ~]# python get-pip.py Collecting pip Downloading pip-8.1.2-py2.py3-none-any.whl (1.2MB) 100% |████████████████████████████████| 1.2MB 888kB/s Collecting setuptools Downloading setuptools-24.0.3-py2.py3-none-any.whl (441kB) 100% |████████████████████████████████| 450kB 2.1MB/s Collecting wheel Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB) 100% |████████████████████████████████| 71kB 8.8MB/s Installing collected packages: pip, setuptools, wheel Successfully installed pip-8.1.2 setuptools-24.0.3 wheel-0.29.0 |
2.pipを使用し、AWS CLIをインストール
1 2 3 4 5 |
[root@test ~]# pip install awscli Downloading awscli-1.10.47-py2.py3-none-any.whl (970kB) 100% |████████████████████████████████| 972kB 1.2MB/s (中略) Successfully installed awscli-1.10.47 botocore-1.4.37 colorama-0.3.7 docutils-0.12 futures-3.0.5 jmespath-0.9.0 pyasn1-0.1.9 python-dateutil-2.5.3 rsa-3.4.2 s3transfer-0.0.1 |
これにてインストールは完了です。下記コマンドにてバージョンを確認してみましょう
1 2 |
[root@test ~]# aws --version aws-cli/1.10.47 Python/2.7.5 Linux/3.10.0-327.el7.x86_64 botocore/1.4.37 |
■AWS CLI用IAMユーザ作成
AWS CLIインストール後、下記コマンドにてインスタンス情報を取得するコマンドを実行しようとすると…
1 2 |
[root@test ~]# aws ec2 describe-instances You must specify a region. You can also configure your region by running "aws configure". |
初期設定が完了してないため、このようなエラーメッセージが表示されます。
aws configureというコマンドにて初期設定を行うのですが、その際にIAMユーザのAccess Key及び
Secret Access Keyが必要になります。既にAWS CLI操作権限のあるIAMユーザを作成していれば、
そのユーザのAccess Key及びSecret Access Keyを使用すれば可能ですが、なければIAMユーザの
作成が必要となります。
AWSコンソールよりIAM設定画面を開き、ユーザ⇒新規ユーザの作成を押下します。
下記のようにユーザ名を入力します。ここでは「aws-cli」と入力し、作成を押下します。
ユーザが正常に作成されました。ここで認証情報がダウンロード可能となります。
Access Key及びSecret Access Keyはこの画面でのみ、取得出来るため、必ずメモや
ファイルを保存しておきましょう。
作成されたユーザを押下すると、ユーザ設定確認画面に移行します。
作成されたばかりだと、AWS CLIを使用する権限が与えられていないため、
ポリシーをアタッチする必要があります。
アクセス許可タブを選択し、ポリシーのアタッチを押下します。
アタッチするポリシーを選択します。ここでは「PowerUserAccess」を
アタッチします。
アタッチ後、このような表示となっていれば完了です。
これでAWS CLIを使用するためのIAMユーザ作成が完了しました。
■aws configure実行
aws configureを実行する準備が整いましたので、実行します。
各ユーザのホームディレクトリにて実行してください。
1 2 |
[root@test ~]# aws configure AWS Access Key ID [None]: |
実行すると上記のようにアクセスキー等を対話形式で問われます。
下記入力情報を入力してください。
AWS Access Key ID [None]: 先程作成したユーザのAccess Key
AWS Secret Access Key [None]: 先程作成したユーザのsecret Access Key
Default region name [None]: リージョンを選択します。東京の場合は「ap-northeast-1」となります。
Default output format [None]: jsonやtable等のコマンド出力結果の表示形式を指定します。ここではjsonを入力します。
下記が入力例となります。
1 2 3 4 5 |
[root@test ~]# aws configure AWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXXXX AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Default region name [None]: ap-northeast-1 Default output format [None]:json |
aws configure実行後、「.aws」というディレクトリが作成されています。
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@test ~]# ls -la total 40 dr-xr-x--- 4 root root 4096 Jul 14 08:43 . dr-xr-xr-x 25 root root 4096 Jul 14 07:33 .. drwxr-xr-x 2 root root 4096 Jul 14 08:43 .aws -rw-r--r-- 1 root root 18 Jan 15 2011 .bash_logout -rw-r--r-- 1 root root 176 Jan 15 2011 .bash_profile -rw-r--r-- 1 root root 176 Jan 15 2011 .bashrc -rw-r--r-- 1 root root 100 Jan 15 2011 .cshrc drwx------ 2 root root 4096 Jul 14 07:33 .ssh -rw-r--r-- 1 root root 129 Jan 15 2011 .tcshrc -rw------- 1 root root 663 Jul 14 08:43 .viminfo |
このディレクトリの中身を見てみると、下記のようなファイルが保存されています。
1 2 3 4 5 6 7 |
[root@test ~]# cd .aws/ [root@test .aws]# ls -la total 16 drwxr-xr-x 2 root root 4096 Jul 14 08:46 . dr-xr-x--- 4 root root 4096 Jul 14 08:46 .. -rw------- 1 root root 48 Jul 14 08:46 config -rw------- 1 root root 116 Jul 14 08:46 credentials |
configには、先程入力したoutputやregionが記載されています。
1 2 3 4 |
[root@test .aws]# cat config [default] output = json region = ap-northeast-1 |
credentialsには、先程入力した、access_key等が記載されています。
1 2 3 4 |
[root@test .aws]# cat credentials [default] aws_access_key_id = XXXXXXXXXXXXXXXXXXXXX aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
これでAWS CLIを使用する初期設定が完了しました。
■AWS CLI実行
先程失敗したインスタンス情報の取得コマンドを実施します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
[root@test ~]# [root@test .aws]# aws ec2 describe-instances { "Reservations": [ { "OwnerId": "XXXXXXXXXXX", "ReservationId": "XXXXXXXXXX", "Groups": [], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": "", "RootDeviceType": "ebs", "State": { "Code": 80, "Name": "stopped" }, "EbsOptimized": false, "LaunchTime": "2016-07-13T05:12:31.000Z", "PrivateIpAddress": "172.31.XX.XX", "ProductCodes": [], "VpcId": "vpc-XXXXXXXXX", "StateTransitionReason": "User initiated (2016-07-13 09:11:24 GMT)", "InstanceId": "i-XXXXXXXX", "ImageId": "ami-XXXXXXXX", "PrivateDnsName": "ip-172-31-XX-XX.ap-northeast-1.compute.internal", "KeyName": "test.pem", "SecurityGroups": [ { "GroupName": "launch-wizard-1", "GroupId": "sg-XXXXXXXXX" } ], "ClientToken": "XXXXXXXXXXXXXXXXX", "SubnetId": "subnet-XXXXXXXX", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "Status": "in-use", "MacAddress": "XX:XX:XX:XX:XX:XX", "SourceDestCheck": true, "VpcId": "vpc-XXXXXXXX", "Description": "Primary network interface", "NetworkInterfaceId": "eni-XXXXXXXX", "PrivateIpAddresses": [ { "PrivateDnsName": "ip-172-31-XX-XX.ap-northeast-1.compute.internal", "Primary": true, "PrivateIpAddress": "172.31.XX.XX" } ], "PrivateDnsName": "ip-172-31-XX-XX.ap-northeast-1.compute.internal", "Attachment": { "Status": "attached", "DeviceIndex": 0, "DeleteOnTermination": true, "AttachmentId": "eni-attach-XXXXXXXX", "AttachTime": "2016-07-12T06:29:15.000Z" }, "Groups": [ { "GroupName": "launch-wizard-1", "GroupId": "sg-XXXXXXXXX" } ], "SubnetId": "subnet-XXXXXXXX", "OwnerId": "XXXXXXXXXXXXXX", "PrivateIpAddress": "172.31.XX.XX" } ], "SourceDestCheck": true, "Placement": { "Tenancy": "default", "GroupName": "", "AvailabilityZone": "ap-northeast-1c" }, "Hypervisor": "xen", "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "Status": "attached", "DeleteOnTermination": true, "VolumeId": "vol-XXXXXXXXX", "AttachTime": "2016-07-12T06:29:15.000Z" } } ], "Architecture": "x86_64", "StateReason": { "Message": "Client.UserInitiatedShutdown: User initiated shutdown", "Code": "Client.UserInitiatedShutdown" }, "RootDeviceName": "/dev/xvda", "VirtualizationType": "hvm", "Tags": [ { "Value": "XXXXXXXX", "Key": "Name" } ], "AmiLaunchIndex": 0 } ] } ] } |
今度はうまく取得できましたね。インスタンスの状態やサイズ、EBSの情報等が取得できています。
■まとめ
AWS CLIを使用するには、下記が必要となります。
・AWS CLIのインストール
・AWS CLIの使用権限が付与されているIAMユーザ
・上記準備後、aws configureを実施
今回は以上となります。
投稿者プロフィール
-
未経験で中途入社でした文系エンジニア。
顔と年齢の差が激しいとよく言われます。
最新の投稿
- WordPress2018年2月16日本ブログが突然重く…原因は? ※2018/02/19追記あり
- AWS2018年2月13日AWS大阪ローカルリージョンが開設されました!
- AWS Summit2017年6月7日AWS Summit Tokyo 2017で認定試験を受けてきました
- AWS2017年5月31日[速報]Amazon Web Services 2018年の大阪リージョンを開設を発表!