AWSにApacheインストールでWebサービスを作るまで
※ AWS = Amazon Web Services
初歩的な部分をまとめました。
その構築手順は次の通りです。
このページの目次
1.EC2のインスタンスを作成する
まずはES2のインスタンス作成から
▼ コンピューティング => EC2 をクリック
そしたら【インスタンスを起動】を押します。
▼ 【作成】ボタンはないので注意
あとは流れに沿って設定していくだけ。
ここでは次の設定でインスタンス作りました。
- AMI(マシンイメージ)
ここでは "Amazon Linux 2 AMI (HVM), SSD Volume Type" の64bit(x86)を選択。これを選択しておくのが無難だと思う・・・
- インスタンスタイプ
無料利用枠で利用するなら ファミリーt2 , タイプ:t2.micro を選択。このタイプは必要になったら後からアップグレードもできるので無料枠でも問題なし。
- その他
セキュリティグループとか、ストレージとか、タグとかetc・・・現時点では設定する必要なし。ちなみにWebサーバーを立てるにはセキュリティグループの設定必須(後述)
最後に【ステップ 7: インスタンス作成の確認】が出てくるので、設定をよく確認してから【起動】ボタンを押すだけです。起動&初期化には数分~数十分くらいかかります。
あと【起動】を押したとき・・・
こういうダイアログが出てくるはず
このキーペアを作成(pemファイルを保存)してください。あとでSSH接続するのですが、その時に必ず必要になるので(ちなみにSFTP接続などにも利用できる)
2.インバウンドルールにHTTP・HTTPSを追加
Webサイト・アプリは必ずHTTP必須です。
だから次手順でHTTPを追加します。
まず【セキュリティグループ】を開いてください。
▼ インスタンスの詳細画面にて
▼ 【インバウンドルールを編集】をクリック
あとはHTTPとHTTPSを加えるだけです。
▼ このような感じで追加
最後に【ルールを保存】を押せば完了。
ApacheでWebサイトを作る下準備が整いました。
3.コマンドからSSH接続できるよう設定
次にSSH接続の設定をしていきます。
まず先ほどキーペアをダウンロードしたはず
例えば example.pem みたいなファイル名です。
▼ それを使って接続するコマンドがこちら
1 |
ssh -i 'example.pem' ec2-user@ec2-xx-xxx-xxx-xx.us-east-2.compute.amazonaws.com |
上記コマンドの example.pem が先ほど保存したキーペアのファイル、そして ec2-xx-xxx-xxx-xx.us-east-2.compute.amazonaws.com がインスタンスのパブリックDNSです。この2箇所は各自で置き換えてください。ちなみに ec2-user は変更の必要ありません。
▼ 接続できるとこういう画面に
1 2 3 4 5 6 7 8 |
__| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ 25 package(s) needed for security, out of 39 available Run "sudo yum update" to apply all updates. [ec2-user@ip-xxx-xx-xx-xx ~]$ |
これで色々なソフトインストの準備まで完了
4.Apacheなどをyumを使ってインストール
ここからWebサイトを立てる具体的な作業開始
次のコマンドをターミナルで実行していきます。
▼ まずターミナルで次を実行
1 |
sudo yum update |
これでシステムをアップデート可能。
▼ 次にhttpdをインストール
1 |
sudo yum install httpd |
▼ インストールが完了したら起動すればOK
1 |
sudo service httpd start |
なんとApache導入はこれだけです。
これで完全にWebサイトとして機能してくれます。
そしたらEC2のIPアドレスでアクセスしてください。
▼ こういう画面が出ればApache起動成功!
EC2のアドレスですが、【インスタンスの詳細】から【パブリック IPv4 アドレス】というのがあります。それをブラウザのアドレス欄にコピペするだけでOKです。
OS起動時にApacheも自動起動させる
まず自動起動の状態を調べます
▼ httpdサービスの状態を一覧表示
1 2 3 4 |
systemctl list-unit-files | grep httpd httpd.service disabled httpd.socket disabled |
▼ disabledだったら次コマンド実行
1 |
sudo systemctl enable httpd.service |
▼ httpd.service enabledになった
1 2 3 4 |
systemctl list-unit-files | grep httpd httpd.service enabled httpd.socket disabled |
これでインスタンス再起動時でも安心です。
わざわざCronジョブの設定とかもいりません。
ドキュメントルートの位置について
あと大事な点が1つあります。
それが ドキュメントルート についてです。
Apacheだと以下パスがデフォルトですね。
1 |
/var/www/html |
この中に必要なファイル・フォルダを入れればOKです。ただしPHPは使えませんが・・・PHP+MySQLによるWebアプリ構築などは、また別の機会にまとめるかもしれません。
AWSでサーバー立ての手順まとめ
最後に箇条書きでまとめときます。
個人的にはAWS側の設定に少し苦戦しました。
でもしっかり手順を踏んでいけば難しくありません。
次の記事 : AWSでのドメイン取得・設定・SSL設定
ここまでは初歩中の初歩です。
▼ 次はこういう作業も必要になるでしょう。
- Webサービスに割り当てるドメイン取得
- そのドメインをAWSのインスタンスに設定
- SSL(https)化の設定・自動更新
▼ 詳しくは次記事で解説済み!
これもWebサービス構築に大事なステップです。
以上、AWSでサーバー立て手順でした。ではまた