AWSの部屋

AWS学習者向けのブログです

EC2 を使ってプロキシサーバを構築してみる

はじめに

本日は EC2 をプロキシサーバとして構築し、プライベートサブネット内のサーバからパブリックサブネットのプロキシサーバを経由してインターネットに接続してみようと思います。

使用するサービス

  • Amazon EC2・・・AWS が提供するコンピューティングプラットフォーム

アーキテクチャ

パブリックサブネットにプロキシサーバ(Squid をインストール)、プライベートサブネットに DBサーバを置く構成にします。

Squid とは

プロキシサーバ、ウェブキャッシュサーバなどに利用されているオープンソースソフトウェア。本日はプロキシサーバとして使用します。

手順

  1. ネットワーク・サーバ構築
  2. Squid のインストール
  3. Squid の設定
  4. DBサーバからプロキシサーバを経由するための設定
  5. 動作確認

1. ネットワーク・サーバ構築

以下のようにサブネット、ルートテーブルなどを作成しネットワーク・サーバを構築します。詳細は割愛しますが、ネットワーク・サーバ構築に関してはこちらの書籍がおすすめなのでぜひ読んでみてください。

<ルートテーブル>

ルートテーブル名 設定
public-route-table 10.0.0.0/16, 0.0.0.0/0
private-route-table 10.0.0.0/16

<サブネット>

サブネット名 ルートテーブル
public-subnet public-route-table
private-subnet private-route-table

<セキュリティグループ>

セキュリティグループ名 インバウンドルール
public-security-group ポート22,3128,80,443を許可(SSH,Squid,HTTP,HTTPSのポート)
private-security-group ポート22を許可(SSHのポート)

<EC2>

ホスト名 OS セキュリティグループ
proxy-server Amazon Linux 2 public-security-group
db-server Amazon Linux 2 private-security-group

2. Squid のインストール

以下コマンドで Squid をインストールします。

sudo yum install squid -y

Squid自動起動を有効にします。

sudo systemctl enable squid

3. Squid の設定

squid.conf(Squid の設定ファイル)を開きます。

sudo vi /etc/squid/squid.conf

設定ファイルに以下を追加します。

acl private-subnet src 10.0.2.0/24 # ADD for private-subnet
http_access allow private-subnet   # ADD access from private-subnet

Squid を再起動をします。

sudo service squid restart

4. DBサーバからプロキシサーバを経由するための設定

yumwget の設定ファイルにプロキシの設定をします(プロキシサーバを経由して、DBサーバから yumwget でインターネットにアクセスするために)。

まずはDBサーバの秘密鍵ファイルをプロキシサーバにアップロードし、以下のようにDBサーバに SSH 接続します。

ssh -i <秘密鍵ファイル名> ec2-user@DBサーバのプライベートIPアドレス
yum の設定

yum.conf を開きます。

sudo vi /etc/yum.conf

プロキシ設定を追加します。(Squid が使うポートを設定します)

proxy=http://<プロキシサーバのプライベートIPアドレス>:3128
wget の設定

wget の設定ファイルを開きます。

sudo vi /etc/wgetrc

プロキシ設定を追加します。(Squid が使うポートを設定します)

http_proxy=http://<プロキシサーバのプライベートIPアドレス>:3128/
https_proxy=http://<プロキシサーバのプライベートIPアドレス>:3128/
ftp_proxy=http://<プロキシサーバのプライベートIPアドレス>:3128/

5. 動作確認

yum

MariaDB をインストールしてみます。

sudo yum -y install mariadb-server

インストールすることができました。

wget

以下のWebサイトをダウンロードしてみます。

wget https://www.hatena.ne.jp/

Webサイトのダウンロードできました。

さいごに

パブリックサブネットに NATゲートウェイを構築すれば同じことをもっと簡単にできたとは思いますが、今回は勉強のためにあえて EC2 をプロキシサーバとして構築してみました(やはり手を動かして何かを作るのは楽しいですね)。AWS認定ソリューションアーキテクト-プロフェッショナル合格に向けて今後も色々なサービスを楽しみながら使っていこうと思います。