用件
- 1つのAZにパブリックサブネット、もう1つのAZにプライベートサブネットがある
- それぞれのサブネットにEC2インスタンスがある
- パブリックサブネットのEC2にはインターネット経由でSSH接続できる
- パブリックサブネットのEC2にNginxをインストールして、HTTPでアクセスできる
- パブリックサブネットのEC2を踏み台にして、プライベートサブネットにSSH接続できる
使用するサービスや用語、基本概念について
以下の記事を参照。
AWSのVPCとEC2周りのざっくりまとめ - Qiita
作成手順
VPCを作成
サブネットを作成
パブリックにしたいサブネットに自動割り当てパブリックIPを設定
ルートテーブルを作成
VPC作成時に自動で作成されるデフォルトのルートテーブルの名前をd0ne1s-qiita-route-table-for-public
に変更
インターネットゲートウェイを作成
パブリックサブネット用のルートテーブルを編集
作成したIGWを、パブリックサブネット用のルートテーブルの送信先に追加
ルートテーブルとサブネットを関連付ける
IGWへのルートがあるルートテーブル
とパブリックにしたいサブネット
の関連づけ
IGWへのルートのないルートテーブル
と「プライベートにしたいサブネット
の関連づけ
ECインスタンスの作成
パブリックサブネットにEC2インスタンスを作成
プライベートサブネットにEC2インスタンスを作成
パブリックサブネットのEC2にSSHでアクセス
$ sudo chmod 600 ~/.ssh/aws/qiita-d0ne1s.pem
$ ssh -i ~/.ssh/aws/qiita-d0ne1s.pem ec2-user@13.231.189.xxx
パブリックサブネットのEC2にhttpでアクセス
Nginxをインストール
[ec2-user@ip-192-168-0-108 ~]$ sudo amazon-linux-extras install -y nginx1 #nginxをインストール
[ec2-user@ip-192-168-0-108 ~]$ sudo systemctl enable nginx #nginxの自動起動設定
[ec2-user@ip-192-168-0-108 ~]$ sudo systemctl start nginx #nginxを起動
http://13.231.189.xxx/ にアクセスしてnginxのwelcomeページが表示されれば成功
プライベートサブネットのEC2にsshでアクセス
パブリックサブネットのEC2インスタンスを踏み台にしてアクセスする。
まずはローカルからパブリックサブネットのEC2インスタンスにsshの秘密鍵を転送。
$ scp -i ~/.ssh/aws/qiita-d0ne1s.pem ~/.ssh/aws/qiita-d0ne1s.pem ec2-user@13.231.189.xxx:~/.ssh
プライベートサブネットのEC2のプライベートIPアドレスを確認
踏み台サーバーにssh接続後、先ほど転送した秘密鍵を使い、プライベートサブネットのEC2にssh接続できることを確認。
$ ssh -i ~/.ssh/aws/qiita-d0ne1s.pem ec2-user@13.231.189.xxx
[ec2-user@ip-192-168-0-108 ~]$ ssh -i ~/.ssh/qiita-d0ne1s.pem ec2-user@192.168.1.193
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-192-168-1-193 ~] # プロンプトのIPアドレスが変化
終わりです。おつかれさまでした。