ブログ | NGINX

チュートリアル: AWS で NGINX と NGINX Plus を Web サーバーおよびリバース プロキシとして設定する

NGINX-F5 水平黒タイプ RGB の一部
エイダン・カーソン サムネイル
エイダン・カーソン
2021年11月12日公開

NGINX は 15 年以上前に導入されて以来、着実に人気を博し、現在では世界で最も人気のある Web サーバーとなり、 [ngx_snippet name='number-sites'] を超える Web サイトで利用されています。 この場合、私たちは、他の例に倣って、すべてのWeb サービスニーズに NGINX を使用し、さらにリバース プロキシコンテンツ キャッシュロード バランサAPI ゲートウェイなどの機能を活用するのが賢明だと考えます。

このブログ記事では、個人のコンピューターの設定に影響を与えない、使いやすいセットアップで、Amazon Web Services (AWS) 上の Ubuntu 20.04 で NGINX を起動して実行する方法について説明します。 これには、 NGINXと、エンタープライズ グレードの機能が追加された商用サポート バージョンであるNGINX Plus の両方が含まれます。

ここで説明した手順を完了したら、NGINX の構成、管理、および運用方法を学習する 1 日コースである NGINX Core トレーニング (インストラクター主導またはオンデマンド) に進むことをお勧めします。このコースは、高度なトピックに関する他のインストラクター主導コースやセルフペース コースの準備にもなります。

チュートリアルには、次のタスクの手順が含まれています。

ターミナルへのアクセス

このチュートリアルでは、 Amazon Elastic Compute Cloud (EC2) インスタンスに接続するためのターミナルが必要です。 Mac にはターミナルが組み込まれていますが、Windows ユーザーは PuTTY または同等のツールをダウンロードする必要があります。 独自のローカルターミナルを使用して NGINX または NGINX Plus をセットアップし、Web コンテンツを提供したい場合は、 「AWS のセットアップ」に進んでください。

MacOS でターミナルにアクセスする

Mac では、組み込みのターミナルツールを使用して、このチュートリアルのすべての操作を実行できます。

  1. 画面上部のバーの右端にある虫眼鏡アイコンをクリックします。

  2. ポップアップ ボックスに「terminal」と入力し、Enter キーを押します。 別のターミナル ウィンドウが開きます。

Windows でターミナルにアクセスする

Windows にはターミナルが組み込まれていないため、インターネットからダウンロードする必要があります。 AWS と併せて、世界中で使用されているSSHクライアントである PuTTY をお勧めします。

  1. PUTTY のダウンロード ページにアクセスします。

  2. 任意の場所にファイルをダウンロードしてインストールし、開きます。 ただし、 「AWS の設定」の手順を完了するまで、実際のターミナルにアクセスすることはできません。

AWS の設定

このチュートリアルでは、 Amazon Virtual Private Cloud (VPC) があり、ほとんどのアカウントで作成されるデフォルトの VPC 設定をそのまま使用できることを前提としています。 このセクションでは、EC2 インスタンスを作成してそれに接続することで、AWS デプロイメントを設定します。

