AWS EC2(Amazon Linux 2023)にNginxをインストールする | アントレプログラマー

AWS EC2(Amazon Linux 2023)にNginxをインストールする

AWS

こんにちは、ニキです。

この記事は以下のような方におすすめです。

  • 検証用のWebサーバーをさくっと構築したい。
  • ロードバランサーは使わない。
  • HTTPS通信しなくていい。

今回は、EC2インスタンスにNginxをインストールし、起動確認まで行います。

とりあえずブラウザからアクセスできる環境が欲しいような場合に参考になればと思います。

EC2インスタンスは作成済みの前提です。

作成方法は以下の記事で解説しています。

Takaharu Niki

・Webエンジニア5年目。
・バックエンドを中心に、フロントエンドやDevOps業務も経験。
・現在は、自社サービス企業のテックリードとして従事。

Takaharu Nikiをフォローする

EC2インスタンスにNginxをインストールする

まず、dnfコマンドを使ってNginxパッケージを探します。

以下のようにNginxが見つかります。

$ dnf search nginx
Amazon Linux 2023 repository                                                                                           45 MB/s |  17 MB     00:00
Amazon Linux 2023 Kernel Livepatch repository                                                                         762 kB/s | 153 kB     00:00
============================================================ Name Exactly Matched: nginx =============================================================
nginx.aarch64 : A high performance web server and reverse proxy server
=========================================================== Name & Summary Matched: nginx ============================================================
collectd-nginx.aarch64 : Nginx plugin for collectd
nginx-all-modules.noarch : A meta package that installs all available Nginx modules
nginx-core.aarch64 : nginx minimal core
nginx-filesystem.noarch : The basic directory layout for the Nginx server
nginx-mimetypes.noarch : MIME type mappings for nginx
nginx-mod-devel.aarch64 : Nginx module development files
nginx-mod-http-image-filter.aarch64 : Nginx HTTP image filter module
nginx-mod-http-perl.aarch64 : Nginx HTTP perl module
nginx-mod-http-xslt-filter.aarch64 : Nginx XSLT module
nginx-mod-mail.aarch64 : Nginx mail modules
nginx-mod-stream.aarch64 : Nginx stream modules

Amazon Linux 2 でお馴染みのamazon-linux-extrasは、Amazon Linux 2023で廃止になりました。

Packages in Amazon Linux 2 not in Amazon Linux 2023 - Amazon Linux 2023
AcompletelistofpackagesthatwerepartofAmazonLinux2buthavenodirectupgradecurrentlyinAmazonLinux2023

Nginxをインストールします。

yオプションを使って、インタラクティブなインストールを回避しています。

$ sudo dnf install -y nginx

インストールできたかを確認します。以下のように表示されればインストールは成功です。

$ nginx -v
nginx version: nginx/1.24.0

EC2インスタンス上のNginxを起動する

Nginxを起動します。

$ sudo systemctl start nginx

起動できたかを確認します。以下のように表示されれば起動しています。

$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; preset: disabled)
     Active: active (running) since Thu 2023-09-21 13:42:02 UTC; 6s ago
    Process: 24877 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
    Process: 24878 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
    Process: 24879 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
   Main PID: 24880 (nginx)
      Tasks: 3 (limit: 2131)
     Memory: 3.0M
        CPU: 51ms
     CGroup: /system.slice/nginx.service
             ├─24880 "nginx: master process /usr/sbin/nginx"
             ├─24881 "nginx: worker process"
             └─24882 "nginx: worker process"

Sep 21 13:42:02 ip-172-31-22-31.ap-northeast-1.compute.internal systemd[1]: Starting nginx.service - The nginx HTTP and reverse proxy server...
Sep 21 13:42:02 ip-172-31-22-31.ap-northeast-1.compute.internal nginx[24878]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Sep 21 13:42:02 ip-172-31-22-31.ap-northeast-1.compute.internal nginx[24878]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Sep 21 13:42:02 ip-172-31-22-31.ap-northeast-1.compute.internal systemd[1]: Started nginx.service - The nginx HTTP and reverse proxy server.

次回のインスタンス起動時に、自動でNginxが起動するように設定します。

$ sudo systemctl enable nginx

Webサーバー(EC2インスタンス)へアクセスする

まず、curlコマンドでインスタンス内部からWebサーバーへアクセスできるかを確認します。

$ curl localhost

以下のように表示されれば、アクセス成功です。

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

インスタンス外側からもアクセスできるかを確認します。

EC2インスタンスのパブリック IPv4 DNSかパブリックIPへブラウザからアクセスし、以下のように表示されれば成功です。

まとめ

この記事は以下のような方におすすめできるように、執筆しました。

  • 検証用のWebサーバーをさくっと構築したい。
  • ロードバランサーは使わない。
  • HTTPS通信しなくていい。

効率的に学習するならプログラミングスクールの検討もありです。

さらに詳しく学びたい方は、以下の書籍がおすすめです。

nginx実践入門

Nginxの構築と運用に関する幅広い知識を得られます。リアルなユースケースを元にした具体例が豊富に紹介されており、初心者から上級者まで、あらゆるレベルのエンジニアにとって実際の問題解決に役立ちます。

Takaharu Niki

・Webエンジニア5年目。
・バックエンドを中心に、フロントエンドやDevOps業務も経験。
・現在は、自社サービス企業のテックリードとして従事。

Takaharu Nikiをフォローする
AWS
Takaharu Nikiをフォローする
アントレプログラマー
タイトルとURLをコピーしました