3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

boto3でaws cliを扱うための初期設定から稼働確認まで

Posted at

#はじめに
boto3とは aws のリソースを python で扱うためのライブラリである。
本記事は、boto3でaws cliを扱い、AWSのec2と接続するまでの一連の流れ(初期設定)を記す。

##boto3のインストール
boto3をpipでインストールする。

$ pip install boto3

##aws cliのインストール
boto3を使用するためにaws cliをインストールする。
###Macの場合
aws cliをhomebrewでインストール

$ brew install awscli

###Windowsの場合
AWSの公式サイトからインストーラーをダウンロードし、インストーラーを実行する。

###インストール確認
awsコマンドが使用できることを確認する。

$ aws --version
aws-cli/2.0.5 Python/3.7.5 Windows/10 botocore/2.0.0dev9

##IAMユーザーの作成
IAMユーザを作成し、EC2 full access の権限を与える。ただし、後に権限を絞る必要がある。
###作成方法
AWSアカウントでのIAMユーザの作成を参考に、IAMユーザーを作成する。

##アクセスキーの作成
アクセスキーを作成し、大切に保存する。

###作成方法
こちらにアクセスし、
1.”セキュリティ認証情報に進む”を選択
2."アクセスキー(アクセスキーIDとシークレットアクセスキー)"を選択
3."新しいアクセスキーの作成" を選択

ここでアクセスキーが作成される。この時[.csvのダウンロード]を押下し、アクセスキーの情報を保存しておく。
※ここを逃すとアクセスキーの情報を取得できなくなるため、注意!
誤ってアクセスキーの情報を保存し忘れた場合、一度アクセスキーを削除し、再度アクセスキーを作成する。

##PCにaws cliの初期設定を行う

$ aws configure
AWS Access Key ID [None]: AKI************
AWS Secret Access Key [None]: ***************
Default region name [None]: ap-northeast-1
Default output format [None]: json

aws configureコマンドを入力し、上記のように先ほど取得したアクセスキー、リージョン、フォーマットを入力する。

ここまでできれば準備は完了!

##boto3が正しく動くか確認する
1.AWSコンソール上で任意のインスタンスを起動する。
2.ターミナルで以下のコマンドを実行し、起動中のインスタンスが取得できれば正常にboto3が動いている。

$ python
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import boto3
>>> ec2=boto3.resource('ec2')
>>>
>>> instances = ec2.instances.filter(
...  Filters=[{'Name': 'instance-state-name', 'Values': ['running']}])
>>>
>>> for instance in instances:
...  print(instance.id, instance.instance_type)
...
i-xxxxxxxxxxxxxxxxx t2.micro

無事インスタンスの情報が取得できたため、boto3は正常に稼働していることが確認できた。

##よくあるエラー

botocore.exceptions.ClientError: An error occurred (AuthFailure) when calling the DescribeInstances operation: AWS was not able to validate the provided access credentials

私は、このエラーに悩まされた。
原因はアクセスキーがうまく設定できていなかったから。
しかし、OS内の時間がずれている場合も接続できないらしい。。

念のためインスタンスにSSH接続し、サーバーのタイムゾーンを日本時間に変更した後、ローカルPCの時間も正しい日本時間となっていることを確認した。

タイムゾーンの変更はこちらの記事を参考にした。

#おわりに
最後までご覧いただきありがとうございます。

最近pythonを使用したAWS管理ツールを作成することになり、初めてboto3を触ることになりました。
私自身、boto3の導入で少しつまずいてしまったため、同じようなエラーに悩まされている方の一助になればと思い、本記事を執筆しました。

ご指摘・ご質問等ございましたらお気軽に@hiyoku0918へご連絡ください!

私のtwitterアカウントはこちら

#参考

@kimihiro_nさん
Python boto3 でAWSを自在に操ろう ~入門編~

@n0bisukeさん
AWS CLIのインストールから初期設定メモ

@kzykmyzwさん
AWSアカウントでのIAMユーザの作成

上記の記事を参考にさせていただきました。
ありがとうございました。

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?