Help us understand the problem. What is going on with this article?

AWS EC2インスタンスを作成し、WSLから接続する

目標

  • EC2 インスタンスを作成する(あわせて VPC も作成する)
  • EC2 に WSL(Windows subsystem for linux) から ssh で接続する

前提条件

  • AWSアカウントを持っていて、AWSコンソールにアクセスできること
  • 事前に WSL が利用できる環境であること

VPC を作成

メニューから「VPC」を選択。
※すでに作成済みの場合は不要。
00.PNG

「VPC ウィザードの起動」をクリック。
0000.PNG

「1 個のパブリックサブネットを持つ VPC」を選択した状態で「選択」をクリック。
0020.PNG

「VPC 名」(任意)を入力して「VPC の作成」をクリック。
0030.PNG

作成完了。
0040.PNG

EC2 インスタンスを作成する

「EC2」をクリック。
001.png

「インスタンスの作成」をクリック。
002.png

OS を選択

「Amazon Linux 2」を選択。
003.png

インスタンスタイプを選択

無料枠の「t2.micro」を選択し、「次の手順: インスタンスの詳細の設定」をクリック。
1.PNG

インスタンスの詳細の設定

先ほど作成した VPC、サブネットが選択される。
「自動割り当てパブリックIP」(有効)にして、「次の手順: ストレージの追加」をクリック。
0050.PNG

ストレージの追加

何も変更せず、「次の手順: タグの追加」をクリック。
0060.PNG

タグの追加

こちらも何も変更せず、「次の手順: セキュリティグループの設定」をクリック。
0070.PNG

セキュリティグループの設定

ソースを「マイ IP」に変更。(ssh 接続を特定 IP から以外は認めないように変更。)
「確認と作成」をクリック。
0080.PNG

キーペアを作成、インスタンスの起動

「起動」をクリック。
キャプチャ.PNG

「新しいキーペアの作成」を選択し、キーペア名には任意の文字列を入力、「キーペアのダウンロード」をクリック。
ダウンロードしたファイル(.pem)は大切に保管しておく。あとで ssh で接続するときに必要。
1.PNG

ダウンロードが完了すると「インスタンスの作成」ボタンが活性化するので、クリック。
2.PNG

インスタンスのステータスを確認

先ほど作成したインスタンスのステータスを確認する。インスタンス ID のリンクをクリック。
3.PNG

「インスタンスの状態」が「running」になっていれば成功。
4.PNG

WSL から ssh 接続を行う

インスタンスのステータスの画面からパブリック IP を確認。
0100.PNG

$ ssh -i (pem キーのパス) ec2-user@(パブリック IP)

以下のように EC 2 と表示されれば成功。
0110.PNG

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 であることを確認。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away