• natインスタンスの冗長化

    こんにちは。プラットフォームの小宮です。

    他を冗長化してもnatインスタンスを冗長化してないと、
    プライベートセグメントでHAしてるサーバ達がAWSのAPIサーバと通信できなくなって詰むなあと思いまして、
    先人の皆さまの記事を参考にして以下のとおりにしました。

    **・なんとなくどうするか検討
    **

    AmazonLinuxで作っちゃったので、たぶんHeartbeatとか入れづらいし、そもそもheartbaet使う必要ない気がする。
    待機系から監視してaws的にルーティングテーブル挿げ替えるだけでよさそう。

    待機系natインスタンスについて、
     作成しておかないと作成と起動とルーティングテーブル作るところもやらないといけないので切替時間が長くなる。
     インスタンス代がかかるけど起動もしたままがいいと思われ。

    **・とりあえず既存のAmazonLinuxのNATインスタンスの設定をいじるところから
    **
    sudoできるようにしてみる

    # usermod -G wheel user-op
    # id user-op
    uid=500(user-op) gid=501(user-op) groups=501(user-op),10(wheel)
    # visudo
    %wheel  ALL=(ALL)       ALL
    

    コメントはずす。
    他のインスタンスから渡ってsudoできるか確認する

    あとnatインスタンスにpythonのツール入れておく

    メール送信も設定
    AmazonLinuxではsendmailが動いてる模様だった。

    vi /etc/mail/submit.cf
    D{MTAHost}[172.18.10.22]
    Djnat01.hoge.com    ※nat02はそう変える
    service sendmail stop
    chkconfig sendmail off
    yum install mailx
    echo hoge |mail -s testkomi komiyay@xxxxx
    

    ロケールを合わせる

    ...
  • 裏セグメントからyumやwget等したい場合の設定

     

    裏セグメントのホスト(たとえばVPCのEIPついてないのとかDBやNASなど裏においときたいやつ) から名前解決とかメールとかyumとかwgetとか時刻同期とかメールしたい! という場合の設定についてざっくりまとめさせていただきます。

    とりあえず2パターンあります。 NATする(AWSの場合NATインスタンスを使う)パターンと、 グローバル通信できる管理サーバにソフトウェアを入れて解決するパターン。

     

    ★NATする(AWSの場合NATインスタンスを使う)パターン

    db側はInternetGatewayつけてなくてパブリックでなくローカルなルーティングな場合、 名前解決をはじめ外に出られないです。(※) NATインスタンスを作るのも勿体ないと、複数NICがついたwebをnat化しようとしたところ、 マルチインタフェースなインスタンスはNATの出口に出来ない模様でした。 (※)最近新しくとったアカウントはVPCオンリーになっていてそちらだとグローバルIPがどんどん勝手に振られるようです。。(EIPつけざるをえない仕様)

    NATインスタンス作成方法は以下URLから Amazon VPCトレーニング-NATインスタンスの作成方法 VPC詳細 -ほぼ週刊AWSマイスターシリーズ第7回- Amazon VPCでNATを使ってPublic SubnetとPrivate Subnetを分ける

    一番上のスライドのとおりでnatインスタンスを作成可能。 ざっくりいうと、 VPCサブネットをつくり、 “ami-vpc-nat"AMIでNATインスタンスを作成し、 NATインスタンスの"Change Source/DestCheck"をDisableにし、 NATインスタンスにEIPをアソシエートし、 PublicSubnetのRouterTableにNATインスタンスのIDを追加し、 必要に応じてNATインスタンスのSecurityGroupを設定する

    そのほか、一般的なルータ化設定方法と同様に、 インスタンス作成後にiptablesでnatのルール設定が必要になる模様。

    /sbin/iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/16 -j MASQUERADE
    service iptables save
    iptables --list -t nat
    

    上記スライドのとおりNATインスタンスをデフォルトゲートウェイにするルーティング設定も必要 forwardingの設定も必要

    ...