AWSのリバースプロキシサーバーとは?その利点や構築方法などを紹介


AWSのリバースプロキシサーバーとは?
リバーシプロキシサーバーとは、クライアントとサーバーの仲介をしつつ、それを中断したりもするサーバーのことを指します。
このサーバーはクライアントからのリクエストをWEBサーバーの代わりに受けとり、クライアントの代わりにWEBサーバーにリクエストをします。
この仕組みによって、クライアントからWEBサーバーへのアクセスができない場合でも、AWSでリバースプロキシサーバーを使えば間接的にアクセスすることが可能となります。
AWSのリバースプロキシサーバーの利点
AWSのリバースプロキシサーバーを利用すると、どのような利点があるのか解説していきます。
まず、リバースプロキシからのアクセスが可能になったことにより、負荷を分散することができます。
さらに、リバースプロキシが要求を受け取る際にはセキュリティチェックとして利用することもできます。
ほかにも、SSL通信の代わりに使えたり、アプリケーションの統合やIPアドレスの節約などになることもリバースプロキシの魅力です。
AWSのリバースプロキシサーバーの構築方法
AWSのリバースプロキシサーバーを構築するまでの流れを解説します。
AWSのリバースプロキシサーバーの使用には、AWS EC2サーバーやLINUXのコマンド、WEBサーバーの基礎知識が必要となります。
①Apacheの起動
まずは、AWS内にApacheをインストールします。
[root@ip-172-31-45-88 ~]# yum install httpd
Installed:
httpd.x86_64 0:2.4.43-1.amzn2
Dependency Installed:
apr.x86_64 0:1.6.3-5.amzn2.0.2 apr-util.x86_64 0:1.6.1-5.amzn2.0.2 apr-util-bdb.x86_64 0:1.6.1-5.amzn2.0.2
generic-logos-httpd.noarch 0:18.0.0-4.amzn2 httpd-filesystem.noarch 0:2.4.43-1.amzn2 httpd-tools.x86_64 0:2.4.43-1.amzn2
mailcap.noarch 0:2.1.41-2.amzn2 mod_http2.x86_64 0:1.15.3-2.amzn2
Complete!
次に、Apacheの起動ポート80番を8080番に変更します。
ファイルパス: /etc/httpd/conf/httpd.conf
# httpdが8080番ポートで待ち受け
Listen 8080
そして、Apacheを起動します。
[root@ip-172-31-45-88 ~]# systemctl start httpd
[root@ip-172-31-45-88 ~]#
状態がactiveであることを確認します。
[root@ip-172-31-45-88 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2020-06-15 10:54:43 UTC; 6s ago
Docs: man:httpd.service(8)
Main PID: 708 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
tq708 /usr/sbin/httpd -DFOREGROUND
tq709 /usr/sbin/httpd -DFOREGROUND
tq710 /usr/sbin/httpd -DFOREGROUND
tq711 /usr/sbin/httpd -DFOREGROUND
tq712 /usr/sbin/httpd -DFOREGROUND
mq713 /usr/sbin/httpd -DFOREGROUND
Jun 15 10:54:43 ip-172-31-45-88.ap-northeast-1.compute.internal systemd[1]: Starting The Apache HTTP Server...
Jun 15 10:54:43 ip-172-31-45-88.ap-northeast-1.compute.internal systemd[1]: Started The Apache HTTP Server.
8080番ポートが開いているかを確認します。
[root@ip-172-31-45-88 ~]# netstat -atn | grep 8080
tcp6 0 0 :::8080 :::* LISTEN
最後に、ドキュメントルートに適当なhtmlファイルを入れておきます。
②Nginxの起動
まずは、AWS内にNginxをインストールします。
[root@ip-172-31-45-88 ~]# sudo yum install nginx
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00
No package nginx available.
Error: Nothing to do
nginx is available in Amazon Linux Extra topics "nginx1.12" and "nginx1"
To use, run
# sudo amazon-linux-extras install :topic:
Learn more at
https://aws.amazon.com/amazon-linux-2/faqs/#Amazon_Linux_Extras
エラーが出ますので、sudo amazon-linux-extras install nginx1.12を実行してください。
[root@ip-172-31-45-88 ~]# sudo amazon-linux-extras install nginx1.12
Installed:
nginx.x86_64 1:1.12.2-2.amzn2.0.2
Dependency Installed:
dejavu-fonts-common.noarch 0:2.33-6.amzn2 dejavu-sans-fonts.noarch 0:2.33-6.amzn2
fontconfig.x86_64 0:2.13.0-4.3.amzn2 fontpackages-filesystem.noarch 0:1.44-8.amzn2
gd.x86_64 0:2.0.35-26.amzn2.0.2 gperftools-libs.x86_64 0:2.6.1-1.amzn2
libX11.x86_64 0:1.6.7-2.amzn2 libX11-common.noarch 0:1.6.7-2.amzn2
libXau.x86_64 0:1.0.8-2.1.amzn2.0.2 libXpm.x86_64 0:3.5.12-1.amzn2.0.2
libxcb.x86_64 0:1.12-1.amzn2.0.2 libxslt.x86_64 0:1.1.28-5.amzn2.0.2
nginx-all-modules.noarch 1:1.12.2-2.amzn2.0.2 nginx-filesystem.noarch 1:1.12.2-2.amzn2.0.2
nginx-mod-http-geoip.x86_64 1:1.12.2-2.amzn2.0.2 nginx-mod-http-image-filter.x86_64 1:1.12.2-2.amzn2.0.2
nginx-mod-http-perl.x86_64 1:1.12.2-2.amzn2.0.2 nginx-mod-http-xslt-filter.x86_64 1:1.12.2-2.amzn2.0.2
nginx-mod-mail.x86_64 1:1.12.2-2.amzn2.0.2 nginx-mod-stream.x86_64 1:1.12.2-2.amzn2.0.2
Complete!
完了したら、Complete!とでます。次に、Nginxを起動します。
[root@ip-172-31-45-88 ~]# systemctl start nginx
[root@ip-172-31-45-88 ~]#
状態がactiveであることを確認します。
[root@ip-172-31-45-88 ~]# 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 Mon 2020-06-15 11:06:52 UTC; 45s ago
Process: 1386 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 1383 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 1382 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 1389 (nginx)
CGroup: /system.slice/nginx.service
tq1389 nginx: master process /usr/sbin/nginx
mq1391 nginx: worker process
Jun 15 11:06:52 ip-172-31-45-88.ap-northeast-1.compute.internal systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jun 15 11:06:52 ip-172-31-45-88.ap-northeast-1.compute.internal nginx[1383]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jun 15 11:06:52 ip-172-31-45-88.ap-northeast-1.compute.internal nginx[1383]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jun 15 11:06:52 ip-172-31-45-88.ap-northeast-1.compute.internal systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument
Jun 15 11:06:52 ip-172-31-45-88.ap-northeast-1.compute.internal systemd[1]: Started The nginx HTTP and reverse proxy server.
WEBブラウザでアクセスし、NginxのWelcomeページが表示されることを確認します。
③リバースプロキシサーバーの構築
まずは、Nginxのメイン設定ファイルを編集します。
ファイルパス: /etc/nginx/nginx.conf
この中のproxy_passというディレクティブにWEBサーバーのURLを入れます。
server {
location / {
# WEBリクエストをローカルホスト8080番ポートへリダイレクト
proxy_pass http://localhost:8080/;
}
}
キャッシュを有効化させるために、ディレクティブを追加します。
http {
# キャッシュファイルの保存場所等を定義
proxy_cache_path /var/cache/nginx keys_zone=zone1:1m max_size=1g inactive=24h;
# キャッシュの一時格納領域を定義
proxy_temp_path /var/cache/nginx_tmp;
# オリジンから来るCache-Controlを無視する
proxy_ignore_headers Cache-Control;
server {
location / {
# キャッシュを有効化
proxy_cache zone1;
proxy_cache_valid 200 302 600s;
# レスポンスヘッダにキャッシュヒットしたかどうかを含める
add_header X-Nginx-Cache $upstream_cache_status;
}
}
}
最後に、Nginxを再起動します。
[root@ip-172-31-45-88 ~]# systemctl restart nginx
[root@ip-172-31-45-88 ~]#
ここまでがリバースプロキシを構築するまでの流れです。
実際にAWSのリバースプロキシサーバーを使ってみよう!
いかがだったでしょうか。
AWSのリバースプロキシサーバーを使えば、サーバーの管理やアクセスをスムーズに行うことができるようになります。
ぜひ、この記事を参考にAWSでリバースプロキシサーバーを使ってみてください。
この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。