wtatsuruの技術方面のブログ

はてなスタッフ id:wtatsuru です。日常ブログはこちら https://tatsuru.hatenablog.com/

よくサンプルにあるやつ

require 'aws-sdk'
ec2 = AWS::EC2.new(
  :access_key_id => ACCESS_KEY,
  :secret_access_key => SECRET_KEY,
  :ec2_endpoint => 'ec2.ap-northeast-1.amazonaws.com'
)

IAM role を設定したインスタンスだと、ACCESS_KEY, SECRET_KEY は自動で取得してくれて便利

ec2 = AWS::EC2.new

途中でリージョン変えるのは適当にこういう感じで

ec2 = ec2.regions[region]
ec2.instances.filter('instance-state-name', 'running')

client を使うとAPIだいたいそのまま叩けていいんだけど、この方法だと region 設定できないので注意する。そのまま多々気に入ってるだけみたい

ec2 = AWS::EC2.new
client1 = ec2.client  # これは us-east-1
client2 = ec2.regions['ap-northeast-1'].client # これも us-east-1
client3 = AWS::EC2.new(:ec2_endpoint => 'ec2.ap-northeast-1.amazonaws.com').client #ちゃんと設定すると ap-northeast-1 を向く

Regions and Endpoints - Amazon Web Services

はてなで一緒に働きませんか?