My Tracking

読者です 読者をやめる 読者になる 読者になる

My Tracking

記憶力の低下が気になるアラフォー男の備忘録

【AWS学習記】CentOSにAWS CLIをインストールしてみた

aws

下記のとおり、awsの各種サービスをAPIでアクセスするためのアクセスキーを取得したため、 AWS CLIをインストールしてみた。

なお、環境は、CentOS6.4を利用した。

[root@Linux ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
[root@Linux ~]#

AWS CLIをインストールする

AWS CLIを下記のとおり、インストールする。

[root@Linux ~]# yum install -y python-setuptools
[root@Linux ~]# easy_install pip
[root@Linux ~]# pip install awscli

AWS CLIのバージョン情報の確認

インストールの確認のため、バージョン情報を確認

[root@Linux ~]# aws --version
aws-cli/1.10.56 Python/2.6.6 Linux/2.6.32-358.el6.i686 botocore/1.4.46
[root@Linux ~]#

AWS CLIのタブ補完設定

AWS CLIのコマンドやオプションを保管する機能を設定する。
一応下記のとおり、したらタブ保管された。

[root@Linux ~]# echo 'complete -C /usr/bin/aws_completer aws' > /etc/profile.d/aws-cli.sh
[root@Linux ~]# cat /etc/profile.d/aws-cli.sh
complete -C /usr/bin/aws_completer aws
[root@Linux ~]#

※一応ここで、CentOSに再ログインした。

アクセスキーの設定

事前に作成・取得したアクセスキーの情報を下記のとおり、設定する。

[root@Linux ~]# aws configure
AWS Access Key ID [None]: 作成・取得したアクセスキー
AWS Secret Access Key [None]: 作成・取得したシークレットキー
Default region name [None]: ap-northeast-1※日本のリージョンを指定
Default output format [None]:
[root@Linux ~]#

設定ファイルの保存場所

aws configureで実施した情報はかきに保存された。

[root@Linux .aws]# pwd
/root/.aws
[root@Linux .aws]# cat config
[default]
region = ap-northeast-1
[root@Linux .aws]# cat credentials
[default]
aws_access_key_id = 設定したアクセスキー
aws_secret_access_key = 設定したシークレットキー
[root@Linux .aws]#

AWS CLIコマンドを実行してみる

環境の設定が完了したため、コマンドを実際に実行してみる。
なお、ここではリージョンの情報を取得する下記コマンドを実行しした。

[root@Linux ~]# aws ec2 describe-regions
{
    "Regions": [
        {
            "Endpoint": "ec2.ap-south-1.amazonaws.com",
            "RegionName": "ap-south-1"
        },
        {
            "Endpoint": "ec2.eu-west-1.amazonaws.com",
            "RegionName": "eu-west-1"
        },
        {
            "Endpoint": "ec2.ap-southeast-1.amazonaws.com",
            "RegionName": "ap-southeast-1"
        },
        {
            "Endpoint": "ec2.ap-southeast-2.amazonaws.com",
            "RegionName": "ap-southeast-2"
        },
        {
            "Endpoint": "ec2.eu-central-1.amazonaws.com",
            "RegionName": "eu-central-1"
        },
        {
            "Endpoint": "ec2.ap-northeast-2.amazonaws.com",
            "RegionName": "ap-northeast-2"
        },
        {
            "Endpoint": "ec2.ap-northeast-1.amazonaws.com",
            "RegionName": "ap-northeast-1"
        },
        {
            "Endpoint": "ec2.us-east-1.amazonaws.com",
            "RegionName": "us-east-1"
        },
        {
            "Endpoint": "ec2.sa-east-1.amazonaws.com",
            "RegionName": "sa-east-1"
        },
        {
            "Endpoint": "ec2.us-west-1.amazonaws.com",
            "RegionName": "us-west-1"
        },
        {
            "Endpoint": "ec2.us-west-2.amazonaws.com",
            "RegionName": "us-west-2"
        }
    ]
}
[root@Linux ~]#

AWS CLIコマンド実行時エラー

AWS CLIコマンド実行の際に、下記のエラーが発生。

[root@Linux ~]# aws ec2 describe-regions

An error occurred (AuthFailure) when calling the DescribeRegions operation: AWS was not able to validate the provided access credentials
[root@Linux ~]# date
2016812日 金曜日 01:51:48 JST
[root@Linux ~]#

下記を参照に時刻を確認したところ、AWS CLIをインストールしたCentOSの時間が狂っていた。

そのため、ntpdateを定期的に実行するように、crontabを下記のとおり編集。

[root@Linux ~]# crontab -e

※下記となるようにcrontabを編集(5分毎に実施。)
ntpdの再起動をしないで同期するようにntpdateの「uオプション」指定し、同期

[root@Linux ~]# crontab -l
*/5 * * * * /usr/sbin/ntpdate -u ntp.nict.jp > /tmp/ntp_sync.log 2>&1
[root@Linux ~]#

実行後、同期した際のログを確認
[root@Linux ~]# cat /tmp/ntp_sync.log
12 Aug 04:32:02 ntpdate[3601]: adjust time server 133.243.238.244 offset -0.000560 sec
[root@Linux ~]#

時刻同期を定期的に実施し、時刻のずれをなくすようにしたところ、AWS CLIコマンドが正常に完了するようになった。