まず始めに躓いたところは、指定のリージョンに接続出来ないよ!ってこと。
AWSの公式紹介ページでは、AWSへのコネクションの作成に、
>>> boto.connect_ec2()
みたいな感じで接続してるんだけど、これだけじゃリージョン指定出来なくて北米とかにつながってしまう。
で、ソースを見ると
RegionInfoっていうクラスに、リージョン名渡して~みたいな感じで出来るのですが、、、
、、、っていうか接続するだけなのに、めんどうだな(-.-;)
って思いました。
それで、よくよくソースを探ってみると、ありました。リージョン指定で接続するメソッドが。
その名も
connect_to_region('リージョン名')
ずばりですね。
ってことで、これで簡単にリージョン指定で接続できます。
下記は、インタラクティブシェルを使って、東京リージョンのEC2で新規インスタンスをあげる例です。
3行目で、東京リージョンに接続。
8行目で、インスタンス起動。
21行目で、リージョンを確認。
24行目で、アベイラビリティゾーンを確認。
うん、ちゃんと取れてるみたいです。
同様に、自分が使用して出来たものとして、RDS(※注)・ELBがあります。
他も同様だとは思いますが、ソースを見て確認してみてください。
S3 と IAM は、接続の感じが違うみたいで、それぞれ普通に、
@S3
>>> import boto
>>>
>>> s3_conn = boto.connect_s3()
@IAM
>>> import boto
>>>
>>> iam_conn ~ boto.connect_iam()
と、します。
S3は、なんかリージョンの考え方が違うのかな。
IAMは、そもそもリージョンが無いからそれはそうか。
※RDSは、2011/08/17現在、pypiでの最新バージョンであるboto2.0では、リージョンのエンドポイントが
間違っていて、コネクションは作れるものの、インスタンスの作成等は出来ません。
boto/rds/__init__.py の def regions() に記載されているエンドポイントを自分で書き換えるか、
githubより最新のものをダウンロードする必要があります。
各AWSサービスのエンドポイント一覧は、こちら。
おしまい。
、、、っていうか接続するだけなのに、めんどうだな(-.-;)
って思いました。
それで、よくよくソースを探ってみると、ありました。リージョン指定で接続するメソッドが。
その名も
connect_to_region('リージョン名')
ずばりですね。
ってことで、これで簡単にリージョン指定で接続できます。
下記は、インタラクティブシェルを使って、東京リージョンのEC2で新規インスタンスをあげる例です。
>>> import boto.ec2 >>> >>> ec2_conn = boto.ec2.connect_to_region('ap-northeast-1') >>> >>> ec2_conn EC2Connection:ec2.ap-northeast-1.amazonaws.com >>> >>> rsv = ec2_conn.run_instances('ami-2e0ca72f', instance_type='t1.micro') >>> >>> rsv Reservation:r-845a0e85 >>> >>> rsv.instances [Instance:i-44095645] >>> >>> instance = rsv.instances[0] >>> >>> instance Instance:i-44095645 >>> >>> print instance.region RegionInfo:ap-northeast-1 >>> >>> print instance.placement ap-northeast-1a >>>
3行目で、東京リージョンに接続。
8行目で、インスタンス起動。
21行目で、リージョンを確認。
24行目で、アベイラビリティゾーンを確認。
うん、ちゃんと取れてるみたいです。
同様に、自分が使用して出来たものとして、RDS(※注)・ELBがあります。
他も同様だとは思いますが、ソースを見て確認してみてください。
S3 と IAM は、接続の感じが違うみたいで、それぞれ普通に、
@S3
>>> import boto
>>>
>>> s3_conn = boto.connect_s3()
@IAM
>>> import boto
>>>
>>> iam_conn ~ boto.connect_iam()
と、します。
S3は、なんかリージョンの考え方が違うのかな。
IAMは、そもそもリージョンが無いからそれはそうか。
※RDSは、2011/08/17現在、pypiでの最新バージョンであるboto2.0では、リージョンのエンドポイントが
間違っていて、コネクションは作れるものの、インスタンスの作成等は出来ません。
boto/rds/__init__.py の def regions() に記載されているエンドポイントを自分で書き換えるか、
githubより最新のものをダウンロードする必要があります。
各AWSサービスのエンドポイント一覧は、こちら。
おしまい。
0 件のコメント:
コメントを投稿