Membangun dan mengelola sistem di cloud: komputasi dengan EC2, isolasi jaringan dengan VPC dan security groups, serta memanfaatkan managed services agar operasi menjadi lebih sederhana

Selama 12 episode kita mengelola server seolah-olah di data center sendiri — dan memang, semua konsep itu tetap berlaku di cloud. Tetapi cloud bukan sekadar "VM di kantor orang lain": ia memperkenalkan cara kerja baru dalam provisioning, jaringan virtual, keamanan berbasis policy, dan layanan terkelola (managed services) yang mengubah peran System Engineer.
Mengapa episode ini penting? Karena di 2026, hampir semua perusahaan menjalankan sebagian infrastrukturnya di cloud. Episode ini menggunakan AWS sebagai contoh utama (konsepnya berlaku juga di GCP/Azure): komputasi EC2, isolasi jaringan VPC, keamanan dengan security groups, dan kapan memilih managed services.
Di cloud, VM disebut instance. Instance lahir dari AMI (machine image) — template berisi OS dan konfigurasi. Provisioning instance adalah pekerjaan yang bisa diulang; di sini kita melakukannya via CLI untuk membiasakan diri dengan automation:
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type t3.micro \
--key-name my-keypair \
--security-group-ids sg-0aaa1111 \
--subnet-id subnet-0bb2222 \
--user-data file://bootstrap.sh \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=web01}]'Perhatikan --user-data: script yang dijalankan saat instance pertama kali lahir. Inilah awal dari prinsip infrastructure as code (episode 25) — instance dibangun dari definisi, bukan manual.
#!/bin/bash
set -e
sudo apt update
sudo apt install -y nginx
echo "<h1>Web01 ready</h1>" | sudo tee /var/www/html/index.html| Type | Kegunaan | Contoh |
|---|---|---|
t3.micro | Kecil, burstable, lab/ringan | Web kecil |
m5.large | General purpose (CPU+RAM seimbang) | Aplikasi umum |
c5.large | Compute-optimized | Batch, encoding |
r5.large | Memory-optimized | Cache, database |
g5.* | GPU | AI/inference (episode 23) |
Prinsip ekonomi cloud: right-sizing — bayar sesuai kebutuhan, jangan over-provision (episode 22).
Setiap sumber daya cloud hidup di dalam VPC (Virtual Private Cloud) — jaringan virtual yang terisolasi. Di dalam VPC ada subnet (publik untuk yang kena internet, privat untuk internal), route table, dan gateway.
aws ec2 describe-vpcs
aws ec2 describe-subnets
aws ec2 describe-route-tablesSecurity group adalah firewall stateful di level instance — lalu lintas kembali diizinkan otomatis. Aturan berbasis allow (default deny all). Contoh: web server hanya boleh menerima HTTP/HTTPS dari internet, dan SSH hanya dari IP kantor:
aws ec2 authorize-security-group-ingress \
--group-id sg-0aaa1111 \
--ip-permissions '[
{"IpProtocol":"tcp","FromPort":443,"ToPort":443,"IpRanges":[{"CidrIp":"0.0.0.0/0"}]},
{"IpProtocol":"tcp","FromPort":80,"ToPort":80,"IpRanges":[{"CidrIp":"0.0.0.0/0"}]},
{"IpProtocol":"tcp","FromPort":22,"ToPort":22,"IpRanges":[{"CidrIp":"103.x.x.x/32"}]}
]'Warning
Aturan emas security group: default deny, allow yang perlu saja. Jangan pernah membuka port database (5432, 3306) atau SSH ke 0.0.0.0/0 hanya karena "biar gampang". Ini penyebab #1 instance di-hack di cloud — bukan karena password, tapi karena port terbuka ke seluruh internet.
Network ACL (NACL) bekerja di level subnet, stateless (lalu lintas balik harus diizinkan eksplisit). Kombinasi ideal: NACL sebagai lapisan pertama (subnet), security group sebagai lapisan kedua (instance).
Perbedaan terbesar antara on-prem dan cloud: tersedianya managed services — layanan yang dikelola penuh oleh provider sehingga kalian tidak perlu memelihara server. Contoh:
| On-prem (kalian kelola) | Managed service (provider kelola) |
|---|---|
| VM + instal PostgreSQL | RDS (PostgreSQL managed) |
| VM + Redis sendiri | ElastiCache |
| Load balancer sendiri (nginx) | ALB / ELB |
| VM + backup manual | S3 + lifecycle policy |
| K8s self-managed | EKS / GKE / AKS |
Kapan memakai managed service? Pertimbangkan: (1) cost — managed service biasanya lebih mahal per unit, (2) operational burden — apakah tim punya kapasitas memelihara sendiri, (3) kebutuhan khusus — aplikasi yang butuh kontrol penuh mungkin tetap self-managed. Untuk database misalnya, RDS menghapus beban backup, patch, dan replikasi — tetapi membayar premium dan mengurangi fleksibilitas tuning.
Skenario: deploy web server yang aman di AWS.
# 1. Buat key pair
aws ec2 create-key-pair --key-name lab-key --query KeyMaterial --output text > lab-key.pem
chmod 400 lab-key.pem
# 2. Buat security group (allow 80/443/22)
aws ec2 create-security-group --group-name web-sg --description "Web server SG"
# ... tambahkan ingress rule seperti di atas
# 3. Luncurkan instance dengan bootstrap
aws ec2 run-instances --image-id ami-0abcdef1234567890 \
--instance-type t3.micro --key-name lab-key \
--security-groups web-sg --user-data file://bootstrap.sh
# 4. Akses via SSH
ssh -i lab-key.pem ubuntu@<public-ip>
curl http://<public-ip>0.0.0.0/0 untuk database/SSH — undangan hacking.Inti yang harus dibawa pulang:
Di episode 14 selanjutnya kita membahas perjalanan dari on-prem ke cloud: hybrid & migration — strategi migrasi, pertimbangan jaringan, dan sistem hybrid. Sampai jumpa di episode 14!