はじめに
今インフラエンジニアをやっているんだけど、どうもクラウドとかって最近流行っているらしい。やってはみたいが、ブラウザでいろいろ操作するとなると、覚えなきゃいけないことがたくさんありそうだ。
そもそも、ブラウザでインフラを管理することに対してどうしても違和感を感じている。コマンドラインでの操作のほうがプロっぽくてかっこいいし、何より速い。クラウドに触れていかなきゃいけないのはわかっているけど、何から初めていいかわからない。
けど、ふとこんなものを見つけたんだ。AWS Command Line Interface(CLI) 。 AWSをコマンドラインで操作するというなんとも俺好みのツール。
今から俺はこのAWS CLIでクラウドを使いこなしてやるんだという気持ちを忘れないために、やったことを書いて残していくことにした。
AWS CLIのインストール
AWS CLIをインストールにはPythonのpipを使うと楽にインストールできるみたいだ。
Macにインストール
というわけで、まずはインストールからだ。家ではMacbook Airを愛用しているけれど、会社ではThinkPadだ。このAWS CLIはどちらでも使えるらしいので、とりえあず自宅のMacbook Airに入れてみる。入れ方は簡単そうだ。
コマンドラインで
$ pip install awscli
と入力すれば良いらしい。
ところがそうはいかなかった……。
-bash: pip: command not found
pipなんてコマンドはないと言われてしまう。Mac OSX Yosemiteには最初からeasy_installというコマンドが入っているので、今回は楽をしてeasy_installを使わせてもらう。
$ sudo easy_install pip
$ sudo pip install awscli
これで無事にインストールできた。
とりあえず、試しに動かしてみる。
$ aws --help
usage: aws [options] <command> <subcommand> [parameters]
aws: error: too few arguments
…まさかの表示だ。予定では、このコマンドでもう少し詳細にヘルプが出てくると思ったんだけど、とりあえず、CLIのページ に載っているコマンドを実行してみることにした。
$ aws ec2 describe-instances
Unable to locate credentials. You can configure credentials by running "aws configure".
ほう。credentialsというのがないからダメだと言うんだな。“ aws configure” を実行しろと言っているけど、今日とりあえずもう寝ることにする。
Windowsにインストール
今日はまずWindowsにAWS CLIをインストールするところからはじめてみる。また、AWS CLIのページ にアクセスをして、自分のパソコンにあった、バージョン(64ビットor 32ビット)をダウンロードしてくれば良い。 最近のパソコンであれば、ほぼ64ビットで問題ないと思う。
ダウンロードしてきたら、インストールを始める。
ウィザードが始まったら、連打。特に同意を求められる所もなかったので、連打する。
インストール自体はウィザードにしたがってやっていくだけなので、別にどうということはない。それよりもインストールした後何をしたらいいのかわからないのが辛かった。Power Shellから使えるとわかるまでに数分調べてしまった。
aws helpと打ってみる。昨日Macでやった時よりも良いHelpが出てきたのには感動した。
ここからの作業はおそらく、WindowsでもMacでも変わらないはず。
とりあえず、昨日の夜に出ていたcredentialsの問題を解決する必要があるから、どうにかして、credentialsを手に入れる。
AWSのアカウントは作ってあるけれど、credentialsというのは何なのか。とりあえず、昨日’aws configure’ を実行しろと書いてあったので、実行してみる。
$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key []:
Default region name []:
Default output format []:
この4つを入力すれば使えるようになりそうだ。
Access Key IDとSecret Access Keyというのが怪しいので調べてみると、AWSにはAWS Identity and Access Management(IAM)という認証の機能があるようだから、IAMというのをいじってみることにする。
アカウントを取得したらまずするべきこと
IAMはAWS CLIでも操作できるみたいだけれど、AWS CLIを使うためにはIAMでユーザを作成する必要がある。これじゃ、どうも進めない。ここは仕方ないので、諦めてManagement Consoleでユーザを作成することにする。
IAMでユーザを作成
Management ConsoleにアクセスしてもIAMというのが見つからなくて焦った。
「Identity & Access Management」というのがIAMだということに気づくまでに1分くらいかかった。 ダッシュボードから「Identity & Access Management」をクリックするとDashboardなるものが表示された。
Usersというのが左側にあるから、おそらくこの画面からユーザを作って行くのは間違いなさそうだ。
やはりあった。「 Create New Users」 。押してみたら、Enter User Names:というところに5人分入れることができるらしい。
自分しか使わないけど、1つにだけ入力しても大丈夫なんだろうか? そして、この入力フォームの下にGenerate an access key for each userというチェックボックスがある。Access keyが作られるらしい。やはりIAMでAccess KeyIdとSecret Access Keyを作るというのは間違いは無さそうだ。
次に進むと、今度はシンプルなページになった。Show User Security Credentialsをクリックしてみると求めていたAccess Key IDとSecret Access Keyが表示された。
嬉しさのあまりスクリーンショットを2回とった。すぐにこの情報がDownloadできることに気がついて、こちらもダウンロードしておいた。
これでAWS CLIを使うために必要な情報が揃ったはずだ(実際はこれでは不十分だった) 。
UserPolicyの設定
ユーザを作って満足してはいけない。後でびっくりすることになる。ユーザを作ったら、そのユーザにどのような権限があるのかを設定する必要があって、IAMではその権限をPolicyとして付与することになる。
IAMのUsersにはさっき作ったユーザが出てきている。
このユーザをダブルクリックすると詳細を見る画面に行けた。その中にPermissionsというのがあり、Attach User Policyというボタンから権限を付与することができるようだ。
いろいろと権限のテンプレートが用意されているので、適当なものを選べば良いみたいだが、そもそもよくわからなかった。Administrator AccessというのはIAMの操作も含めて全権限を与えられているPolicyのテンプレートで、Power User Accessというのは、IAM以外の操作ができるPolicyのテンプレートだった。今回はPower User AccessというPolicyを使うことにする。Power User Accessの右にあるSelectを押し、ウィザードにしたがって、数回クリックしたら、Permissionが設定できたようだ。
ユーザの詳細の画面にもPolicyが設定されていると表示されている。
AWS CLIの設定(aws configure)
Access Key IDとSecret Access Keyの2つが揃った所で、AWS CLIに求められていた、aws configureを実行する時が来た。意気揚々とさっきできたAccess Key IDとSecret Access Keyを入れた。
$ aws configure --profile gihyo
AWS Access Key ID [None]: XXXXXXXXXXXX
AWS Secret Access Key [None]: xxx1234567890xxxxxxxxx
Default region name [None]:
さっきも出てきていたのに、Access Key IDとSecret Access Keyの2つにばかり気を盗られてしまって、Default region nameとDefault output formatのことを忘れていた。CLIのドキュメントがきっとあるはずだから探してみると、まさにドンピシャなページが見つかった。そのページには
Note
You must specify an AWS region when using the AWS CLI. For a list of services and available regions, see Regions and Endpoints.
@see:http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html
と書いてある。
Regionごとに使えるサービスとかいろいろとあるようだけど、日本で使って見る為にap-northeast-1というregionをDefault region nameに指定して使うことにする。
もし、ここで設定してしまってもコマンドを打つ時にオプションで--region us-east-1のような指定をすれば、その時だけ別のregionを使うことができるみたいなので、そんなに真剣に考えなくても良かったのかもしれない。
aws --region us-east-1
ついでに Default output formatについても調べてみたけれど、jsonかtextかを選べるらしい。何も選ばないとjsonになるらしいが、今の段階で悩んでも仕方なさそうなので、そのまま何も入れずにEnterを押した。そのあといろいろあって、何回か” aws configure” を実行したけれど、わかったことは、aws configureは何度でもできるということだ。もし、Default output formatを変更したいときにはもう一度aws configure をすればよい。変更したい所だけを入力してあげれば、その他の難しいAccess Key IDなどはそのままの状態でRegionの変更などができる。
これでAWS CLIを使う準備が整ったはずだ。多少つまづくこともあったがまあなんとかできた。今度いろいろ触ってみようと思う。簡単なものから面白そうなものまで、やっていこう。
なんとかAWSを使い始めることができた、とあるインフラエンジニア。次回はより実践的にAWSを利用します、もちろんブラウザなしで。乞うご期待!