注記: EC2 インスタンスを作成するための以下の手順とスクリーンショットは、執筆時点で検証されており、AWS によって変更される可能性があります。 必要に応じて指示を調整します。

  1. AWS ホームページで、(AWS マネジメント) コンソールにサインインするか、必要に応じてまず新しいアカウントを作成します。

  2. コンソールのタイトル バーで[サービス]をクリックし、コンピューティングセクションで[EC2] をクリックします。

    AWS の「サービス」ページで「EC2」を選択したスクリーンショット

  3. 開いた EC2 ダッシュボード ページで、 [インスタンスの起動]ボタンをクリックします。

  4. ステップ 1ページで、 Ubuntu Server 20.04 LTS (HVM)、SSD ボリューム タイプ行の[選択]ボタンをクリックし、デフォルトの64 ビット (x86)アーキテクチャ選択をそのままにします。

    Amazon EC2 インスタンス作成ウィザードの「ステップ 1」ページのスクリーンショット

  5. ステップ 2ページで、 t2.microインスタンス タイプを選択します。このインスタンス タイプは、この記事の執筆時点では無料利用枠の対象としてマークされており、デフォルトで選択されています。 「次へ」をクリックします。 インスタンスの詳細を構成するボタン。

    Amazon EC2 インスタンス作成ウィザードの「ステップ 2」ページのスクリーンショット

  6. ステップ 3ページで、使用する VPC が[ネットワーク]フィールドで選択されていること、および[パブリック IP の自動割り当て]フィールドがデフォルトの[サブネットの使用] 設定 (有効)または[有効]に設定されていることを確認します。 残りの設定はデフォルトのままにしておきます。

    Amazon EC2 インスタンス作成ウィザードの「ステップ 3」ページのスクリーンショット

  7. 6をクリックします。 セキュリティグループを構成する ページの上部にあります。

  8. ステップ 6ページで、次の手順を実行して、受信 HTTP および HTTPS トラフィックを許可します (デフォルトでは、EC2 インスタンスは SSH トラフィックのみを受け入れます)。

    • 表の下にある[ルールの追加]ボタンをクリックし、 [タイプ] 列のドロップダウン メニューから[HTTP]を選択します。 このチュートリアルでは、任意の IP アドレスからのアクセスを許可します (ソース列の値はAnywhere 0.0.0.0/0, ::/0です)。 運用環境では、アクセスを制御するためにセキュリティ グループの使用を義務付けるページの警告に従うことをお勧めします。

    • HTTPSに対して前の手順を繰り返します。

    • ページの下部にある[レビューと起動]ボタンをクリックします。

    Amazon EC2 インスタンス作成ウィザードの「ステップ 6」ページのスクリーンショット

  9. ステップ 7ページで、下部にある[起動]ボタンをクリックします。

  10. ポップアップボックスで、新しいキーペアを作成します。

    • 上部のドロップダウン メニューから[新しいキー ペアの作成]を選択します。

    • キーペアのタイプを選択します。 このチュートリアルでは、 RSA を選択します。

    • キーペア名フィールドにNGINX_keyなどの名前を入力します。

    • 「キーペアのダウンロード」ボタンをクリックします。

    • 下のアニメーションのスクリーンショットに示すように、 [キー ペアのダウンロード]ボタンの代わりにチェック ボックスが表示されます。 クリックすると、秘密鍵にアクセスできることを示します。

    • 「インスタンスの起動」ボタンをクリックします。

    Amazon EC2 の「既存のキーペアを選択するか、新しいキーペアを作成する」ポップアップ ウィンドウのスクリーンショット

  11. ファイル マネージャー ユーティリティで、ダウンロードした.pemファイル (チュートリアルではNGINX_key.pem ) を安全な場所に移動します。 このチュートリアルでは、 /Desktop/NGINXディレクトリに配置します。

  12. Windows ターミナルを使用する場合は、 AWS の指示に従って PuTTYgen ユーティリティをダウンロードし、 .pemファイルを.ppkファイルに変換します。

  13. 起動ステータス」ページで、下部にある「インスタンスの表示」ボタンをクリックします。

  14. 開いた「インスタンス」ページの表に、新しいインスタンスが表示されます。 名前を付けます:

    • 名前列の鉛筆アイコンをクリックします。

    • 「名前の編集」ポップアップボックスに名前を入力し、 「保存」ボタンをクリックします。

    インスタンス名の編集を示す Amazon EC2 の「インスタンス」ページのスクリーンショット

  15. 画面上部の「接続」ボタンをクリックします。 次のようなウィンドウがポップアップ表示されます。 SSH クライアントタブを開き、指示に従ってインスタンスに接続します。 Windows を使用している場合は、コマンドの.pem.ppkに置き換えます。

    Amazon EC2 の「インスタンスに接続」ポップアップ ウィンドウのスクリーンショット

NGINX ソフトウェアのインストール

AWS 環境がセットアップされたので、次はNGINX Open SourceまたはNGINX Plusをインストールします。これらは 30 日間無料で試すことができます。 どちらのオプションもこのチュートリアルのコンテキストでは機能しますが、 NGINX Plusの高度な機能をさらに詳しく調べたい場合は、無料トライアルをリクエストしてください。

