はじめに
AWSハンズオンの学習記録です。
2022年8月の情報をもとに投稿します。
ゴールは、EC2を使って簡易的な仮想サーバーを作り、ブログソフトであるWordPressをインストールします。
また、WordPressを外部公開できることを想定しています。
今回はEC2へSSH接続し、ログインする方法を投稿します。
今回の投稿は特にmacOS向けとなっておりますので、予めご了承頂ければ幸いです。
尚、ハンズオンがメインのため、各サービスの概要や用語の解説は極力省かせていただきます。
ゴール
仮想サーバーでWordPressを使える状態にします
ゴールまでの流れ
1.VPCとサブネットを作成
2.EC2を作成/セキュリティグループの設定
3.EC2へSSH接続(本記事ではここを解説します)
4.Webサーバーである「Apache」をインストール
5.プログラミング言語である「PHP」をインストール
6.データベースである「MariaDB」をインストール
7.WordPressをインストール
本記事の目的
・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」という検索ツールを起動し、直接「ターミナル」と入力する方法が早いです。
②キーペアファイルの場所を確認する
※キーペアファイルの作成方法はこちら
キーペアファイルの場所を確認します。これがないとSSH接続ができません。
③キーペアファイルがあるフォルダのパス名を確認する
これはFinder画面の一番下に表示されているパス名の画像です。
パス名とは、簡単に言うとそのファイルやフォルダがある場所の情報のことです。
しかし、デフォルトだとFinder画面の一番下に表示されておりません。
表示させる方法は次の通りです。
1.Finderの上部メニューバーの「表示」をクリック
2.一覧の中にある「パスバーを表示」をクリック
キーペアファイルを直接指定してSSH接続するため、このパス名がわかると、ターミナル操作が楽になります。
④EC2インスタンスを起動
前回作成し、停止したEC2インスタンスを起動します。
「インスタンスを開始」をクリックします。
⑤Elastic IPアドレスをEC2インスタンスへ割り当てる
Elastic IPアドレスとは、AWS内で使える固定のIPアドレスのことです。
EC2にアクセスするためにはパブリックIPアドレスが必要です。
しかし、前回パブリックIPアドレスを「無効化」に設定しました。
理由は、EC2インスタンスを再起動するとパブリックIPアドレスが変わってしまうからです。
そこで、本項目でElastic IPアドレスをパブリックIPアドレスとしてEC2インスタンスへ関連付け、アクセスできる状態にします。
固定のIPアドレスなので、再起動してもIPアドレスが変更されることはありません。
(検証用途なのでElastic IPアドレスは必須ではありませんが、ある程度の本番環境も想定しているので、今回はElastic IPアドレスを使用します)
1.EC2ダッシュボード左メニューバーから「Elactic IP」を選択
2.ダッシュボード右上の「Elastic IP アドレスを割り当てる」を選択
3.割り当て画面右下の「割り当て」を選択
4.ダッシュボードに戻ると、上側の「アクション」バーから「Elastic IP アドレスの関連付け」を選択
5.関連付け画面中央の「インスタンス」から、前回作成したEC2インスタンスを選択
6.右下の「関連付ける」を選択
7.EC2インスタンスの概要を確認し、「パブリック IPv4 アドレス」欄に割り当てたElactic IPアドレスが表示されていれば成功です
⑥ターミナル操作 Step1: cd コマンドでディレクトリを移動する
この項目から本格的にターミナルを操作します。
ディレクトリとは、簡単に説明するとファイルの保管場所を意味します。
cd コマンドのcdとは、「カレント ディレクトリ(current directory)」=「今いるディレクトリ」という意味です。
つまり、cd コマンドとは、今いるディレクトリの場所を移動するコマンドです。
今いる場所をどこに移動するか?というと、キーペアファイルが保存されたフォルダになります。
キーペアファイルが保存されたフォルダに移動し、作業を行います。
入力例↓
cd /Users/shohei/Desktop/AWS
記述方法は、
cd
+space
+キーペアファイルがあるフォルダのパス名
パス名は、以下の画像のようにFinderウインドウ下のフォルダを右クリックするとコピーできます。コピーができたら、ターミナルにてcd
の後にペーストしましょう。
⑦ターミナル操作 Step2: chmod コマンドでキーペアファイルのアクセス権を変更する
chmod コマンドとは、指定したファイルやディレクトリの権限を設定するコマンドです。このコマンドを入力して、キーペアファイルの権限を「自分のみ」に設定します。
入力例↓
chmod 400 sample.pem
記述方法は、
chmod
+space
+400
+キーペアファイル名(拡張子も含める)
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アドレス)
ssh
の後ろに英数字を入力することで、どのような接続方式をとるか指定できます。今回入力したi [ファイル名]
は、[ファイル名]を秘密鍵として使う、という接続方法です。
キーペアファイル名の後の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」のインストール方法を投稿します。
ここまでご覧いただき、誠にありがとうございます。