AWSのパブリックサブネットに踏み台サーバーを構築し、プライベートサブネットのサーバーへSSHする②（踏み台Linuxサーバー構築）

前回はVPCにプライベートサブネット・パブリックサブネット・NATGatewayを構築する手順について書きました。今回はパブリックサブネットに踏み台用のLinuxサーバーを構築し、パブリックIPアドレスで接続するまでの手順をご紹介します。

# 「AWSのパブリックサブネットに踏み台サーバーを構築し、プライベートサブネットのサーバーへSSHする」の手順記事まとめ
①[VPC・サブネット作成](https://qiita.com/tonkatsu_oishi/items/ee5d7f64a43ba7deb671)
②[踏み台Linuxサーバー構築](https://qiita.com/tonkatsu_oishi/items/aabddfa6b54f1a29d4af)←今ここ
③[踏み台経由のSSH接続](https://qiita.com/tonkatsu_oishi/items/9ffdd560624f25dc7fa9)
④[Windowsnの踏み台サーバー作成](https://qiita.com/tonkatsu_oishi/items/80d86fa0145e37896147)
⑤[プライベートサブネット上のLinuxサーバーをWEBサーバー化しWindowサーバーから接続確認をする](https://qiita.com/tonkatsu_oishi/items/27bec9679b247a035757)
※関連記事
[Route53でPrivateHostedZoneを作成しVPC内の名前解決を行う](https://qiita.com/tonkatsu_oishi/items/26f121d25db5c9fb7163)

# 構成の確認

前回構築したパブリックサブネットに、サーバー（EC2）を1台構築します。今回はAmazonLinux2023を使用してサーバーを構築します。サーバーにはセキュリティグループを設定し、インバウンドルールにユーザーのパブリックIPアドレスを設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/f75beb01-465e-e8d3-4b43-86970f3df4e7.png)

サーバーへの接続はインターネットゲートウェイ経由で行います。サーバーへの接続はTeratermを利用します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/85344026-df90-89e4-46ea-6c82ef883f90.png)

# 用語の確認
構成を確認する前に、簡単に用語を確認しておきます。
構築手順だけ知りたい方はこの章は読み飛ばして「EC2（サーバー）の構築」にお進みください。

### EC2
EC2はAmazon Elastic Compute Cloudの略です。AWS上で利用できる仮想サーバーのサービスです。
参考：[EC2とは](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/concepts.html)

### セキュリティグループ
セキュリティグループは、VPC内で利用できるステートフルの仮想ファイアウォールです。ステートフルの為、例えばインバウンドルールで許可したIPアドレスからのインバウンド通信については、戻りのアウトアウトバウンド通信も自動で許可されます。
参考：[セキュリティグループ](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/security-groups.html)

# EC2（サーバー）の構築
EC2のサービス画面に移動します。
左メニューから「インスタンス」を押下します。
「インスタンスを起動」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/0b132b15-27f9-e8db-78cb-12f4a2a61c64.png)

EC2の構築画面が表示されます。
EC2構築画面では、サーバー本体とEBS（ディスク）に一気にタグを設定します。「名前とタグ」セクションの「さらにタグを追加」を押下します。
タグと「キー」「値」を入力します。「リソースタイプ」のプルダウンメニューから「インスタンス」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/027c831c-f800-5648-49e6-e6538d8d0b1c.png)

「アプリケーションおよびOSイメージ」のセクションに移動します。
「クイックスタート」のタブからOSを選択します。今回はAmazonLinuxを選択します。
Amazonマシンイメージ（AMI）のプルダウンメニューから「AmazonLiux2023AMI」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/9ae91aeb-4976-21bf-c50c-8c3f4330ad8f.png)

「インスタンスタイプ」のプルダウンメニューからインスタンスタイプを選択します。インスタンスタイプを指定することで、サーバーのメモリ・CPU・スペックが決まります。
（参考：[インスタンスタイプ](https://aws.amazon.com/jp/ec2/instance-types/)）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/a5d62b5c-5c99-4272-caef-93fbab1986a1.png)

今回はインスタンスタイプは「t2.micro」を指定します。
「キーペア」のセクションに移動します。「新しいキーペアの作成」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/d83f987b-c33f-5213-c06e-0296aa22fd63.png)

キーペア作成画面を表示されます。「キーペア名」のテキストボックスにキーペア名を指定します。「キーペアのタイプ」には「ED25519」を指定し、「キーペアを作成」を押下します。
（※AmazonLinux2023を構築する際に「RSA」を指定した場合は、使用するターミナルのバージョンによっては接続エラーが発生します）
「キーペアを作成」を押下するとキーペアが作成され、ダウンロードされます。
キーペアをなくすとサーバーへ接続できなくなる為、新規作成・ダウンロードしたキーペアは大事に保管してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/745d55f0-2afc-8737-c4db-e6b54ab1a754.png)

キーペアのダウンロード・保存完了後、再度AWSマネジメントコンソールに戻ります。
EC2構築画面の「ネットワーク設定」セクションに移動します。「編集」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/5c275b63-5b37-6067-d78d-baec18ea72c6.png)

