すこぶる.net

技術系備忘録など

AWS nginx WordPress 未分類

【Nginx】Amazon S3へリバースプロキシ

投稿日:2021年2月17日 更新日:

Nginx から Amazon S3 へリバースプロキシ

今回は Nginx から Amazon S3 へリバースプロキシする方法について触れたいと思います。
( 以前はプライベートな S3 へのリバースプロキシについて投稿しました。 https://scble.net/2018/02/12/nginx_private_s3_reverse_proxy/

S3 を使用する理由やメリットはいくつもありますが、例えば WordPress でアップロードされる画像などをストアするとよいと思います。
WordPress でアップロードされる(投稿される)画像は、Github などの管理外になる可能性があります。
そうした場合、サーバが冗長化され負荷分散されているような環境では、アップロードされた画像があるサーバと、そうでないサーバが存在することになり、リクエストによっては画像が返すことができない状態を生んでしまいます。
そこで S3 で管理することでそういった自体を防ぐことができます。

設定方法

以下、具体的な設定例となります。

注目すべき点は、 resolver の設定を入れているところです。
Nginx では proxy_pass で設定している先の名前解決をプロセスの起動時にしか行いません。
S3 のようにエンドポイントの IPアドレスが変わる場合、 resolver の設定を入れていないと、初めは接続できていたが突然接続できなくなるということが起こりえます。そのため resolver を設定し、定期的に名前解決を行うようにしてください。

また上記の設定例では、 Nginx 側でレスポンスをキャッシュするようにしています。
こうすることで、S3 へのアクセスを減らし、クライアントに対して迅速にコンテンツを返すと同時に、S3 との転送料金を削減することができます。
AWS 外の環境にある Nginx から S3 へリバースプロキシする際は入れておくとよいかと思います。

-AWS, nginx, WordPress, 未分類
-, , ,

執筆者:

関連記事

【Nginx】キャッシュ作成時のバックエンドへのリクエストをproxy_cache_lockで制限する

概要 Nginx でキャッシュの有効期限が切れたとき、一勢にリクエストがバックエンドに流れることになります。。 そうなると、当然バックエンドサーバの負荷が大きくなりサービス障害につながるので注意が必要 …

【Nginx】DoS対策_limit_req_zone

Nginx で DoS 対策を行う方法 Web サイトを公開するにあたり、Nginx で簡単な DoS 攻撃対策を行う方法を紹介します。特別な方法ではなく最初から Nginx にある機能の紹介です。 …

【Nginx】$upstream_cache_status-キャッシュステータスの見方

Nginx でキャッシュのステータスを確認する方法 まずNginxでキャッシュを使用している場合に、ユーザのリクエストに対して、キャッシュが効いているか確認する方法を紹介します。 やることは非常に簡単 …

【ALB】ターゲットがunhealthyでもつながる仕様

AWS ALBの動作について AWSで使用しているALB(Application Load Balancer)の動作で誤解していたことがあった。 ALB配下にEC2インスタンスを複数台ぶら下げた状況で …

DNSの多段CNAMEとRoute53のエイリアスレコードとは

多段 CNAME とは 多段 CNAME とは、 DNS において、 CNAME レコードに別の CNAME レコードを登録することです。 具体的には以下のようなレコードを多段 CNAME といいます …