![]()
Amazon EC2のイメージ(AMI)をus-eastからus-westにコピーする方法
大井です。Amazon Web Serviceがアメリカ西海岸にデータセンターを作りました。AWSを日本から使う場合のネックとなっていたのがネットワーク速度でしたので、少しでも近い場所にサーバをおきたいと思い、今まで東海岸リージョン(us-east-1)で使っていたEC2のイメージ(AMI)をus-west-1でも使えるようにしました。
終わってみればなんてことはないのですが、方法が分かるまでかなり苦労しましたので、自分の備忘録をかねて紹介したいと思います。
ec2-migrate-bundleをつかう。
プライベートAMIは使うリージョンと同じ場所にあるS3に保存する必要があるようですので、既存のus-east-1にあるAMIデータをus-west-1にコピーして、それをAMI登録する、という手順です。
1. US-WESTのS3にコピー
既存のEC2インスタンス(us-east-1)にログインして、以下のコマンドを実行。
% ec2-migrate-bundle -k (your private key file) -c (your cert) -a (your access key) -s (your secret access key) --bucket (your source bucket) --manifest (your manifest filename) --location us-west-1 --region us-west-1 --destination-bucket (destination bucket you want to make)
ココでポイントですが、EC2インスタンスから初めてイメージを保存するときとは異なり、us-west側のS3上にあらかじめbucketを作っておく必要はありません。むしろ既にあると怒られます。
" --destination-bucket"にus-westのS3に作成したいbucket名を指定すれば、自動的にbucketを作成し、そこにus-eastのイメージデータをコピーしてくれます。
これが成功すると、us-west-1上のmanifestファイルのフルパスが表示されます。
2. AMIを登録する
ElasticFoxでも出来ると思いますが、今回はローカルのMacBookからコマンドを実行しました。
% ec2-register --region us-west-1 --name (your ami name) (your new manifest fullpath on us-west-1)
"--region us-west-1"を忘れずに。
これで完成です。S3のツールやAPIをいっさい触らずに出来ますので、分かってみると非常に簡単でした。
参考になれば幸いです。
