血と汗となみだを流す

クラウドエンジニアになるための修業の場

多分日刊IT問題(Private Subnetからインターネットへの通信)

問題

  • VPC内に図のような構成を作り、EC2(bastion)経由でEC2(application)にSSHログインし、yum installを行ったところインターネットとの通信ができませんでした。
  • EC2(application)からインターネットに通信するために修正が必要な箇所はどれか?!

構成図

f:id:Anorlondo448:20180622054125p:plain

選択肢

  1. InternetGateway
  2. EC2(bastion)
  3. ELB(CLB)
  4. NatGateway

解答

  • 修正が必要な箇所は「4.NatGateway」になります。

解説

  • 正解の構成は「NatGatewayをPublic Subnetに配置する」形になります。
  • VPCの外(インターネット)と通信するためにはInternetGatewayを経由する必要があります。
  • 構成図を見ると、EC2(application)はPrivate Subnetにいるため、InternetGatewayと直接通信することができません。
    • (Route Tableの通信先にInternetGatewayが指定されているSubnetをPublic Subnetと呼びます)
  • そのためPrivate Subnet外に通信する方法としてNatGatewayを経由する必要があります。
  • ですが、この構成図だとNatGateway自体もPrivate SubnetにいるためPrivate Subnetから外にでれません。
  • NatGatewayをPublic Subnetに配置し、Private SubnetのRoute TableにNatGatewayへの経路を指定するとEC2(application)→NatGateway→InternetGatewayという経路でインターネットへアクセスすることが可能になります。
    • (NatGatewayはPublic SunetのRoute Tableを見てInternetGatewayを外部への通信先として認識する)
  • NatGatewayをつい通信元と同じPrivate Subnetに置いてしまいがちですが、NatGatewayはPublic Subnetに配置しましょう!

構成図(正解)

f:id:Anorlondo448:20180622053955p:plain

まとめ

  • ということで、今回も俺(とチームメンバーほぼ全員)がハマったポイントを問題にさせて頂きました。
  • みなさん俺達と同じ落とし穴にはこれでもう落ちませんね!

参考リンク