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インスタンス起動
Step5 - アクセス
- 踏み台インスタンスからPrivateインスタンスへSSHできるよう、PC上でKey Pairを
ssh-add
しますssh-add -K Key Pair名
- PCから踏み台インスタンスへ
-A
オプション付きでSSHしますssh -A -i "Key Pair名" ec2-user@踏み台インスタンスのPublic Address
- 踏み台インスタンスからPrivateインスタンスへSSHします
ssh ec2-user@PrivateインスタンスのPrivate Address
後始末
- 不要になったらNAT gatewayを削除して、Elastic IPを開放することを忘れないようにしましょう