AWS: 簡単なLAMPサーバーでWordPressを動かすまで（Intel Mac） 〜EC2へSSH接続〜

# はじめに
AWSハンズオンの学習記録です。
2022年8月の情報をもとに投稿します。

ゴールは、EC2を使って簡易的な仮想サーバーを作り、ブログソフトであるWordPressをインストールします。
また、WordPressを外部公開できることを想定しています。

**今回はEC2へSSH接続し、ログインする方法を投稿します。**
*今回の投稿は特にmacOS向けとなっておりますので、予めご了承頂ければ幸いです。*

尚、ハンズオンがメインのため、各サービスの概要や用語の解説は極力省かせていただきます。

### ゴール
仮想サーバーでWordPressを使える状態にします

### ゴールまでの流れ

[1.VPCとサブネットを作成](https://qiita.com/holySh10/items/749b98e320fc71e6739e)
[2.EC2を作成／セキュリティグループの設定](https://qiita.com/holySh10/items/90a3501d819f1ae2c7cd)

:::note info
3.EC2へSSH接続（本記事ではここを解説します）
:::
[4.Webサーバーである「Apache」をインストール](https://qiita.com/holySh10/items/53ec78d420e372643c55)
[5.プログラミング言語である「PHP」をインストール](https://qiita.com/holySh10/items/90507e2b03ee6c681790)
[6.データベースである「MariaDB」をインストール](https://qiita.com/holySh10/items/0b8b9d5ea96582b39fca)
[7.WordPressをインストール](https://qiita.com/holySh10/items/cd3db43cf0e951705c31)

### 本記事の目的
・EC2へSSH接続する方法を理解します
・Macのターミナルのコマンドの操作方法を理解します

### 動作環境
・MacBook Pro (Retina, 13-inch, Late 2013)
・macOS: Big Sur 11.6.1
・CPU: Intel
・メモリ: 8GB

# EC2へSSH接続するまでの流れ

#### ①ターミナルを起動する
今回はmacOSにデフォルトで付属している「ターミナル」というアプリケーションを使用します。
「ターミナル」とは、コマンドと呼ばれる命令文を入力して操作や設定ができるアプリケーションです。
EC2へのSSH接続は、この「ターミナル」を操作して実行します。

まずはターミナルを起動します。
方法は色々ありますが、`command`+`space`キーで「Spotlight」という検索ツールを起動し、直接「ターミナル」と入力する方法が早いです。
![スクリーンショット 2022-08-06 14.00.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/6b7e7964-2a7a-52b2-fef0-33b8fd5d2deb.png)

#### ②キーペアファイルの場所を確認する
※キーペアファイルの作成方法は[こちら](https://qiita.com/holySh10/items/90a3501d819f1ae2c7cd#%E3%82%AD%E3%83%BC%E3%83%9A%E3%82%A2%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3)

キーペアファイルの場所を確認します。これがないとSSH接続ができません。

#### ③キーペアファイルがあるフォルダのパス名を確認する
![スクリーンショット 2022-08-06 14.16.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/1314633b-ee4d-540e-0b0b-edc4c3976a9f.png)
これはFinder画面の一番下に表示されているパス名の画像です。
パス名とは、簡単に言うとそのファイルやフォルダがある場所の情報のことです。
しかし、デフォルトだとFinder画面の一番下に表示されておりません。

表示させる方法は次の通りです。
![スクリーンショット 2022-08-06 14.22.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/b6c4019e-73c8-20b3-fa1f-03ec79a22ed0.png)
1.Finderの上部メニューバーの「表示」をクリック
2.一覧の中にある「パスバーを表示」をクリック

キーペアファイルを直接指定してSSH接続するため、このパス名がわかると、ターミナル操作が楽になります。

#### ④EC2インスタンスを起動
![スクリーンショット 2022-08-06 15.20.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/5fa8cd83-fd23-f3bc-e00b-3d02b14f807f.png)
[前回作成し、停止したEC2インスタンス](https://qiita.com/holySh10/items/90a3501d819f1ae2c7cd#%E6%B3%A8%E6%84%8F)を起動します。
「インスタンスを開始」をクリックします。

#### ⑤Elastic IPアドレスをEC2インスタンスへ割り当てる
>**Elastic IPアドレス**とは、AWS内で使える固定のIPアドレスのことです。
EC2にアクセスするためにはパブリックIPアドレスが必要です。
しかし、[前回パブリックIPアドレスを「無効化」に設定しました。](https://qiita.com/holySh10/items/90a3501d819f1ae2c7cd#%E3%83%91%E3%83%96%E3%83%AA%E3%83%83%E3%82%AF-ip-%E3%81%AE%E8%87%AA%E5%8B%95%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6)
理由は、EC2インスタンスを再起動するとパブリックIPアドレスが変わってしまうからです。
そこで、本項目でElastic IPアドレスをパブリックIPアドレスとしてEC2インスタンスへ関連付け、アクセスできる状態にします。
固定のIPアドレスなので、再起動してもIPアドレスが変更されることはありません。
（検証用途なのでElastic IPアドレスは必須ではありませんが、ある程度の本番環境も想定しているので、今回はElastic IPアドレスを使用します）

1.EC2ダッシュボード左メニューバーから「Elactic IP」を選択
2.ダッシュボード右上の「Elastic IP アドレスを割り当てる」を選択
3.割り当て画面右下の「割り当て」を選択
4.ダッシュボードに戻ると、上側の「アクション」バーから「Elastic IP アドレスの関連付け」を選択
![スクリーンショット 2022-08-06 15.34.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/09e1035d-6fa9-a6f9-6428-242f8c664487.png)
5.関連付け画面中央の「インスタンス」から、[前回作成したEC2インスタンス](https://qiita.com/holySh10/items/90a3501d819f1ae2c7cd)を選択
6.右下の「関連付ける」を選択
![スクリーンショット 2022-08-06 15.34.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/b0fac1ae-80e4-353b-857b-b7137302b956.png)
7.EC2インスタンスの概要を確認し、「パブリック IPv4 アドレス」欄に割り当てたElactic IPアドレスが表示されていれば成功です
![スクリーンショット 2022-08-06 15.35.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/5b0f73f3-7a27-3700-8142-1f111957955d.png)
#### ⑥ターミナル操作 Step1: cd コマンドでディレクトリを移動する
この項目から本格的にターミナルを操作します。
>**ディレクトリ**とは、簡単に説明するとファイルの保管場所を意味します。
cd コマンドの**cd**とは、「カレント ディレクトリ(current directory)」=「今いるディレクトリ」という意味です。
つまり、cd コマンドとは、今いるディレクトリの場所を移動するコマンドです。
今いる場所をどこに移動するか？というと、**キーペアファイルが保存されたフォルダ**になります。
キーペアファイルが保存されたフォルダに移動し、作業を行います。

入力例↓
```
cd /Users/shohei/Desktop/AWS
```
記述方法は、
`cd`+`space`+`キーペアファイルがあるフォルダのパス名`

パス名は、以下の画像のようにFinderウインドウ下のフォルダを右クリックするとコピーできます。コピーができたら、ターミナルにて`cd `の後にペーストしましょう。
![スクリーンショット 2022-08-06 17.05.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/523b829d-e69d-312b-13ce-0db1b3205898.png)
#### ⑦ターミナル操作 Step2: chmod コマンドでキーペアファイルのアクセス権を変更する
>**chmod コマンド**とは、指定したファイルやディレクトリの権限を設定するコマンドです。このコマンドを入力して、キーペアファイルの権限を「自分のみ」に設定します。

入力例↓
```
chmod 400 sample.pem
```
記述方法は、
`chmod`+`space`+`400`+`キーペアファイル名(拡張子も含める)`

:::note info
`chmod`の後ろに数字を入力することで、アクセス権の範囲を指定できます。今回入力した`400`は、「自分しか読めない」という設定です。
:::
#### ⑧ターミナル操作 Step3: ssh コマンドでSSH接続し、EC2インスタンスにログインする
>**ssh コマンド**とは、その名の通りSSH接続するためのコマンドで、暗号化された通信を使ってリモート接続をするコマンドです。

入力例↓
```
ssh -i sample.pem ec2-user@xx.xxx.xxx.11
```
記述方法は、
`ssh`+`space`+`i`+`space`+`キーペアファイル名(拡張子も含める)`+`space`+`ec2-user@Elastic IP（パブリックIPアドレス）`

:::note info
`ssh`の後ろに英数字を入力することで、どのような接続方式をとるか指定できます。今回入力した`i [ファイル名]`は、[ファイル名]を秘密鍵として使う、という接続方法です。
:::

:::note info
キーペアファイル名の後の`ec2-user@Elastic IP（パブリックIPアドレス）`は、接続先を意味します。今回は起動したインスタンスにLinuxOSを選択したので、キーペアファイル名の後には`ec2-user`が使われます。
:::
接続後、以下の情報が出力されます↓
```
The authenticity of host 'xx.xxx.xxx.11 (xx.xxx.xxx.11)' can't be established.
ECDSA key fingerprint is SHA256:86/XG1d7//xxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
```
`yes`と入力し、returnキーを押下すると、↓
```
Warning: Permanently added 'xx.xxx.xxx.11' (ECDSA) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-xxx-xxx-x-xxx ~]$ 
```
成功すると上記の情報が出力されます。EC2へログインできました。
#### ⑨ターミナル操作 Step4: ログアウトする場合
ログアウトする場合は、`$`の後ろに`exit`と入力し、returnキーを押下します↓
```
[ec2-user@ip-xxx-xxx-x-xxx ~]$ exit
ログアウト
Connection to xx.xxx.xxx.11 closed.
```
# あとがき
今回はEC2インスタンスへSSH接続を使ったログイン方法を投稿しました。
初心者の方は、ここでつまずいてしまうことが多いかと思います。（著書はとても苦労しました・・・）
次回は[Webサーバーである「Apache」のインストール方法](https://qiita.com/holySh10/items/53ec78d420e372643c55)を投稿します。

ここまでご覧いただき、誠にありがとうございます。