NGINXオープンソースのインストール

ほとんどの Linux ディストリビューションと BSD バリアントでは、NGINX Open Source を標準パッケージ リポジトリで利用できるようにしていますが、通常は最新バージョンではありません。 NGINX Open Source をnginx.orgから直接ダウンロードすることをお勧めします。 NGINX リポジトリを Ubuntu パッケージ マネージャー ( apt ) に追加するには、いくつかの追加手順が必要です。

NGINX Open Source をインストールするには、次の手順に従います。

  1. 端末にアクセスします。

  2. NGINX 署名キーをダウンロードします。

    $ sudo wget http://nginx.org/keys/nginx_signing.key
  3. キーを追加します:

    $ sudo apt-key nginx_signing.keyを追加します
  4. ディレクトリを/etc/aptに変更します。

    $ cd /etc/apt
  5. ソースリストファイルを編集し、最後に次のテキストを追加します。

    deb http://nginx.org/packages/ubuntu フォーカル nginx
    deb-src http://nginx.org/packages/ubuntu フォーカル nginx

    注記: これらの各行の焦点キーワードは、Ubuntu 20.04 に対応しています。 別のバージョンの Ubuntu を使用している場合は、そのリリースコード名の最初の単語を置き換えます (たとえば、Ubuntu 18.04 の場合はbionic )。

  6. NGINX ソフトウェアを更新します。

    $ sudo apt-getアップデート
  7. NGINX をインストールします。

    $ sudo apt-get nginxをインストール
  8. プロンプトが表示されたらYと入力します。

  9. NGINXを起動します:

    $ sudo systemctl nginx.service を起動します
  10. ステータスを確認します:

    $ sudo systemctl ステータス nginx.service
  11. 「Web ページを開く」に進みます。

NGINX Plusのインストール

  1. NGINX Plus をまだお持ちでない場合は、 30 日間の無料トライアルにサインアップしてください

  2. 試用サブスクリプションが利用可能になったことを通知する電子メールを受信したら、提供された手順に従ってセキュリティ証明書、秘密鍵、JWT をダウンロードし、NGINX Plus をインストールします。

  3. インストールが完了し、NGINX Plus が実行中になったら、 「Web ページを開く」に進みます。

ウェブページを開く

NGINX ソフトウェアを起動したら、サイトのコンテンツを配信するように設定する前に、NGINX と NGINX Plus がデフォルトで提供する Web ページを確認してください。 次の手順に従ってください。

  1. まだアクセスしていない場合は、EC2 ダッシュボードの[インスタンス]タブに移動します。 (1 つの方法は、コンソールの上部ナビゲーション バーで[サービス] をクリックし、コンピューティングセクションで[EC2] をクリックし、左側のナビゲーション列で[インスタンス] をクリックすることです。)

  2. テーブルを右にスクロールして、インスタンスのパブリック IP アドレスが[パブリック IPv4 アドレス]列に表示されるまでスクロールします (スクリーンショットでは 3.22.51.xxx です)。 アドレスを選択し、貼り付けバッファにコピーします。

    インスタンスの「パブリック IPv4 アドレス」フィールドが表示された Amazon EC2 の「インスタンス」ページのスクリーンショット

  3. 新しいブラウザタブを開き、アドレスをアドレスバーに貼り付けます。 デフォルトの「Welcome to nginx!」ページが表示され、NGINX はインストールされ実行されているが、まだ構成されていないことが示されます。

    ウェルカムページでは、NGINXリバースプロキシとWebサーバーが起動して実行されていることを確認します。

サンプルファイルの設定

NGINX または NGINX Plus の動作するバージョンをインストールしたら、それを有効に活用しましょう。 まず、いくつかのファイルとディレクトリを設定します。

  1. まだホーム ディレクトリにいない場合は、ディレクトリをホーム ディレクトリに変更します。 以下の手順では、 /home/ubuntuです。

  2. public_htmlというディレクトリを作成し、そこに移動します。

  3. public_htmlディレクトリに、 index.htmlというファイルとapplication1というディレクトリを作成します。

  4. application1ディレクトリに、テキストが入ったapp1.htmlというファイルを作成します。

  5. ホームディレクトリに戻ります。

  6. dataというディレクトリを作成します。

  7. データディレクトリに、 imagesというディレクトリを作成します。

