プログラミング初心者がアーキテクトっぽく語る

見苦しい記事も多数あるとは思いますが訂正しつつブログと共に成長していければと思います

private networkのEC2インスタンスに踏み台インスタンス経由でアクセスする

Private NetworkはInternet Gatewayがなく、Public IPアドレス割当もない、安全なSubnetです。

外部からのアクセスが必要ないEC2インスタンスはPrivate Networkに構築することが一般的です。

それらEC2インスタンスに管理上の理由で外部からアクセスしたい場合は踏み台インスタンス経由でアクセスします。

今回はPrivate Networkに構築したEC2インスタンスに踏み台インスタンスからSSH接続する手順を紹介します。


Step1 - Private Subnet作成

  • まずはPrivate Subnetを作成します
  • VPC」を開き、画面左メニューから「Subnets」を選択します
  • 既存のIPv4 CIDRをチェックして、空いているCIDRブロックを確認します
  • 「Create subnet」を押下してSubnetを作成します

  • 適切なVPCを選択します
    • 例ではDefault VPCを選択しています
  • Subnet nameを記入します
    • VPC名とAZ名を含めておくと便利です
  • AZとCIDR blockを記入します
    • 例では"us-east-1a"、172.31.96.0/20を記入しています

--

Step2 - NAT Gateway作成(Optional)

  • 次にPrivateインスタンス外部通信用(yum/apt-get等)のNAT Gatewayを作成します
  • 画面左メニューから「NAT gateways」を選択し、「Create NAT gateway」を押下します
  • 「Name」を記入します
  • 「Subnet」はPublic Subnetを選択します
  • 「Connectivity Type」はPublicです
  • Elastic IPを割り当ててください


Step3 - Route Table作成

  • Private Network用のRoute Tableを作成します
  • 画面左メニューから「Route tables」を選択し、「Create route table」を押下します
  • 「Name」と「VPC」を記入して「Create route table」を押下します

  • 「Routes」タブで「Edit routes」を選択します

  • 「Add route」を選択してNAT Gatewayへのルートを追加します

  • 最後に作成したRoute TableをPrivate Subnetに紐付けます
  • 「Subnet associations」タブで「Edit subnet associations」を選択します

  • private networkを選びます


Step4 - EC2インスタンス起動

  • 踏み台用のEC2インスタンスを起動します
    • SubnetはPublic Networkを選択します
    • Security GroupのInbound RuleではSSHを許可します
    • Security GroupのOutbound RuleでSSHを許可します
  • Private NetoworkにEC2インスタンスを起動します
    • SubnetはPrivate Networkを選択します
    • Security GroupのInbound RuleとOutbound RuleではSSHを許可します
  • 具体的な手順についてはこちらの過去記事を参照してください

architecting.hateblo.jp


Step5 - アクセス


後始末

  • 不要になったらNAT gatewayを削除して、Elastic IPを開放することを忘れないようにしましょう