Amazon EC2からVPCへの移行をどうするか

EC2とVPCの違い

とりあえずお試しでEC2を使っている人が、業務的な都合によりVPCに移行したいという場合、どうすればいいか調べることってあると思います。そこで、ここでは相違点や考慮点を挙げたいと思います。

EC2インスタンスを移行する

移行することができます。まずはじめにEC2内のインスタンスのスナップショットを作成します。次にこのスナップショットを基にVPCのインスタンスを作成します。この際に気をつける事は、内部IPアドレスが変わります。外部IPアドレスは付きません。EC2インスタンスは、起動時に外部IPアドレス、DNS名、内部IPアドレス、内部DNS名が自動で付与されますが、VPCインスタンスは、起動時に内部IPアドレスのみ付与され、しかも、IPアドレスを自分で指定することができます。気をつける事は、今のところVPC内でt1.microインスタンスを起動することはできません。

EIPを移行する

同じアドレスを移行することはできません。EC2で確保したEIPをVPC内で使い回すことはできません。新たに取得する必要があります。ちなみに、VPCインスタンスは、EIPを付与しないと外部インターネットとやり取りをすることができません。インターネットゲートウェイのルーティングが設定されているPublicSubnet内のインスタンスにEIPを付与して使います。

セキュリティグループを移行する

そのまま移行することはできません。ただし、新規にセキュリティグループを作成して同じ設定を記述すれば同じ動作をすることができます。また、VPCのセキュリティグループは、アウトバウンドの通信も制御することができます。EC2はインバウンドのみ、VPCはインバウンドとアウトバウンドの制御と押さえておいてください。VPCは高機能です。

ロードバランサーを移行する

同じELBを移行することはできません。ただし、VPC用に新規に作成して同じ設定をすれば同じ動作をすることができます。また、VPCのELBは、複数のセキュリティグループを動的に設定することができます。EC2のELBがインターネットからのトラフィックに対するロードバランサーなのに対して、VPCのロードバランサーはインターネットとインターナルの2種類があり、VPC内のトラフィックをロードバランスすることもできます。VPCは高機能です。

キーペアを移行する

移行せずにそのまま使う事が出来ます。キーペアはEC2とVPCで同じものが使えます。

リザーブドインスタンスを移行する

なんと移行しても割引が適応されます。ただし、同じリージョン・同じAZ・同じOS・同じTypeが必要です。また、購入したのがEC2であれば、VPCのキャパシティ保証はしてくれません。同じくVPCで購入した場合、EC2のキャパシティ保証はしてくれません。どちらにせよ割引が適応されるのは嬉しい限りです。

RDSを移行する

移行することができます。まずはじめにRDSのスナップショットを作成します。次にこのスナップショットを基にVPC内のRDSインスタンスを作成します。この際に気をつける事は、内部IPアドレスが変わります。外部IPアドレスは付きません。EC2インスタンスは、起動時に外部IPアドレス、DNS名、内部IPアドレス、内部DNS名が自動で付与されますが、VPCインスタンスは、起動時に内部IPアドレスのみ付与され、しかも、IPアドレスを自分で指定することができます。気をつける事は、今のところVPC内でt1.microインスタンスを起動することはできません。また、VPC内でRDSを作成する際には注意が必要です。VPCでは各AZ内で複数のサブネットを作成できますので、MultiAZ時にどのサブネット間で連携するのか指定するためにDB Subnet Groupを作成する必要があります。VPC用の追加設定となります。あと、最近VPC内でリードレプリカにも対応しました。

IAMを移行する

移行せずにそのまま使う事ができます。IAMユーザはEC2とVPCを区別する必要はありません。

CloudWatchを移行する

移行せずにそのまま使う事ができます。ただし、監視対象のインタンスがEC2からVPCへ移行された場合、インスタンスIDが変わるはずですので再登録が必要になると思います。カスタムメトリクスで直打ちのID指定をしている場合には注意しましょう。EC2 Metadataを使っていればOK

CloudFormationを移行する

移行することができます。EC2用に作成したCloudFormationテンプレートが既にある場合には、VPC用に記述を追加・変更する必要があります。

Elastic MapReduce

移行することができます。ジョブフローをどこで実行するかだけの指定が変わるだけです。

Beanktalkを移行する

現時点で移行できません。

ElastiCacheを移行する

現時点で移行できません。

その他サービス

S3,CloudFront,SQS,SES,SNS,Route53,DynamoDB,Storage Gateway,SWF,CloudSearchはサービスとして独立していますので特に修正は必要ありません。

まとめ

EC2からVPCへの移行についていかがでしたか?当初はEC2にあってVPCに無い機能がたくさんあったのですが、最近はVPCにあってEC2に無い機能のほうが増えて来ました。VPCは仮想ネットワークを組むことができ、より柔軟に自社のイントラネットのような使い方ができます。AWSがお手軽仮想サーバサービスから本格派仮想サーバ+ネットワークサービスに変わって来たってことでしょうか。言い換えれば、プログラマー向けのサービスから、プログラマー+インフラエンジニアのサービスに変わって来たのかなと。ITエンジニアの分業の時代は終わりましたね。1人で数千台のサーバーを扱う魔法使いに憧れませんか?クラスメソッドでは、AmazonクラウドをLayer3からLayer7まで触りたいというエンジニアの方を募集しています!!っっw

参考資料

Amazon Virtual Private Cloud FAQ