AWS-EC2にSSH接続してみた

「まんがでわかるLinux」にて、SSHについてのページがあったので、理解を深めるために

AWS-EC2にSSH接続を試みてみました。


# 開発環境

- AWS-EC2

# やったこと


1. AWSのアカウントを発行
2. AWS-EC2のインスタンスを起動するまで
3. SSH接続実行

## 1.AWSのアカウントを発行


AWS-EC2は無料枠があり、無料枠を超えなければ課金発生対象外ということで、アカウントを発行。

> EC2 は AWS 無料利用枠に含まれているので、無料で開始できます。これには、1 年間毎月 750 時間分の Linux および Windows の t2.micro インスタンス (t2.micro が利用できないリージョンでは t3.micro) が含まれています。無料利用枠内に抑えるには、EC2 マイクロインスタンスのみを使用してください。
> 

ちなみに、AWSの動画内では課金についての説明をしてる部分があるので、気になる方は[公式](https://aws.amazon.com/jp/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all#:~:text=%E3%81%94%E8%A6%A7%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82-,AWS%20%E7%84%A1%E6%96%99%E5%88%A9%E7%94%A8%E6%9E%A0%E3%81%AE%E8%A3%BD%E5%93%81%E3%81%AE%E8%A9%B3%E7%B4%B0%E3%81%AF%E3%81%93%E3%81%A1%E3%82%89,-AWS%20%E7%84%A1%E6%96%99%E5%88%A9%E7%94%A8)をチェック。

## 2.AWS-EC2のインスタンスを起動するまで

アカウントの発行が終わったので、いざEC2のインスタンスを立ち上げてみる。

![スクリーンショット 2023-10-13 9.19.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/7429b7f8-6987-252e-d41b-4bd9f2b4fb3b.png)


[こちら](https://www.sunnycloud.jp/column/20221031-01-2/#:~:text=ば嬉しいです。-,EC2インスタンスの概要,流れになっています。)の記事を参考にしながら、インスタンスの起動をしてみました。

### ステップ1:**アプリケーションおよび OS イメージ (Amazon マシンイメージ)**
---

最初から選択されているAmazon Linuxを利用。

![スクリーンショット 2023-10-13 9.48.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/2da5751f-d0a9-5f57-68d3-9a856260229d.png)


AMIという表記が出てきますが…

> Amazon マシンイメージ (AMI) は、AWS がサポートおよび管理するイメージで、インスタンスの起動に必要な情報を提供します。
> 

インスタンスを起動するのに、必要なマシンイメージのことみたい。

dockerなんかを触ってる人は、[AMI](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AMIs.html#:~:text=Amazon%20%E3%83%9E%E3%82%B7%E3%83%B3%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%20(AMI)%20%E3%81%AF%E3%80%81AWS%20%E3%81%8C%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%8A%E3%82%88%E3%81%B3%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%A7%E3%80%81%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%AE%E8%B5%B7%E5%8B%95%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E6%83%85%E5%A0%B1%E3%82%92%E6%8F%90%E4%BE%9B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82)についてイメージがしやすそう。


### ステップ2:**インスタンスタイプ**

---

**t2.micro**を選択。

![スクリーンショット 2023-10-13 9.50.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/edc2579f-325c-83d0-5802-baae9f19e16f.png)


### ステップ3:キーペア（ログイン）

---

デフォルトだと、キーペアがなしと表示されているので、ここで、「新しいキーペアの作成」を選択。

![スクリーンショット 2023-10-13 9.51.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/1d2adb40-e2ac-9cd5-9f59-3f1984fdd239.png)


選択した後の画面はこんな感じ。

![スクリーンショット 2023-10-13 9.33.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/578f7098-5399-5395-7097-83cb26be1d13.png)


キーペアを入力し、今回はSSHで接続をするため、.pemを使用。

ちなみに、.pemと.PuTTYの違いは以下らしい。

> OpenSSH で使用できる形式でプライベートキーを保存するには、[**pem**] を選択します。プライベートキーを PuTTY で使用できる形式で保存するには、[**ppk**] を選択します。
> 

※秘密鍵は自動でダウンロードされるので、ダウンロードファイル確認してみてください。隠れファイルとなっているので、[cmd + shift + .] で表示されるはず。（macの場合）

ダウンロード後、.ssh配下にファイルを移動し、EC2_01.pemというネームに変更。

### ステップ4:ネットワークの設定

---

この辺はデフォルトのままで。

![スクリーンショット 2023-10-13 9.56.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/a65deae6-8924-c907-52bf-739f7074f5cf.png)


### ステップ5:ストレージを設定

---

こちらも、特に設定などはいじらず。

![スクリーンショット 2023-10-13 9.58.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/6ccc1320-b674-c8d9-0700-d3055beb71cc.png)


概要で、全ての工程を確認して問題なければ、インスタンスが起動される。

![スクリーンショット 2023-10-13 10.05.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/0954b59e-8f7a-f9d9-07ad-508c8d10f852.png)

## 3.SSH接続実行


インスタンス作成後、下記画面が出るので、インスタンスIDをクリック。

![スクリーンショット 2023-10-13 10.20.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/8658b545-372e-b37a-ccf0-fc9666effee1.png)


インスタンスIDをクリック後、今回作成したインスタンスの情報がたくさん出てきます。

ここでは、接続ボタンを押します。

![スクリーンショット 2023-10-14 22.28.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/e1277d55-341a-c99d-8b23-ba99c3290c02.png)


「SSHクライアント」をクリックすると、SSH接続を行う手順が記載あるので、その通りに実行していく。

![スクリーンショット 2023-10-14 22.33.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/d6a1dbb4-885d-c89c-a087-36037f2688aa.png)


今回は、わかりやすくするために秘密鍵のファイル名を変更しており、400の権限を与えることで、読み込み限定にしている。

```
chomod 400 EC2_01.pem
```

インスタンスのパブリックDNSを使用して、インスタンスに接続。

```
ssh -i ~/.ssh/EC2_01.pem ec2-user@{EC2-01のIP}
```

※秘密鍵を.ssh配下に移動させた後、秘密鍵から公開鍵を作成して、公開鍵を公開鍵用のファイル`~/.ssh/authorized_keys`に記述している。（コマンドの解説は省略）

※以下エラーが出た場合、[こちらの記事を参考](https://qiita.com/KazukiITWeb1/items/14fe553cf799813b0c2f)にしてみてください。
エラーが出た時の記事をまとめました。

- `WARNING: UNPROTECTED PRIVATE KEY FILE!`
- `Permission denied (publickey,gssapi-keyex,gssapi-with-mic).`

SSH接続成功！！！

![スクリーンショット 2023-10-14 22.52.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2597943/22124714-ef40-37ce-81a6-0275b39e6fa9.png)


これで、AWS-EC2のサーバー操作を自分のPC環境で行えるようになりました！！！

## 参考

https://kojichu.photoruction.com/entry/adcale20221208

##  参考図書
https://www.amazon.co.jp/IT%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A21%E5%B9%B4%E7%94%9F%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE-%E3%81%BE%E3%82%93%E3%81%8C%E3%81%A7%E3%82%8F%E3%81%8B%E3%82%8BLinux-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89-%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E5%9F%BA%E7%A4%8E%E7%B7%A8-Piro/dp/4296112155