#前提条件
OS
MacOS Monterey 12.0.1
CPU
Apple M1(arm64)
#やりたいこと
タイトルの通り。
下記「参考サイト」のUdemy講座で取り上げられている練習メニューをそのまま実践したものです。
Macのターミナルから、AWS EC2インスタンスにSSH接続をし、WEBサーバーとして起動してサンプルページを表示させるところをゴールとします。
#手順
###1 EC2インスタンスを作成
Linuxのマシンイメージを選択します。無料対象枠です。
基本的にはデフォルトの設定でそのまま進めます。
セキュリティグループの設定で新しいルールを追加(任意)
自分のみがアクセスできるようインバウンドルールを追加します。
セキュアな環境で実験をできます。
(ソースで「マイIP」を選択。
例えば手持ちのモバイルルーターに接続している場合は、そのIPアドレスが自動で入力されます)
プロトコルは
・SSH
・HTTP
・HTTPS
を設定しましょう。
EC2インスタンスにログインするためのキーペアを新しく作成
※すでにキーペアを持っている場合は、既存のキーを使えばOKです。
次のSSH接続の手順までスキップしてください。
1)任意のキーペア名を入力し、「キーペアのダウンロード」
pemファイルがダウンロードされます。
2)pemファイルを安全な場所(Macなら .sshフォルダ(隠しフォルダ))に移動
ダウンロードしただけではいけません。「続行するには、安全でアクセス可能な場所に移動しなさい」といった表示が出ると思います。次はその手順です。
% mv Qiita-test.pem /Users/ユーザ名/.ssh
% ls -l /Users/ユーザ名/.ssh
total 32
-rw-r--r--@ 1 ユーザ名 staff 1704 12 11 08:49 Qiita-test.pem
隠しフォルダ「.ssh」に移動されました。
3)pemファイルの権限を変更※厳しくする
さらに、pemファイルへのアクセス権をより厳しく変更します。
現状-rw-r--r--
ですが、
% chmod 400 Qiita-test.pem
% ls -l
total 32
-r--------@ 1 ryohey staff 1704 12 11 08:49 Qiita-test.pem
-r--------
所有者の読み込みのみを許可するよう変更します。
※権限変更をしないままだと、SSH接続を試みた時にエラーが出ます。
インスタンスを起動
「インスタンスの状態」が、保留から実行中に変わるのを待ちます。
###2 起動したEC2インスタンスにSSH接続する
次のコマンドを入力します。
ssh -i pemファイルへのパス ec2-user@EC2インスタンスのパブリックIPv4アドレス
ssh -i(オプション)
iオプションは、公開鍵に対応した秘密鍵を指定し、読み込むためのものです。
pemファイルへのパス
/Users/ユーザ名/.ssh/Qiita-test.pem
といった感じに指定します。
ec2-user
EC2インスタンスへ接続するときのデフォルトのユーザ名のようです。
EC2インスタンスのパブリックIPv4アドレス
今回接続したいEC2インスタンスのIPアドレスを指定します。
インスタンスの概要から、パブリック IPv4 アドレスをコピペします。
【公式マニュアルより(man ssh で表示)】
-i identity_file
Selects a file from which the identity (private key) for public key authentication is read.
こんな感じでAAが表示されたら接続成功です。
これだけだと、ただLinuxを搭載したサーバが起動しただけにすぎません。
今回はこれをWEBサーバとして動かします。
###3 WEBサーバーとして起動
まず、sudoコマンドでルート権限に移ります。
$ sudo su
[root@ip-172-31-9-94 ec2-user]
全パッケージのアップデート
# yum update -y
WEBサーバー「Apacheサーバー」をインストール
# yum install httpd -y
Apacheサーバーの立ち上げ
# service httpd start
Redirecting to /bin/systemctl start httpd.service
これでEC2インスタンスをWEBサーバーとして起動させることができました。
次に、サンプルのWEBサイトを作成し表示する実験をします。
###4 サンプルページを作成して表示させる
WEBサイト用のフォルダにサンプルページ「index.html」を作成します。
# cd /var/www/html
# nano index.html
エディタが立ち上がったら、次のように入力します。
作ったサイトをブラウザで開きます。
インスタンスに接続した時にも入力したEC2インスタンスのパブリックIPv4アドレスを、今度はブラウザのURL欄に貼り付けます。
確認できました。