目標
- EC2 インスタンスを作成する(あわせて VPC も作成する)
- EC2 に WSL(Windows subsystem for linux) から ssh で接続する
前提条件
- AWSアカウントを持っていて、AWSコンソールにアクセスできること
- 事前に WSL が利用できる環境であること
VPC を作成
メニューから「VPC」を選択。
※すでに作成済みの場合は不要。
「1 個のパブリックサブネットを持つ VPC」を選択した状態で「選択」をクリック。
「VPC 名」(任意)を入力して「VPC の作成」をクリック。
EC2 インスタンスを作成する
OS を選択
インスタンスタイプを選択
無料枠の「t2.micro」を選択し、「次の手順: インスタンスの詳細の設定」をクリック。
インスタンスの詳細の設定
先ほど作成した VPC、サブネットが選択される。
「自動割り当てパブリックIP」(有効)にして、「次の手順: ストレージの追加」をクリック。
ストレージの追加
タグの追加
こちらも何も変更せず、「次の手順: セキュリティグループの設定」をクリック。
セキュリティグループの設定
ソースを「マイ IP」に変更。(ssh 接続を特定 IP から以外は認めないように変更。)
「確認と作成」をクリック。
キーペアを作成、インスタンスの起動
「新しいキーペアの作成」を選択し、キーペア名には任意の文字列を入力、「キーペアのダウンロード」をクリック。
ダウンロードしたファイル(.pem)は大切に保管しておく。あとで ssh で接続するときに必要。
ダウンロードが完了すると「インスタンスの作成」ボタンが活性化するので、クリック。
インスタンスのステータスを確認
先ほど作成したインスタンスのステータスを確認する。インスタンス ID のリンクをクリック。
「インスタンスの状態」が「running」になっていれば成功。
WSL から ssh 接続を行う
インスタンスのステータスの画面からパブリック IP を確認。
$ ssh -i (pem キーのパス) ec2-user@(パブリック IP)
ssh 接続に失敗する場合
pem ファイルのパーミッションが 600 以外の場合、ssh 接続時に以下のエラーが発生します。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for 'test.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "test.pem": bad permissions
ec2-user@xxx.xxx.xxx.xxx: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
この場合は、pem ファイルのパーミッションを 600 に変更してください。
$ chmod 600 test.pem
また、WSL の場合、Windows にマウントしているディレクトリ配下のファイルのパーミッションを変更することは出来ません。
(Windows の D ドライブに pem ファイルを置いて、そのままパーミッションを変更して、ssh というようなことは出来ない。)
この場合、pem ファイルを移動してください。
初期設定
yum update
sudo yum update
timezone の指定
sudo timedatectl set-timezone Asia/Tokyo
※timedatectl status
より現在のタイムゾーンの設定が確認できる。
ngxin インストール
sudo amazon-linux-extras install nginx1.12
# サービスの起動
sudo systemctl start nginx.service
# 自動開始登録
sudo systemctl enable nginx.service
systemctl is-enabled nginx.service
の結果が enable であることを確認。
php、php-fpm のインストール
sudo amazon-linux-extras install php7.3
# サービスの起動
sudo systemctl start php-fpm.service
# 自動開始登録
sudo systemctl enable php-fpm.service
systemctl is-enabled php-fpm.service
の結果が enable であることを確認。