これまでエックスサーバーなどレンタルサーバーを触ることが多かったのですが、AWSEC2を触る機会を流石にそろそろ増やした方がいいと思いその学習の記録です。
ゴール
/var/www/html/の階層を作成しサンプルのindex.htmlファイルをアップ、IPアドレスでアクセスしたらそのindex.htmlファイルの中身が表示されるようになること。
AWSのアカウントを作る
まずAWSのアカウントを作りました。ここでアカウント情報(メール、電話)や決済情報などを設定しました。
「MFAが割り当てられていません」と出ていたのでスマホ端末と連携して最低限のセキュリティも強化しました。
EC2のインスタンス立ち上げる
アカウント作った時のコンソール画面から、EC2と検索窓で打ち込みその後「インスタンスを起動」をクリック
インスタンスを起動からスペックやネットワークの設定をするみたいでした。
- インスタンスの名前
- マシンイメージ
- インスタンスタイプ
- キーペア(私の場合は.pem)
のなどの設定をしました。練習などでぶっちゃけよくわかってない点が多く、とりあえず初期値のまま進めるみたいな感じでした。
キーペアがないとFTPやターミナル経由でサーバーへ入れなくなるっぽいので安全な場所に保存しました。
とりあえずこの時点で箱が出来上がった感じですね。
AWSEC2というサービスのマンションの一部屋を借りた感じでしょうか。
WEBサーバー入れたい
index.htmlファイルを表示することがゴールなのでWebサーバーソフトを入れないとですね。
取得した.pemファイルを使ってサーバーにアクセスしてごにょごにょしました。
自分のPCのターミナル開く
- 鍵ファイルの場所にcdコマンドで移動
ssh -i "my-key.pem" ec2-user@0.0.0.0というコマンドで接続(IPやキーの名前は固有)
これでログインできるようになりました。
Apacheを入れる
sudo dnf install -y httpd
Apacheを起動
sudo systemctl start httpd
自動起動を設定する
sudo systemctl enable httpd
たしかこの時点でIPアドレスをURLのバーに打ち込むと、It works!って出てきたと思います。
/var/www/html/ができたんやね。(正確にはwwwフォルダができた?)
FTPソフトでファイルアップできない
という問題にぶち当たってターミナルで以下を打ちました
sudo chown -R ec2-user:ec2-user /var/www/html
他にも鍵ファイルの設定が644になっているなどのエラーが出て、
chmod 400 xxx.pemなどで変更した気がします。
終わり