投稿日
EKSでSquidのフォワードプロキシを構築する
もくじ
はじめに
Squidとは
Squid は、HTTP、HTTPS、FTP などをサポートする Web 用のキャッシング プロキシです。頻繁に要求される Web ページをキャッシュして再利用することにより、帯域幅を削減し、応答時間を改善します。Squid には広範なアクセス制御があり、優れたサーバー アクセラレータになります。Windows を含むほとんどの利用可能なオペレーティング システムで実行され、GNU GPL の下でライセンスされています。
構築方法
1. EKSデプロイ
2. ALB Controllerデプロイ
3. Squid用Fargate Profileデプロイ
4. Dockerイメージの準備
5. Squidデプロイ
6. 動作確認
- テスト用にNginxのPodを起動します。curlコマンドが使えればNginxでなくても構いません。
$ kubectl run nginx --image=nginx -n kube-system -l app:squid
- NginxのPodに入ります。
$ kubectl exec -it nginx -n kube-system -- /bin/sh
- 以下のようにプロキシを指定してcurlを実行します。-xオプションでプロキシを指定します。whitelistで許可したドメインには問題なくアクセスできます。
> curl https://www.tis.co.jp -x http://k8s-kubesyst-squid-9805ffda40-3605941818c5eae9.elb.ap-northeast-1.amazonaws.com:3128
- 以下のようにプロキシを指定してcurlを実行します。-xオプションでプロキシを指定します。whitelistで許可していないドメインにはアクセスできません。
> curl https://www.google.com -x http://k8s-kubesyst-squid-9805ffda40-3605941818c5eae9.elb.ap-northeast-1.amazonaws.com:3128
- Nginx Podから抜けます。
> exit
- 以下コマンドでSquidのログを確認します。上記アクセスした際のログが記録されています。
$ kubectl get pod -n kube-system $ kubectl logs -n kube-system squid-XXXXXXXX ... 2022/08/31 07:12:14| 192.168.13.79 TCP_TUNNEL/200 46966 CONNECT www.tis.co.jp:443 - HIER_DIRECT/163.44.161.163 - 2022/08/31 07:13:05| 192.168.13.79 TCP_DENIED/403 3867 CONNECT www.google.com:443 - HIER_NONE/- text/html
参考記事
本ドキュメントは以下の文書を基に作成しました。
squid-cache.org http://www.squid-cache.org/
[Docker] コンテナでSquidを動かしてproxyサーバーを構築 https://zaki-hmkc.hatenablog.com/entry/2020/09/04/224822