すこぶる.net

技術系備忘録など

AWS nginx

NginxからプライベートのS3にリバースプロキシ

投稿日:2018年2月12日 更新日:

概要

Nginx から AWS にあるプライベートな S3 のバケットにリバースプロキシしたいという要件があったため、その方法をご紹介します。

AWS にある EC2 上からであれば、IAM Role の設定を行いより簡単に解決することができるますが、
今回は、外部サーバからプライベート設定をしている、AWS S3 を使用したい場合にどうするかを紹介します。
この方法は、AWS 以外のオブジェクトストレージにも使用できるため、ネットワークまわりの設定を行わずとも利用できます。

準備

必要なモジュールのインストール

ngx_devel_kit と lua-nginx を add_module で追加してビルドしてください。
ご自身の環境に合わせて パスを指定してください。

また S3 バケットにアクセスするための IAM を用意してください。

nginx.conf の設定

S3 ということで 画像ファイルへのアクセスを想定した設定を行ってみました。

上記のように設定を行えば、プライベートな S3 に Nginx からリバースプロキシできます。
resolver を設定しているのは、 s3.amazonaws.com の名前解決を行うためです。

パブリックな S3 をリバースプロキシするのであれば簡単なことですが、プライベート設定をしている S3 を使用する場合はこういった設定が必要です。

最後に

冒頭で述べたように外部からの使用するということを想定して設定してみましたが、通信料がかかるため、Nginx で一度アクセスがあったものは
キャッシュを使用するようにして通信料金の節約してください。

他に VPN 接続などいろいろと方法はあるので参考程度にしていただければと思います。

次回は今回の設定を使用し、画像をリサイズ処理する方法をご紹介したいと思います。

-AWS, nginx
-, , ,

執筆者:

関連記事

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

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

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

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

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

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

【Nginx】add_headerを複数箇所に記載すると消える(上書きされる)

Nginx でadd_headerを複数箇所に書く際の注意点 Nginxの設定ファイルでヘッダーを追加する場面は当然あると思います。 そんなとき server ディレクティブで add_header …

Nginxでconfigチェックした時にSSLエラーがでる「SSL_CTX_use_PrivateKey_file」

Nginxの設定ファイルが正しく記述されているかテストするときに、「nginx -t」コマンドを実行しテストします。 その実行時、下記のようなSSLに関するエラーが出ました。 [crayon-5deb …