ネットワーク設定が編集できるようになります。「VPC」のプルダウンメニューから、前回作成したVPC（HTTPS_DEMO_VPC）を指定します。「サブネット」のプルダウンメニューから、前回作成したサブネット（HTTPS_DEMO_SUB_PUB1a）を指定します。「パブリックIPの自動割り当て」を「有効化」に指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/d5ced4fe-2a8e-b6fe-4990-bd7b3907da27.png)


ファイアウォール（セキュリティグループ）のセクションに移動します。
今回はセキュリティグループを新規策際のため、「セキュリティグループを作成する」を選択します。「セキュリティグループ名」のテキストボックスにセキュリティグループ名を入力します。今回は「HTTPS_DEMO_SG」と入力しました。「説明」のテキストボックスにセキュリティグループの説明を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/de6e12cc-4778-fa5e-c054-7ab08c12ebd5.png)
インバウンドルールを入力します。今回はLinuxサーバーを立てるため、「タイプ」に「ssh」を指定します。「リソースタイプ」に「自分のIP」を指定します。自分のIPを指定すると、利用しているグローバルIPアドレスが設定されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/25ad9b08-17fc-7d76-5173-fbcc7143428e.png)

「高度なネットワーク設定」のメニューを展開します。
「プライマリIP」のテキストボックスにサーバーのプライベートIPアドレスを指定します。今回は10.0.0.0/24のサブネットにサーバーを構築するため、「プライベートIP」には「10.0.0.4」を指定します。プライマリIPは空欄のままで作成することもできます。プライマリIPを指定せずインスタンスを作成した場合は、サブネットのIPアドレス範囲から空いているIPがランダムで振られます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/45231458-065f-4aca-17d3-6646c957a741.png)

「ストレージを設定」のセクションに移動します。「アドバンスド」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/a7052f3a-61bf-e14e-28de-e734f777e691.png)

「ボリュームタイプ」のプルダウンメニューから「gp3」を指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/c9129b48-ef6e-209a-ac03-7daaaa0e8823.png)

「高度な詳細」に移動します。
高度な詳細セクションを展開すると、サーバーに指定する権限（IAMロール）やインスタンスの自動復旧の設定など、細かい設定が行えます。
今回は検証環境のため、設定は変更せず「インスタンスを起動」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/b3892f31-ec41-9c1a-6aa2-5671a69d33c7.png)

「インスタンスが起動しています」と表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/8110aa64-1155-d3d2-642c-443225b2556a.png)

「成功」が表示されます。「インスタンスID」のリンクを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/03430d89-359c-ed3a-cf9b-3ad1491dd5a7.png)

インスタンス一覧が表示されます。「ステータスチェック」の状態が「実行中」となれば、接続可能の状態となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/ce151871-33f7-f5e0-686a-5627d746abf3.png)

該当インスタンスのチェックボックスにチェックを入れます。
コンソール下部にインスタンスの詳細画面が表示されます。「パブリックIPアドレス」の欄に表示されるIPアドレスを控えておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/217647b2-c937-fa5a-f206-bdbd1a593d9a.png)

# 踏み台サーバーへの接続
EC2（サーバー）の構築が完了したら、実際にサーバーへ接続してみます。
WindowsPCからLinuxサーバーへ接続する場合は、[Teraterm](https://ttssh2.osdn.jp/)などのターミナルソフトを使用します。Teratermをインストールし、起動します。

画像はTeraterm4の日本語版をインストールし、起動した状態です。
Teratermを起動すると、「新しい接続」のウィンドウが立ち上がります。
「ホスト」のテキストボックスに先ほど構築した踏み台サーバーのパブリックIPアドレスを入力し、「OK」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/ce467971-fcde-5d7f-1f9b-3161bb045d32.png)

「認証が必要です」と表示されます。
今回はAmazonLinuxでサーバーを構築しています。
AmazonLinuxの初期ユーザーはec2-userとなるため、「ユーザー名」には「ec2-user」と入力します。（参考：[Linux インスタンスのユーザーアカウントを管理する](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/managing-users.html)）
「認証方式」のセクションで「RSA/DSA/ECDSA/ED25519鍵を使う」のチェックボックスにチェックを入れます。
「秘密鍵」のプルダウンメニューから、先ほど保管したEC2のキーペアを指定します。
ユーザー名・秘密鍵の指定が完了したら、「OK」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/a6cca91e-0a4d-5b4e-4e4a-1f66ffb20dbb.png)

これで踏み台サーバーへのログインが完了しました。
プライベートサブネットにサーバーが存在する場合は、この踏み台サーバーからさらにSSHを使用して接続することとなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/982b44a8-9648-2aa2-fbb6-53fc0c0634d4.png)

ここまでお読みいただきありがとうございました。
[次回](https://qiita.com/tonkatsu_oishi/items/9ffdd560624f25dc7fa9)
はプライベートにEC2をもう一台構築し、踏み台サーバー経由でSSH接続してみます。