今日発表されたClassicLinkを使うことで、EC2-ClassicのインスタンスからVPCのリソースへ通信したり、VPCのセキュリティグループを利用することができるようになりました。
ClassicLink自体は無料です(うれしい)
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html
https://aws.amazon.com/jp/blogs/aws/classiclink-private-communication-between-classic-ec2-instances-vpc-resources/
いままでの問題
VPCの中で起動していないEC2(EC2-Classic)は、グローバルIPなどを使ってVPCのリソースと通信しなければなりませんでした。
しかし、それではインスタンス間の高いスループットや低いレイテンシーを享受できませんし、帯域課金や望ましくないセキュリティへの影響もありました。
ClassicLinkは上記問題に対する新しいアプローチを提供してくれる新機能ですね。
やってみた
ClassicLinkは、VPCごとに有効にできるみたいですが、同じリージョンのVPCに限定されるみたいですね。
既存VPCの初期設定デフォルトは、Disabledです。
なので、VPCを選択して右クリックから、EnableClassicLinkを選択。
Yes, Enableで有効にします。
次に、EC2-Classicインスタンスを右クリックして、ClassicLink → Link to VPCを選択。
VPCを選ぶと、VPCのセキュリティグループ一覧が表示されますので、選択してLink to VPCを押します。
これでClassicLinkの設定はおしまい。
次は、インスタンスにセキュリティグループを設定してプライベートIPで疎通させてみます。
疎通テスト
通信の確認として、EC2-ClassicのインスタンスのClassicLinkにはdefault VPCのセキュリティグループを設定し、VPC側のインスタンスにも同様のセキュリティグループを設定します。
セキュリティグループはこんなかんじです。
これで、同じセキュリティグループに属しているインスタンスであれば通信できる設定になります。
AWSマネジメントコンソールから確認すると、EC2-Classicのインスタンスには、ClassicLinkの項目に、先ほど設定したセキュリティグループが付いていることが確認できます。
通常のセキュリティグループとは別の所に表示されるようです。
EC2-Classicにログインして、VPC側のインスタンスが持つプライベートIPにpingを飛ばすと返ってきた!
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/
20 package(s) needed for security, out of 44 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-166-24-250 ~]$ ping 10.0.0.91
PING 10.0.0.91 (10.0.0.91) 56(84) bytes of data.
64 bytes from 10.0.0.91: icmp_seq=1 ttl=64 time=0.691 ms
64 bytes from 10.0.0.91: icmp_seq=2 ttl=64 time=0.484 ms
^C
--- 10.0.0.91 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1474ms
rtt min/avg/max/mdev = 0.484/0.587/0.691/0.106 ms
まとめ
最近めっきり出番の減ったEC2-Classicですが、この機能によって通信が柔軟になったので利用出番が増えるかもしれませんね。