The CloudSOE Squid image gives you a ready-to-use caching forward proxy on a hardened Ubuntu base. Squid listens on port 3128 with a curated configuration: private-network ACLs, safe-port rules, a structured key=value access log and nightly log rotation. There are no credentials to retrieve and no first-boot setup to wait for — the proxy is serving as soon as the instance is up.

What you’ll need

  • An AWS account subscribed to the CloudSOE Squid listing on AWS Marketplace
  • An EC2 key pair in your target region (SSH is key-based only; password login is disabled)
  • About five minutes

Step 1 — Launch the instance

  1. Open the Squid listing on AWS Marketplace and click Continue to Subscribe, then Continue to Configuration.
  2. Pick your region and click Continue to LaunchLaunch through EC2.
  3. Choose an instance type. t3.small handles a small office or a fleet of servers doing apt/yum traffic; scale up for heavy caching workloads.
  4. Select your key pair. Launch the instance into the VPC whose clients it will serve — the shipped configuration only allows clients from private address space.

Prefer the CLI? Once subscribed:

aws ec2 run-instances \
  --image-id <ami-id-from-the-listing> \
  --instance-type t3.small \
  --key-name my-key \
  --security-group-ids sg-xxxxxxxx \
  --subnet-id subnet-xxxxxxxx \
  --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=squid-01}]'

Step 2 — Open the firewall ports (carefully)

PortProtocolPurpose
22TCPSSH administration — restrict to your IP
3128TCPSquid proxy — restrict to trusted source ranges only

Never open 3128 to 0.0.0.0/0. An internet-reachable proxy port gets found by scanners and abused within hours — for spam, credential stuffing and worse, all billed to your account. The shipped Squid config is a second line of defence (it only allows clients from RFC 1918, carrier-grade NAT and link-local ranges), but your security group should be the first: allow 3128 only from your VPC CIDR or your office ranges.

Step 3 — Point a client at the proxy

From an instance in the same VPC, use the proxy’s private IP:

curl -x http://<squid-private-ip>:3128 -sI https://www.example.com/

A HTTP/1.1 200 Connection established line followed by the site’s headers means the proxy is working. To route a whole shell session through it:

export http_proxy=http://<squid-private-ip>:3128
export https_proxy=http://<squid-private-ip>:3128

Step 4 — Watch the log

SSH in as ubuntu and tail the structured access log:

ssh ubuntu@<public-ip>
sudo tail -f /var/log/squid/access.log

Each request is one line of key=value pairs (url=, status=, src_ip=, bytes=, …) — see tips & tricks for reading it.

Next steps

  • Configure Squid — the shipped squid.conf, ACLs, authentication and cache sizing
  • Tips & tricks — log analysis, cache tuning and monitoring