AWSでEC2インスタンスを立てて、SSHで接続してみる
はじめに
本記事ではAWSのマネージメントコンソール(通称マネコン)から、EC2インスタンスを立てて、SSHで接続するところまでを実施します。
また、12ヶ月無料利用枠を意識して構築を行います。
この記事でやること
- VPCと関連リソースの作成
- EC2インスタンスの作成
(セキュリティーグループの作成) - EC2インスタンスにSSHで接続
今回実現する構成
構成図を描いてみました(Draw.ioを利用してみました)(練習が必要ですね)
こんな感じを、目指していきます。
用語説明
- VPC
Virtual Private Cloudの略。
論理的に隔離されている定義済みの仮想ネットワーク内で AWS リソースを起動できます。
というとなんのことやらですが、詰まるところ自分専用のクラウドの空間です。
AWSを地球だとすると、国みたいな感じです。 - サブネット
大規模なネットワークを分割して作成した小さなネットワークです。
先ほどと同じ例えをすると、都道府県のようなものです。 - EC2
Elastic Compute Cloudの略です。ECC、C2つでEC2ですね。
仮想サーバーのことです。
あえて例えるなら、家、とかでしょうか。 - ルートテーブル
ネットワークトラフィックの経路を判断するもの、でしょうか。
例えるなら、、、道路交通整理の人?(?)
このぐらいにしておきます。
使用端末
- Macbook Air M1,2020
- チップ Apple M1
- メモリ 8GB
- OS macOS Sonoma バージョン14.6.1
VPCと関連リソースの作成
この項では、VPC、subnet、ルートテーブル、Internet Gate Wayを作成します。
デフォルトでも環境は用意されていますが、せっかくなので作成していきます。
1.画面右上のリージョンが「東京」になっていることを確認します。
2.VPCダッシュボードを開いたら、「VPCを作成」を押下します。
3.「名前タグの自動生成」の入力欄に使用したい名前を入力し、他はデフォルトのまま「VPCを作成」を押下します。
※確認して違っていたら、画像と合わせるようにしてください。
- 全ての項目が成功になったことを確認してから「VPCを表示」を押下します。
※ちなみに、成功になるまでめちゃくちゃ早いです。
5.VPCとその関連リソースが作成されていることを確認します。
EC2インスタンスの作成
EC2インスタンスを入れるための箱が完成したので、次はEC2インスタンスを作成していきます。
- 左上の検索窓にEC2と入力して、EC2のサービスを押下します。
- EC2のダッシュボード内の「インスタンスを起動」を押下します。
3.インスタンスの名前を入力します。
※今回はtestというインスタンス名にしていますが、任意の名前をつけることができます。
4.使用したいAMIを選択します。
※今回はデフォルトのAmazon Linux 2023を使用します。
初めてAWSを触った時TeratermでAmazon Linux 2023に入ろうとしたら、
入れないみたいなことがあったことを記憶してますが、今はもういけるのかしら。。。
(本当に新人の頃の話なので、具体的な事象は忘れた)
5.インスタンスタイプを選択します。
6.キーペアを作成します。
新しいキーペアの作成を押下します。
使用したいキーペア名を入力して、「キーペアを作成」を押下します。
※今回はtestという名前で作成しています
7.ネットワーク設定を行います(左上の「編集」を押下すると設定変更できます)
- VPCは先ほど作成したものを選択します。
- サブネットはPublicサブネットを選択します。
- パブリックIPの割り当てで「有効化」を選択します。
8.セキュリティグループを作成します。
- セキュリティグループ名と説明を入力します。
- 以下のようにインバウンドルールの設定をします。
- タイプ・・・SSH
- ソースタイプ・・・自分のIP
9.ストレージの設定は、今回はデフォルトのままで進みます。
10.内容を確認して問題なければ「インスタンスを起動」を押下します。
11.「すべてのインスタンスを表示」を押下します。
12.先ほど作成したインスタンスが¥のステータスが「実行中」となっていることを確認します。
※表示されない場合は更新ボタンを押してみてください。
これで、EC2インスタンスの起動は完了です。
EC2インスタンスにSSH接続する
※今回の使用端末はMacなので、ターミナルから接続する際の方法を記載します。
- 対象のインスタンスのチェックボックスにチェックを入れ、「接続」を押下します。
2.ページ内に記載された以下のコマンドをターミナル上で記載します。
chmod 400 キーペア名
ssh -i "キーペア名" ec2-user@ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com
- 鍵の権限を変更
※一部個人情報等あるので、コマンドの結果は少しだけいじっています。
% ls -l ~/.ssh/
total 24
-rw------- 1 11 28 17:11 known_hosts
-rw------- 1 11 28 17:10 known_hosts.old
-rw-r--r--@ 1 11 28 17:36 test.pem
%
% chmod 400 ~/.ssh/test.pem
%
% ls -l ~/.ssh/
total 24
-rw------- 1 11 28 17:11 known_hosts
-rw------- 1 11 28 17:10 known_hosts.old
-r-------- 1 1678 11 28 17:36 test.pem
- SSH接続
% ssh -i "~/.ssh/test.pem" ec2-user@ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com
Warning: Identity file test.pem not accessible: No such file or directory.
The authenticity of host 'ec2-user@ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com (xx.xx.xx.xx)' can't be established.
ED25519 key fingerprint is SHA256:nJpEzVaHlTotxlXfLfg9dXloD9RtImfmvURRuJIbKcI.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes←入力
, #_
~\_ ####_ Amazon Linux 2023
~~ \_#####\
~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
鳥さんが出てくれば、接続成功です。
終わりに
今回は、EC2インスタンスを作成して自端末からSSH接続するところまでをやってみました。
私がエンジニアにキャリアチェンジして最初の研修の中でも本当にとっかかりの部分が今回のような「EC2を立ててSSh接続する」というものだったのですが、一年越しに改めてやってみると、簡単にできて成長したなあという気持ちです。
今後はもっと複雑な構成の構築もやっていこうと思います。
おしまい。
Discussion