【AWS】EC2インスタンスの環境設定(Amazon Linux)

EC2インスタンスの環境設定→Apacheでページが見れるまでをまとめます。

EC2インスタンスにログインできたら、まずrootユーザーのパスワードを設定します。
任意のパスワードを2度入力します。

$ sudo passwd root
新しいパスワード:<パスワードを入力してreturnキー>
新しいパスワードを再入力してください:<パスワードを入力してreturnキー>
passwd: すべての認証トークンが正しく更新できました。

パスワードが設定できたら、早速rootユーザーに切り替えます。

su -
パスワード:<パスワードを入力してreturnキー>

タイムゾーンを確認します。基本的にAWSではUTCになっていると思います。

date
Sat Oct  1 14:27:27 UTC 2022

# timezoneを変更します
sudo timedatectl set-timezone Asia/Tokyo

#再度確認
date
Sat Oct  1 23:52:20 JST 2022

JSTに変更されました。

次にApacheをインストールします。

#念のため既にApacheがあるか確認
$ yum list installed | grep httpd

#インストール候補のバージョンを確認
$ yum list | grep httpd 
generic-logos-httpd.noarch             18.0.0-4.amzn2                 amzn2-core
httpd.x86_64                           2.4.54-1.amzn2                 amzn2-core
httpd-devel.x86_64                     2.4.54-1.amzn2                 amzn2-core
httpd-filesystem.noarch                2.4.54-1.amzn2                 amzn2-core
httpd-manual.noarch                    2.4.54-1.amzn2                 amzn2-core
httpd-tools.x86_64                     2.4.54-1.amzn2                 amzn2-core
keycloak-httpd-client-install.noarch   0.8-1.amzn2                    amzn2-core
libmicrohttpd.i686                     0.9.33-2.amzn2.0.2             amzn2-core
libmicrohttpd.x86_64                   0.9.33-2.amzn2.0.2             amzn2-core
libmicrohttpd-devel.x86_64             0.9.33-2.amzn2.0.2             amzn2-core
libmicrohttpd-doc.noarch               0.9.33-2.amzn2.0.2             amzn2-core
python2-keycloak-httpd-client-install.noarch

#Apacheをインストール  確認がでたらy+リターンを入力します
$ sudo yum install httpd 
・・・・
Complete!

#Apacheを起動します
$ sudo systemctl httpd start

#verisonを確認
httpd -v
Server version: Apache/2.4.54 ()
Server built:   Jun 30 2022 11:02:23

Amazon Linuxではamzn2-coreというyumリポジトリが用意されています。

/var/wwwにtestディレクトリを作成し、そのディレクトリをドキュメントルートとしてvirtual host設定をします。
AWSで自動的に用意されるサブドメインでWebページが表示できるようにします。

AWSで自動的に用意されるサブドメイン
インスタンスページでインスタンスIDの部分をクリックします。

インスタンス詳細のを確認します。ここに記載されている「パブリックIPv4 DNS」をホスト名に指定するとアクセスできます。

$ cd /var/www
$ mkdir test
$ chown ec2-user:ec2-user test/ -R

$ vi ./test/index.html
sample page

$ vi /etc/httpd/conf.d/vhost.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName ec2-43-206-117-44.ap-northeast-1.compute.amazonaws.com
DocumentRoot /var/www/test
<directory /var/www/test>
Options Indexes FollowSymLinks
Order allow,deny
AllowOverride All
Allow from All
</directory>
</Virtualhost>
#Apacheを再起動
$ systemctl restart httpd

最後にAWSのコンパネで「EC2」の「セキュリティグループ」を開きます。
セキュリティーグループは、iptables,firewalld同等(ソフトウェアファイヤーウォール)の機能がウェブ上で設定できる機能です。
EC2インスタンスを作成した際に自動作成された「launch-wizard-1」と書かれたセキュリティーグループがありますので、これを編集します。
左のチェックを入れ、「アクション」メニューから、「インバウンドのルールを編集」を選択します。

「HTTP」を追加します。(後々のために「HTTPS」も追加しておいても良いでしょう。)
「ルールを追加」を押します。
タイプで「HTTP」を選択し、ソースで「0.0.0.0/0」を選択します。

ブラウザでサンプルページが表示できました。

何かと必要になるので、remi,EPELは先に足しておきましょう。

# remiリポジトリを追加
$ amazon-linux-extras install remi
# EPELリポジトリを追加
$ amazon-linux-extras install epel