publicIP、publicDNS、EIPの挙動
今更ながら、VPC内におけるpublicIP、publicDNS、EIPの挙動をメモ。
なんでこのテーマかと言うと、
http://www.slideshare.net/AmazonWebServicesJapan/vp-cby-default20130404public
の8ページ目の「動的割当されるPublic IPアドレスが利用できる唯一のSubnet」が
嘘くさいと思ったからです。
あと、いつの間にかNATインスタンスが要らなくなったなどの仕様変更されていたので
軽く検証してみました。
publicIP、DNSについて
1. 明示的に作成したサブネット内では、publicIPアドレスは付与されないので注意。(ほんと?)
- publicIPは付与される。ので資料は嘘くさい。
- 調べたところ、資料公開後に仕様変更され、publicIP、DNSは振られるになった。
- ただし、DNS resolution: yes、DNS hostnames: yesの場合に限る。(デフォルトではない)
- インスタンス作成時に、publicIPアサインにチェックしないと付与されない。
- yes,yesの場合:EIP付与すると、自動でアサインされたpublicIPとDNSは、EIPに変わる。
- yes,noの場合 :EIP付与すると、publicIPがEIPになる。(DNSは元々無い)
2. ルーティングをIGWに向けてないサブネットにインスタンスにも、publicIPが振られるのか。
- DNS resolution: yes、DNS hostnames: yesの場合 は振られる。
- EIP付与時 も振られる。
- 結果、ルーティングまでは見ていない。
- IGWへ向けてない為、インターネットとの通信は出来ない。public要らない・・・
インターネットとの通信について
1. 外への通信はEIPがあればNATは不要でOKか。EIPがない場合はNATは必須になる?
2. publicIPアドレスはVPC内でも付与されるので、NATなしでも良くなったらしい。(ほんと?)
3. publicサブネット(IGW)、privateサブネット(localのみ)両方で試す。
- publicは、publicIP/DNSがあればインターネットとの通信可能。なので、NAT不要。
- privateは、ルーティングがIGW向いてないので、publicIP/DNSがあっても出れない。
- EIP有り&ルーティングIGWは、インターネットへの通信可。
- EIP有り&ルーティングIGW無しは、インターネットへの通信不可。(Outbound)
- EIP有り&ルーティングIGW無しは、インターネットからの通信サーバまで到達してしまう。通信はSYN_RECVで止まるが受付けている以上、セキュリアではないと言える。DDosとか。(Inbound)
- セキュリティグループでInboudを制御すれば回避可能。
- EIP無し、またはpublicIP無しは、ルーティングがIGW向いていてもインターネットへの通信不可。(当然)
無駄にpublicにさらす必要は無いので、やっぱNATインスタンスはあったほうがいいんじゃね!?
yumはいいとして、外部へのAIPコールするWebサーバとかはNATの冗長化か、晒すかかな・・
・参考
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-instance-addressing.html
以上です。