最新 追記

雑記帳


2015-02-17 (Tue) [長年日記]

[AWS][Ruby] AWS SDK for Ruby v2でのcredentialsの扱い

AWS SDK for Rubyで新標準となったCredentials管理方法を使ってみるでは、aws-sdk-v1での、Shared Credentialsの使い方について説明した。v2では、この辺りも大きく変わっているようだったので、どうなっているのか確認してみた。

v2のドキュメントによると、Awsモジュールに、それぞれクラスが定義されている。

Aws::Credentialsをベースに、ソース毎にクラスが定義されている。

使い方

今どきは、EC2であればIAM Roleを、手元の環境ではShared Credentialsを使うだろう。その場合は、特に何もせずともCredentialsが有効になる。

IAM Roleの場合

 ec2 = Aws::EC2::Client.new
 p ec2.config[:credentials]
 #=> #<Aws::InstanceProfileCredentials access_key_id="ASxxxxxxxxxxxxxxxxxQ">

Shared Credentialsの場合(~/.aws/credentialsのdefaultが参照される)

 ec2 = Aws::EC2::Client.new
 p ec2.config[:credentials]
 #=> #<Aws::SharedCredentials profile_name="default" path="/Users/isobe/.aws/credentials">

Shared Credentialsで、profileを指定したい場合

 Aws.config[:credentials] = Aws::SharedCredentials.new(profile_name: 'myaccount')
 #=> #<Aws::SharedCredentials profile_name="myaccount" path="/Users/isobe/.aws/credentials">

キーを直接渡す場合は、Aws.config[:credentials] にAws::Credentialsを代入すれば良い。

 p Aws.config[:credentials] = Aws::Credentials.new(
   'AKxxxxxxxxxxxxxxxxxx',
   'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
 )
 #=> #<Aws::Credentials access_key_id="AKxxxxxxxxxxxxxxxxxx">

(AssumeRoleは…環境がないので省略)

IAM RoleやShared Credentialsのdefaultを使う場合は、意識せずに使えるようになったので、かなり便利かと思う。


2015-02-23 (Mon) [長年日記]

[AWS] WEB+DB PRESS vol.85にCloudFormationの記事を書いた

WEB+DB PRESS vol.85

2015年2月24日(火)に発売される、WEB+DB PRESS vol.85(Gihyo DP, Amazon.co.jp)の特集記事「実践 AWS自動化」に、CloudFormationについて、@y015i(y13i)と共に書かせてもらいました。

この特集記事は、@sgwr_dts(winebarrel)さんが作成されたAWSコード化ツール群、Codenize.toolsや、AWSのサービス、CloudFormation、OpsWorksについて紹介しています。

コードによるAWSの自動化、Codenize.toolsについては、@sgwr_dtsさんが、OpsWorksについては、@sawanobolysawanoboly)さんが書かれています。

第1章「コードによるAWSの自動化」は、AWS as Codeの概要について書かれています。インフラをコードで管理するメリットを説明されています。

第2章「CloudFormationによる構築の自動化」は、AWSのコード化に欠かせないCloudFormationについて紹介しています。ユースケースや基本的な使い方、実運用上の注意点など書いています。特に、y015iが主に書いた後半については、実際にCloudFormationを使った中のハマりどころについて解説されているので、必見です。

第3章「OpsWorksによる運用の自動化」は、OpsWorksの概念から具体的な使い方まで、幅広く書かれていて、現時点で最も分かりやすい解説ではないかと思います。

第4章「Codenize.toolsによるメンテナンスの自動化」は、AWSを管理するときに、かゆいところに手が届くツールについての紹介です。弊社でもお世話になっています。各種AWSのリソースを、DSLを使って管理でき、とても便利です。実際に使ってみると、その便利さを実感できると思います。

今回、初めて商業誌に書かせていただくことになり、そのチャンスをくれたsgwr_dtsさんとyoshidashingoさんに感謝します。また、助けてもらった共著者のy015iさん、本特集でレビューなど色々とお世話になりました、sawanobolyさん、校正をしていただいた、inaoさん、ありがとうございました。