LoginSignup
2
3

More than 1 year has passed since last update.

[AWS]EC2 nginxのインストールと起動 ~備忘録~

Posted at

はじめに

この記事はプログラミング初学者による備忘録用の記事であり、また、少しでも他の初学者のお役に立てればと思い書いています。

今回は、EC2インスタンス内にwebサーバー用ソフトウェアをインストールしたので、一連の流れと関連の知識を備忘録としてまとめておきたいと思います。

間違いなどがございましたら、ご指摘のほどよろしくお願い致します。

EC2インスタンス内にNginxをインストールして起動する手順

大まかな手順としては下記の通りです。

1.ターミナルでEC2インスタンスにログインし、yumでアップデートを実行する

2.nginxのインストール

3.nginxの起動

では、インストールと起動の手順を詳細に記述していきます。

1.ターミナルでEC2インスタンスにログインし、yumでパッケージを更新する

この場合のアップデートとは、EC2インスタンス内のライブラリをアップデートしています。
ターミナルで、$ sudo yum update -yと入力し、yumで管理しているパッケージ(EC2インスタンスのライブラリ)をアップデートします。

入力コマンドの説明

sudo:
root権限で実行する際に使用する
yumなどの作業は、EC2ユーザー等ではなくroot権限で実行する必要があります
今回の場合、ec2-userユーザーは、sudoを使うことでroot権限でコマンドを実行することが可能となっています

yum:
Linuxのパッケージ管理ツールでパッケージをインストールしたりアンインストールする際に使用する
yum updateと入力すると、yumで管理されているパッケージがアップデートされます。

-y:
yesを意味するオプション(これを使うことでターミナルからyes/noを聞かれない)

実行例

$ sudo yum update -y
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                             | 3.7 kB  00:00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
#省略

置換:
  grub2.x86_64 1:2.06-2.amzn2.0.1           grub2-tools.x86_64 1:2.06-2.amzn2.0.1

完了しました!

上記のように、完了しましたと表示された場合はアップデート成功となります。

2.whichコマンドを使用して、amazon-linux-extrasパッケージがインストールされていることを確認する

EC2内にnginxをインストールする際は、amazon-linux-extrasパッケージを使用します。
which コマンドを使用して、amazon-linux-extrasパッケージがインストールされていることを確認します。

$ which amazon-linux-extras
/usr/bin/amazon-linux-extras

3.$ amazon-linux-extrasを入力して利用可能なトピックを確認する

$ amazon-linux-extrasを入力して利用可能なトピックのリストを表示します。
実行結果から、nginx1が利用可能であることがわかります。

$ amazon-linux-extras
  0  ansible2                 available    \
        [ =2.4.2  =2.4.6  =2.8  =stable ]
  2  httpd_modules            available    [ =1.0  =stable ]
  3  memcached1.5             available    \
        [ =1.5.1  =1.5.16  =1.5.17 ]

--- 略 ---

 38  nginx1                   available    [ =stable ]

4.$ sudo amazon-linux-extras install nginx1 -yでnginxをインストールする

2021年8月時点では、インストールされるNginxのバージョンは1.20.0です。

$ sudo amazon-linux-extras install nginx1 -y
Installing nginx
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
リポジトリーを清掃しています: amzn2-core amzn2extra-docker amzn2extra-nginx1

完了しました!
  0  ansible2                 available    \
        [ =2.4.2  =2.4.6  =2.8  =stable ]

--- 略 ---

38  nginx1=latest            enabled      [ =stable ]

上記のように、nginx1=latest enabled [ =stable ]と表示されていればインストール成功です。

5.$ sudo systemctl start nginxを実行してnginxを起動させる

インストール直後は、nginxが起動していないので$ sudo systemctl start nginxを実行して起動させます。

コマンドの説明

systemctl:
指定したサービスを起動、停止、再起動することが可能なコマンドです

$ sudo systemctl start nginx

6.$ sudo systemctl status nginxを入力してnginxの起動を確認する

$ sudo systemctl status nginxコマンドを入力後、Active: active (running) since~が表示されていれば起動が成功しています。

$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since 金 2021-08-20 09:14:43 UTC; 2min 14s ago
  Process: 28808 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 28804 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 28803 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 28810 (nginx)
   CGroup: /system.slice/nginx.service
           ├─28810 nginx: master process /usr/sbin/nginx
           └─28811 nginx: worker process

 8月 20 09:14:43 ip-10-0-10-10.ap-northeast-1.compute.internal systemd[1]: Starting The nginx HTTP and reverse .....
 8月 20 09:14:43 ip-10-0-10-10.ap-northeast-1.compute.internal nginx[28804]: nginx: the configuration file /etc/...k
 8月 20 09:14:43 ip-10-0-10-10.ap-northeast-1.compute.internal nginx[28804]: nginx: configuration file /etc/ngin...l
 8月 20 09:14:43 ip-10-0-10-10.ap-northeast-1.compute.internal systemd[1]: Started The nginx HTTP and reverse p...r.

7.$sudo systemctl enable nginxを入力してnginxが自動的に起動するように設定する

$sudo systemctl enable nginxを実行することで、サーバー起動時に、nginxも起動するようになります。
設定済みかどうかを確認する場合は、$ sudo systemctl is-enabled nginxを実行し、ebabledと表示されると設定が完了していることを表します。

$ sudo systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

$ sudo systemctl is-enabled nginx
enabled

参考文献

Amazon Linux2を実行しているAmazon EC2インスタンスに、amazon-linux-extrasリポジトリからソフトウェアパッケージをインストールする方法
Amazon Linux 2

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3