Amazon VPC編~Natインスタンスについてパート④~

Pocket

こんにちは! JQです。

前回は『Amazon VPC編~Natインスタンスパート③~』ということで、テンプレートを利用せずにNatインスタンス立ち上げるまでをお話しました。

今回は『Amazon VPC編~Natインスタンスについてパート④~』と題して、
Natインスタンスの切替を試してみたいと思います。

それでは実際に、VPCのNatインスタンスの切替を試していきたいと思います。

前回に引き続き、以下の図のような簡単な冗長化を試してみます。

20130502_01_01

今回はスクリプトを利用してRouteTableを切り替えてみます。

1.NatインスタンスにAPIをインストール

まずはNatインスタンス用のSecurityGroupを変更してアクセス出来るようにします。

20130502_01_02

NatインスタンスはAmazonLinuxなので、デフォルトでAWS API Toolsがインストールされていますが、
Versionが古いためアップデートをかけます。

NatインスタンスでAPIを利用できるように各種設定をしていきます。
以下の必要な変数を.bash_profileに記述します。

sourceコマンド等で反映します。

下記コマンドなどで確認しましょう。

2.切替用のRouteTablesの作成

CreateRouteTableで切替用のRouteTablesを作成します。

20130502_01_03

Failover用のNatインスタンスを設定します。

20130502_01_04

3. RouteTableの切替シェルスクリプトを構築

下記はmainのRouteTableを切り替える単純なスクリプトになります。
describeでassociation.mainで絞り込んで取得した情報の「route_table_association_id」と「route_table_id」をROUTETABLE・ASSOCIATIONの変数に格納して、
現状のroute_table_idでは無い方に切り替えます。

4.切替確認

それでは実際に切替を試してみましょう。
先ずは下記コマンドで通信をしている状況を確認します。
※8.8.8.8はGoogleDNSになります。

通信をしている途中で現在のRouteTableのNatインスタンスの宛先を削除します。

20130502_01_05

pingがうまくいかなくなった事が確認出来たら、上記スクリプトを実行してみます。

スクリプトがうまくいった場合はpingが再度成功していると思います!

いかがでしたでしょうか?

実際にはNatインスタンスの監視や別Zoneに置くべき等、設計が必要な箇所があるかと思います。
今回の作業でイメージだけでも掴んでもらえればと思います!

次回は『Amazon EMR編~ElasticMapReduceの使い方パート①~』ということで、EMRを試してみたいと思います。お楽しみに!