ページと画像の提供

NGINX または NGINX Plus の最初の使用例は、Web ページを介してユーザーにページと画像を提供することです。

  1. ディレクトリを/etc/nginx/conf.dに変更します。

  2. NGINX または NGINX Plus がデフォルトの設定ファイルとして使用しないように、 default.conf の名前をdefault.conf.bakに変更します。

  3. 次の設定を含むserver1.confというファイルを作成します。

    サーバー { ルート /home/ubuntu/public_html;
    
    場所 /application1 { }
    
    場所 /images { 
    ルート /home/ubuntu/data; 
    }
    }

    ディレクティブのドキュメント: locationrootserver

  4. ディレクトリを~/data/imagesに変更します。

  5. 提供したい画像を見つけて、ディレクトリ ( ~/data/images ) にコピーします。 例として、次のコマンドはNGINX ロゴをコピーします。

    $ curl -o NGINX-logo.png https://www.nginx.com/wp-content/uploads/2021/11/NGINX-logo-2020.png
  6. NGINX または NGINX Plus をリロードします。

    $ sudo nginx -s リロード
  7. Web ブラウザで、次の URL にあるイメージをリクエストします。NGINX -serverは、EC2 インスタンスのパブリック IP アドレスです。

    https:// NGINX-server /images/NGINX-logo.png

  8. また、アプリケーションにアクセスして、何が得られるかを確認してください。

    https:// NGINX-server /application1/app1.html

プロキシサーバーの設定

これで、Web サーバーが動作するようになったので、トラフィックをルーティングするように構成する方法を学習します。 この機能により、トラフィックを他のサーバーに渡すことができるようになり、負荷分散を設定するための大きなステップとなります。 次の手順に従ってください。

  1. ~/dataディレクトリに、 server2というディレクトリを作成します。

  2. server2ディレクトリに、 sampleAppというディレクトリを作成します。

  3. sampleAppディレクトリに、テキストが入ったindex.htmlという名前のファイルを作成します。

  4. ディレクトリを/etc/nginx/conf.dに変更します。

  5. 次の設定を含むserver2.confというファイルを作成します。

    サーバー { listen 8080;
    root /home/ubuntu/data/server2;
    }

    ディレクティブのドキュメント: listenrootserver

  6. 次のように、最初のlocationブロックにproxy_passディレクティブを追加してserver1.conf を変更します。

    サーバー { ルート /home/ubuntu/public_html;
    
    場所 /application1 {
    proxy_pass http://localhost:8080/sampleApp;
    }
    
    場所 /images {
    ルート /home/ubuntu/data;
    }
    }

    ディレクティブのドキュメント: locationproxy_passrootserver

  7. NGINX または NGINX Plus をリロードします。

    $ sudo nginx -s リロード
  8. ブラウザで次の URL にアクセスし、 「ページと画像の提供」でアクセスしたときと比べて何が変わったかを確認します。

    https:// NGINX-server /application1/index.html

なるほど! これで、NGINX を実行する Ubuntu インスタンスが作成され、プロキシ サーバーとして実行できるようになりました。

追加のユースケースのために AWS に NGINX と NGINX Plus をデプロイする手順については、デプロイ ガイドを参照してください。

結論

このチュートリアルでは、NGINX または NGINX Plus を設定して、インターネット経由でファイルや画像を提供し、リバース プロキシとして機能する方法を学習しました。 NGINX についてさらに詳しく学習したい場合は、このチュートリアルのトピックに加えて、負荷分散、ロケーション ベースのルーティング、セキュリティなど、Web サービスとアプリケーション配信のより基本的な内容をカバーする NGINX Core トレーニング コース (インストラクター主導またはオンデマンド) をご利用いただけます。 また、 nginx.orgのドキュメントNGINX Plus 管理者ガイドも確認してください。特に記載がない限り、記事は NGINX Plus だけでなく NGINX Open Source にも適用されます。


「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"