Catatan AWS Cloud Practitioner
Ringkasan Materi & Referensi AWS — Global Infrastructure, IAM, EC2, VPC, S3, RDS, dan lainnya
19Topik
57Blok konfigurasi
Topik 1 dari 19
1AWS Global Infrastructure#
1.1AWS Regions#
Deskripsi
- Region
- lokasi fisik (negara/kota) tempat AWS Cloud beroperasi di seluruh dunia
- Compliance
- mengikuti aturan/hukum negara tempat data harus disimpan
- Proximity
- jarak fisik region dengan lokasi user, mempengaruhi latency
- Feature Availability
- tidak semua service/fitur AWS tersedia di semua region
- Pricing
- harga service bisa berbeda-beda antar region
Catatan
- Pada setiap region, terdapat beberapa data center yang berada pada AZ (Availability Zone)
- Multi-AZ dan multi-region bisa membuat high availability & fault tolerance sebuah sistem menjadi lebih baik lagi
1.2AWS Availability Zones (AZ)#
Deskripsi
- AZ
- satu atau lebih data center terpisah secara fisik dalam 1 region, masing-masing punya listrik, pendingin, dan jaringan sendiri
Catatan
- Setiap region memiliki minimal 3 AZ (beberapa region punya lebih, hingga 6)
- Antar AZ dalam 1 region terhubung dengan bandwidth sangat besar dan latency sangat kecil, sehingga bisa dipakai untuk high availability
1.3AWS Point of Presence (PoP)#
Deskripsi
- PoP
- lokasi edge AWS yang tersebar lebih banyak dan lebih dekat ke user dibanding region/AZ
Catatan
- AWS punya 400+ PoP di 90+ kota di 47+ negara (jumlah terus bertambah)
- PoP berfungsi agar user bisa mengakses aplikasi/konten dengan lebih cepat (content delivery), dipakai misalnya oleh CloudFront
1.4Tipe AWS Service#
Deskripsi
- AWS Global Service
- service yang sama/terpusat untuk seluruh dunia, tidak perlu pilih region
- AWS Region Service
- service yang harus dijalankan di region tertentu, dan terpisah antar region
Contoh Tipe Service
| Tipe | Contoh Service |
|---|---|
| AWS Global Service | IAM, Route 53 (DNS), CloudFront (CDN), WAF |
| AWS Region Service | EC2, Lambda, RDS, S3 (bucket dibuat di region tertentu), dan sebagian besar service lain |
Topik 2 dari 19
2Identity and Access Management (IAM)#
2.1Introduction & Konsep IAM#
Catatan
- IAM digunakan untuk mengatur siapa saja (identitas) yang boleh melakukan apa saja di dalam akun AWS
- Yang diatur oleh IAM: user, group, atau role (disebut Principal/subjek)
- 3 elemen inti IAM: Principals (subjek yang meminta akses: user/group/role), Policies (aturan hak akses/permission), Resources (objek yang diakses: EC2, Lambda, S3, dll)
- IAM adalah AWS Global Service — konfigurasi IAM berlaku untuk seluruh region dalam 1 akun
2.2IAM User dan Group#
Deskripsi
- User Root
- akun default saat pertama kali membuat akun AWS. Sebaiknya hanya dipakai untuk membuat user lain, JANGAN dipakai untuk aktivitas sehari-hari karena punya akses penuh tanpa batas
- User
- dipakai per-engineer/individu untuk login ke AWS Account
- Group
- dipakai untuk mengelompokkan beberapa user sekaligus. 1 user bisa tanpa grup atau ikut banyak grup, dan permission yang diberikan ke grup otomatis berlaku ke semua anggotanya
Catatan
- 1 Account AWS bisa punya banyak IAM User (Account ≠ User)
Membuat IAM Group & User
1
Users groups › Create
Membuat group baru (tambahkan anggota & permission jika ada)
2
Users › Create
Membuat user baru: buat nama & password, lalu pilih cara pemberian permission
2.3IAM Policies / Permissions#
Deskripsi
- Policy
- aturan yang memberikan hak akses (permission) kepada user, group, atau role
Catatan
- 1 user bisa punya gabungan policy dari group-nya DAN policy khusus yang ditambahkan langsung ke user tsb
- Policy ditulis dalam format JSON
- AWS sudah menyediakan managed policy siap pakai, atau bisa membuat custom policy sendiri agar lebih 'least privilege' (hak akses seminim mungkin sesuai kebutuhan)
Contoh Managed Policy
| Nama Policy | Keterangan |
|---|---|
| IAMReadOnlyAccess | Hanya bisa melihat (read) konfigurasi IAM, tidak bisa mengubah |
| IAMFullAccess | Bisa melihat dan mengubah (konfigurasi) IAM |
| AdministratorAccess | Bisa akses dan konfigurasi SEMUA service AWS |
Membuat & Melampirkan IAM Policy
1
Policies › Create
Membuat custom policy baru
2
Pilih service & tambahkan action yang diizinkan
Menentukan resource/service dan hak akses spesifik (least privilege)
2.4IAM Password Policy#
Catatan
- Berbeda dengan policy IAM biasa (yang mengatur hak akses) — ini adalah aturan KHUSUS untuk password para IAM User saat login
- Contoh aturan yang bisa diatur: panjang minimal password, wajib ada karakter spesial, wajib ganti password berkala (mis. tiap 6 bulan), tidak boleh memakai password lama
Mengatur Password Policy Akun
1
Account Settings › Password Policy › Edit
Mengatur aturan password untuk semua IAM User
2.5MFA & Access Key#
Deskripsi
- MFA (Multi-Factor Authentication)
- lapisan keamanan tambahan selain password saat login (mis. kode OTP dari aplikasi authenticator)
- Access Key
- kredensial (terdiri dari Access Key ID & Secret Access Key) yang dipakai untuk akses AWS lewat CLI/SDK, BUKAN lewat browser/console
Mengaktifkan MFA & Membuat Access Key
1
Klik nama user › Security Credentials › Add MFA
Mengaktifkan MFA untuk user tsb
2
Klik nama user › Security Credentials › Create access key
Membuat access key untuk user tsb
Penting
Access Key harus dijaga kerahasiaannya seperti password — jangan pernah di-commit ke repository publik.
2.6Cara Akses AWS Account#
Catatan
- Ada beberapa cara untuk mengakses & mengelola AWS Account, tergantung kebutuhan
Cara Akses AWS
| Cara Akses | Kredensial | Keterangan |
|---|---|---|
| Management Console | Password + MFA | Akses lewat browser (GUI) |
| Command Line Interface (CLI) | Access Key | Cocok untuk repetitive task; jalankan 'aws configure' dulu agar CLI terhubung ke akun AWS |
| Software Development Kit (SDK) | Access Key | Untuk mengintegrasikan kode program dengan service AWS (mis. Python: pip install boto3, lalu import di program) |
| CloudShell | Otomatis (dari console) | CLI langsung dari browser, tanpa perlu install apapun |
2.7IAM Roles#
Catatan
- Role digunakan untuk memberikan policy/hak akses pada 1 service AWS agar bisa mengakses service AWS lain (bukan untuk manusia/user, tapi untuk service)
- Contoh: memberi hak akses EC2 agar bisa mengakses S3
- Studi kasus: EC2 ingin mengambil daftar user pada akun AWS. Jika memakai 'aws configure' (menaruh access key di dalam EC2), maka siapapun yang berhasil masuk ke EC2 tsb bisa mencuri access key tersebut (tersimpan di folder credential EC2) — ini berisiko
- Solusi: pakai IAM Role, sehingga EC2 mendapat izin akses ke service IAM TANPA perlu menyimpan access key sama sekali di dalam instance
Membuat & Melampirkan IAM Role ke EC2
1
IAM › Roles › Create
Membuat role baru & assign ke service (mis. EC2)
2
EC2 › Instance › Actions › Security › Modify IAM Role
Memasang role tsb ke instance EC2 yang dipilih
2.8Manajemen Akses & Kredensial#
Catatan
- Service pendukung untuk mengelola akses dan kredensial secara terpusat, melengkapi IAM dasar
Service Terkait Akses & Kredensial
| Service | Fungsi |
|---|---|
| AWS IAM Identity Center | Mengelola akses secara terpusat ke banyak AWS Account dan aplikasi sekaligus |
| AWS Secrets Manager | Mengelola kredensial secara terpusat (database, API key, dll) secara aman |
| AWS Systems Manager | Mengelola & memonitor node/instance secara terpusat |
Topik 3 dari 19
3EC2 Instance#
3.1Basic VPC (Pengantar)#
Deskripsi
- VPC (Virtual Private Cloud)
- jaringan privat virtual di AWS, dipakai untuk mengatur/mengelola jaringan tempat resource AWS (mis. EC2) berjalan
- VPC memiliki subnet
- subnet dipakai untuk segmentasi jaringan pada tiap AZ dalam region tsb
Catatan
- 1 VPC = 1 jaringan private/internal tersendiri
- Dalam 1 region, ada 1 VPC default (otomatis dibuat AWS), tapi bisa membuat banyak VPC lain (dibahas lebih detail di Bab 5)
Contoh Subnetting VPC Default
| AZ | CIDR Subnet |
|---|---|
| VPC Network | 172.31.0.0/16 |
| AZ a | 172.31.0.0/20 |
| AZ b | 172.31.16.0/20 |
| AZ c | 172.31.32.0/20 |
3.2EC2#
Deskripsi
- EC2 (Elastic Compute Cloud)
- service utama AWS untuk menyediakan virtual machine (compute) di cloud
Fitur-fitur pada EC2
| Fitur | Keterangan |
|---|---|
| Instance | Virtual machine (VM)-nya sendiri |
| EBS | Storage/disk untuk instance |
| ELB | Load balancer untuk instance |
| ASG | Auto scaling untuk menambah/mengurangi instance otomatis |
3.3EC2 Instance Configuration#
Catatan
- Langkah umum saat membuat 1 EC2 instance baru
Langkah Launch Instance EC2
1
EC2 › Instances › Launch instance
Memulai wizard pembuatan instance baru
2
Pilih OS (AMI)
Menentukan sistem operasi/image dasar instance
3
Pilih instance type
Menentukan spesifikasi CPU & RAM instance
4
Buat/pilih key pair
Untuk otentikasi SSH ke instance nantinya
5
Config network (AZ, IP public, firewall/SG)
Menentukan lokasi & aksesibilitas jaringan instance
6
Config storage
Menentukan ukuran & jenis disk instance
3.4Web Server di EC2 (Amazon Linux)#
Catatan
- Contoh langkah instalasi web server (Apache/httpd) di instance Amazon Linux lewat SSH
yum update -y
# Update seluruh package OS ke versi terbaru
yum install httpd -y
# Menginstall web server Apache (httpd)
systemctl start httpd
# Menjalankan service httpd
systemctl enable httpd
# Mengaktifkan httpd agar otomatis jalan saat boot
echo "<h1>hello from $(hostname -f)</h1>" > /var/www/html/index.html
# Membuat file index.html sederhana (isi halaman web)
systemctl restart httpd
# Merestart httpd agar perubahan file diterapkan
Penting
File halaman web utama Apache disimpan di /var/www/html/index.html.
3.5User Data#
Deskripsi
- User Data
- fitur agar EC2 instance otomatis menjalankan command tertentu saat pertama kali booting
Catatan
- Bisa diisi command apapun (mis. install & jalankan web server otomatis)
- Hanya dijalankan SEKALI, yaitu saat instance pertama kali booting (bukan setiap kali start)
- Manfaat: begitu instance selesai dibuat, software yang dibutuhkan sudah otomatis terinstall & berjalan tanpa perlu SSH manual
Menambahkan User Data saat Launch Instance
1
Bagian paling bawah saat Launch Instance (Advanced details › User data)
Menempelkan script/command yang akan dijalankan otomatis saat boot pertama
3.6Instance Type & Instance Families#
Catatan
- Instance type menentukan spesifikasi resource dari instance: vCPU, memory (RAM), storage, dan network performance
Kategori Instance Type
| Kategori | Karakteristik |
|---|---|
| General Purpose | Resource seimbang (CPU, memory, network) |
| Compute Optimized | vCPU lebih tinggi dibanding resource lain — untuk workload CPU-intensive |
| Memory Optimized | Memory (RAM) lebih tinggi — untuk workload yang butuh banyak memory |
| Accelerated Computing | Dilengkapi hardware accelerator/GPU — untuk machine learning, grafis, dll |
| Storage Optimized | Storage/disk lebih tinggi & cepat — untuk workload I/O-intensive |
3.7Security Group#
Deskripsi
- Security Group (SG)
- firewall dasar untuk EC2 instance, mengatur traffic masuk (inbound) dan keluar (outbound)
Catatan
- 1 security group bisa dipakai oleh banyak instance sekaligus
- Default: outbound rule = allow all (semua traffic keluar diizinkan), inbound rule = drop all (semua traffic masuk ditolak) — sehingga inbound rule WAJIB dikonfigurasi manual
- Yang diatur pada tiap rule: protocol, port, dan source address
Membuat Security Group
1
EC2 › Network & Security › Security Groups › Create
Membuat security group baru (bisa juga langsung saat membuat instance)
Penting
Advanced Security Group: source rule bisa diisi security group lain (bukan cuma IP). Contoh: Instance 2 memakai SG yang allow SSH dari 'SG milik Instance 1' — artinya hanya instance dengan SG tsb yang boleh SSH ke Instance 2, siapapun IP-nya.
3.8SSH dan SCP#
Catatan
- Cara mengakses (SSH) dan mengirim file (SCP) ke EC2 instance dari command line, memakai private key (.pem)
ssh <user_name>@<ip_address> -i <key_name>.pem
# SSH ke instance memakai IP address
ssh <user_name>@<dns_name> -i <key_name>.pem
# SSH ke instance memakai DNS name
scp -i <key_name>.pem <file_name> <user_name>@<ip_address>:home/ec2-user/
# Mengirim file ke instance memakai IP address
scp -i <key_name>.pem <file_name> <user_name>@<dns_name>:home/ec2-user/
# Mengirim file ke instance memakai DNS name
3.9Private IP dan Public IP#
Deskripsi
- IP Public
- dipakai untuk diakses dari internet
- IP Private
- dipakai untuk koneksi internal di dalam AWS (antar resource dalam VPC/AZ)
Catatan
- Secara default, EC2 instance punya 2 IP sekaligus: IP Public dan IP Private
- IP Public bawaan (dynamic) akan BERUBAH setiap kali instance di-stop lalu di-start lagi, KECUALI memakai Elastic IP (Bab 3.10) yang membuatnya tetap/statis
3.10Elastic IP#
Deskripsi
- Elastic IP
- solusi agar IP Public instance tidak berubah meskipun instance di-stop/start
Catatan
- IP tidak akan hilang selama tidak dihapus (dilepas) secara manual
- Default kuota maksimal 5 Elastic IP (IP public statis) per akun, tapi bisa request kenaikan limit ke AWS
Alokasi & Asosiasi Elastic IP
1
EC2 › Network & Security › Elastic IPs › Allocate
Membuat/mengalokasikan Elastic IP baru
2
Action › Associate Elastic IP address
Memasang Elastic IP ke instance yang dipilih
3.11Private DNS dan Public DNS#
Deskripsi
- Private DNS
- hostname yang hanya bisa di-resolve/diakses dari internal (dalam AWS Cloud/VPC)
- Public DNS
- hostname yang bisa di-resolve/diakses dari internet
Catatan
- Secara default, tiap EC2 instance sudah otomatis mendapat Private DNS dan Public DNS masing-masing
3.12Elastic Network Interface (ENI)#
Deskripsi
- ENI
- 'LAN card' virtual di AWS Cloud, jadi tempat menempelnya IP address pada instance
Catatan
- 1 instance bisa punya lebih dari 1 ENI (jumlah maksimal tergantung instance type)
- ENI secondary bisa dipindah-pindah antar instance, tapi harus tetap dalam 1 AZ yang sama
- IP address melekat pada ENI — khusus IP Public hanya bisa melekat pada ENI primary
Membuat & Attach/Detach ENI
1
EC2 › Network & Security › Network Interface › Create
Membuat ENI (secondary) baru
2
Action › Attach/Detach
Memasang/melepas ENI secondary tsb ke/dari sebuah instance
Penting
IP address pada ENI secondary TIDAK berubah walaupun ENI-nya dipindah ke instance lain.
Topik 4 dari 19
4EC2 Storage#
4.1Elastic Block Store (EBS)#
Deskripsi
- EBS
- network drive (storage) yang bisa di-attach ke EC2 instance, bahkan saat instance sedang running
Catatan
- Bisa dianalogikan seperti flashdisk/SSD: 1 EBS hanya bisa di-attach ke 1 instance dalam 1 waktu, tapi 1 instance bisa di-attach banyak EBS sekaligus
- EBS terikat pada 1 AZ tertentu (tidak bisa langsung dipakai lintas AZ)
- Secara default, setiap EC2 instance sudah otomatis punya EBS storage (root volume)
4.2EBS Configuration#
Catatan
- Langkah membuat, memasang (attach & mount), dan melepas (detach & unmount) EBS volume ke instance
Membuat & Attach EBS Volume
1
EC2 › Elastic Block Store › Volumes › Create
Membuat EBS volume baru (atur jenis, kapasitas, AZ)
2
Actions › Attach Volume
Memasang volume ke instance yang dipilih
fdisk -l
# Cek disk yang sudah terhubung ke instance (dari dalam EC2)
mkfs -t xfs <disk_path>
# Memformat disk (tidak perlu diulang jika volume dipindah ke instance lain yang sudah pernah diformat)
mkdir /data
# Membuat directory tempat mount
mount <disk_path> /data
# Mount disk ke directory yang dibuat
df -h
# Cek disk yang sudah ter-mount
resize2fs <disk_path>
# Menyesuaikan filesystem jika volume di-resize (diperbesar)
umount <disk_path> /data
# Melepas (unmount) disk dari directory, sebelum detach
Detach EBS Volume
1
Actions › Force detach volume
Melepas volume dari instance (dari console)
Penting
Delete on termination: secara default, root EBS akan ikut terhapus saat instance di-terminate (bisa dimatikan/disable). EBS secondary TIDAK akan terhapus otomatis saat instance di-terminate.
4.3EBS Snapshot#
Deskripsi
- Snapshot
- cara backup untuk EBS volume
Catatan
- Disarankan detach volume dulu sebelum membuat snapshot, agar tidak ada data yang berubah saat proses snapshot berjalan
- Snapshot bisa di-restore menjadi volume baru di AZ lain (tidak terikat AZ asal seperti volume biasa)
Membuat & Restore EBS Snapshot
1
EC2 › EBS › Volumes › Actions › Force detach volume
Melepas volume sebelum snapshot (opsional tapi disarankan)
2
EC2 › EBS › Volumes › Actions › Create snapshot
Membuat snapshot dari volume
3
EC2 › EBS › Snapshots › Actions › Create volume from snapshot
Membuat volume baru dari snapshot (bisa pilih AZ lain)
4
EC2 › EBS › Volumes › Attach › Mount
Memasang & mount volume hasil restore ke instance
4.4Elastic File System (EFS)#
Deskripsi
- EFS
- file storage yang bisa di-attach ke BANYAK instance sekaligus dalam waktu bersamaan (beda dengan EBS yang cuma 1 instance)
Catatan
- Multi-AZ (tidak terikat 1 AZ seperti EBS)
- Harga sekitar 3x lebih mahal dari EBS, tapi sistem pembayarannya pay-per-use (bayar sesuai pemakaian, tidak perlu provision ukuran di awal)
- Cocok untuk kasus: file sharing antar server, web directory bersama
- Menggunakan security group untuk kontrol akses
- Hanya untuk sistem Linux
4.5EFS Configuration#
Catatan
- Langkah menyiapkan security group, membuat EFS, lalu mounting-nya ke instance Linux
Membuat & Menyiapkan EFS
1
Buat security group untuk EFS dengan service 'NFS'
Menyiapkan akses network EFS (di menu EC2)
2
EFS › Create file system › Customize
Membuat EFS, atur nama & pilih security group (EFS otomatis buat ENI ke tiap AZ)
3
Pilih EFS › Attach
Mendapatkan command mount untuk EFS tsb
sudo su
# Masuk sebagai root (dari dalam EC2 instance)
yum install -y amazon-efs-utils
# Menginstall utility EFS di instance
Mount EFS ke Instance
1
Buat directory & mount memakai command dari EFS
Mount EFS ke instance (ulangi di setiap instance yang ingin memakai EFS yang sama)
4.6EFS Lifecycle Management#
Catatan
- Data pada EFS yang sudah lama tidak diakses bisa otomatis dipindahkan ke storage class Infrequent Access (IA) yang jauh lebih murah
- Waktu/durasi kapan data dipindahkan bisa diatur
Mengatur Lifecycle Management EFS
1
EFS › pilih EFS › Edit › Lifecycle management
Mengatur aturan lifecycle (kapan data dipindah ke IA)
4.7Amazon Machine Image (AMI)#
Deskripsi
- AMI
- image/template yang dipakai untuk membuat EC2 instance (berisi OS + konfigurasi/software yang sudah terpasang)
Catatan
- AMI terikat pada 1 region, tapi bisa di-copy ke region lain
Jenis AMI
| Jenis | Keterangan |
|---|---|
| Public AMI | Disediakan komunitas/vendor OS, mis. Ubuntu, Debian, Kali Linux |
| Quick Start AMI | Disediakan langsung oleh AWS, gratis, mis. Amazon Linux, Ubuntu, Windows Server |
| Marketplace AMI | Software berbayar dari vendor/partner pihak ketiga, mis. RedHat Enterprise, F5, Palo Alto |
| Custom AMI | AMI buatan sendiri, hasil modifikasi (sudah diinstall software & dikonfigurasi sesuai kebutuhan) |
Langkah-langkah membuat & memakai Custom AMI
1
Buat & konfigurasi instance seperti yang diinginkan, lalu Stop instance
Menyiapkan instance sumber sebelum di-jadikan image
2
EC2 › Instance › Actions › Image and templates › Create image
Membuat custom AMI dari instance tsb
3
EC2 › Instance › Launch instance › pilih AMI dari 'My AMIs'
Membuat instance baru memakai custom AMI tsb
Topik 5 dari 19
5Virtual Private Cloud (VPC)#
5.1Intro VPC#
Deskripsi
- VPC
- jaringan privat virtual di AWS, dipakai untuk mengatur/mengelola jaringan tempat resource AWS berjalan
Catatan
- 1 VPC = 1 jaringan private/internal tersendiri, terisolasi dari VPC lain secara default
- VPC memiliki subnet untuk segmentasi jaringan pada tiap AZ dalam region tsb
- Dalam 1 region, ada 1 VPC default (otomatis dibuat AWS), tapi bisa membuat banyak VPC lain
- VPC selalu memakai IP Private (10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, atau 192.168.0.0-192.168.255.255)
Contoh Subnetting VPC Default
| AZ | CIDR Subnet |
|---|---|
| VPC Network | 172.31.0.0/16 |
| AZ a | 172.31.0.0/20 |
| AZ b | 172.31.16.0/20 |
| AZ c | 172.31.32.0/20 |
5.2Dasar IPv4 & Subnetting#
Deskripsi
- Subnetting
- cara memecah 1 blok network menjadi beberapa subnet yang lebih kecil, supaya alokasi IP lebih efisien dan sesuai kebutuhan tiap AZ/segmen
Catatan
- IPv4 terdiri dari 4 oktet (contoh: 192.168.0.1), tiap oktet 8 bit, total 32 bit, dan nilai tiap oktet 0-255
Contoh Subnetting 192.168.0.0/24 → /28
| Langkah | Hasil |
|---|---|
| Host bits | 32 − 28 = 4 bit → 2⁴ = 16 IP per subnet |
| Kelipatan network | 0, 16, 32, 48, 64, 80, 96, 112, ... |
| Kelipatan broadcast | 15, 31, 47, 63, 79, 95, 111, 127, ... |
| Subnet pertama | 192.168.0.0/28 (host: 192.168.0.1–.14) |
| Subnet kedua | 192.168.0.16/28 (host: 192.168.0.17–.30) |
Catatan
- Cara cepat subnetting kalau prefix baru masih di oktet yang sama (mis. target /17–/24): (1) cari sisa bit di oktet tsb = 32 − prefix, (2) ukuran tiap block = 2^(sisa bit), (3) daftar network dimulai dari 0 dengan kelipatan ukuran block, broadcast = network berikutnya − 1
Contoh 1 — 10.0.0.0/23 dipecah untuk kebutuhan 100 host/subnet
| Langkah | Perhitungan | Hasil |
|---|---|---|
| Konfirmasi range /23 | /23 → sisa bit = 32−23 = 9 (lintas 2 oktet), fokus 2 oktet terakhir | Range: 10.0.0.0 – 10.0.1.255 |
| Tentukan prefix untuk 100 host | 100 host → dibulatkan ke 128 = 2^7 → perlu /25 | Ukuran tiap block = 128 IP |
| Network & broadcast tiap block | Kelipatan 128 mulai dari 0 (lintas oktet ke-4, lanjut oktet ke-3) | Network: .0, .128, lanjut oktet berikutnya .0, .128 dst |
Hasil subnet Contoh 1
| Subnet | Range Host Usable |
|---|---|
| 10.0.0.0/25 | 10.0.0.1 – 10.0.0.126 |
| 10.0.0.128/25 | 10.0.0.129 – 10.0.0.254 |
| 10.0.1.0/25 | 10.0.1.1 – 10.0.1.126 |
| 10.0.1.128/25 | 10.0.1.129 – 10.0.1.254 |
Contoh 2 — 10.16.0.0/16 dipecah jadi /20
| Langkah | Perhitungan | Hasil |
|---|---|---|
| Range awal | /16 | 10.16.0.0 – 10.16.255.255 |
| Sisa bit di oktet ke-3 | 32 − 20 = 12 bit lintas oktet, fokus oktet ke-3: 28−20=... → sisa 4 bit di oktet ke-3 | Ukuran tiap block = 2^4 = 16 (di oktet ke-3) |
| Network tiap block | Kelipatan 16 di oktet ke-3, mulai dari 0 | 0, 16, 32, 48, 64, … 240 |
Contoh hasil subnet Contoh 2 (3 blok pertama)
| Subnet | Range Host Usable |
|---|---|
| 10.16.0.0/20 | 10.16.0.1 – 10.16.15.254 |
| 10.16.16.0/20 | 10.16.16.1 – 10.16.31.254 |
| 10.16.32.0/20 | 10.16.32.1 – 10.16.47.254 |
Contoh 3 — 10.16.0.0/19 dipecah untuk kebutuhan 400 host/subnet
| Langkah | Perhitungan | Hasil |
|---|---|---|
| Konfirmasi range /19 | 32−19 = 13 bit, fokus oktet ke-3: sisa 5 bit → 2^5=32 | Range: 10.16.0.0 – 10.16.31.255 |
| Tentukan prefix untuk 400 host | 400 host → dibulatkan ke 512 = 2^9 → perlu /23 | Ukuran tiap block = 2 (di oktet ke-3, karena /23 lintas oktet ke-4) |
| Network tiap block | Kelipatan 2 di oktet ke-3: 0-1, 2-3, 4-5, … 30-31 | Setiap block = 2 nilai oktet ke-3 |
Hasil subnet Contoh 3 (4 blok pertama)
| Subnet | Range Host Usable |
|---|---|
| 10.16.0.0/23 | 10.16.0.1 – 10.16.1.254 |
| 10.16.2.0/23 | 10.16.2.1 – 10.16.3.254 |
| 10.16.4.0/23 | 10.16.4.1 – 10.16.5.254 |
| 10.16.6.0/23 | 10.16.6.1 – 10.16.7.254 |
5.3AWS VPC#
Catatan
- 1 akun bisa memiliki maksimal 5 VPC dalam 1 region (bisa request kenaikan limit)
- Secara default, antar VPC TIDAK bisa saling terhubung (perlu konfigurasi tambahan, mis. VPC Peering — Bab 5.12)
- Jika ingin menghubungkan antar VPC, pastikan range IP-nya tidak overlap (tumpang tindih) satu sama lain
- Prefix VPC di AWS dibatasi: minimal /28, maksimal /16
- Setiap region punya 1 VPC default yang otomatis dipakai EC2 instance jika tidak memilih VPC lain — VPC default ini sudah punya koneksi internet, IP public, dan DNS
Membuat VPC
1
VPC › Your VPCs › Create
Membuat VPC baru
2
Pilih 'VPC Only' atau 'VPC and More'
VPC Only = hanya buat VPC saja; VPC and More = otomatis buat VPC + subnet + IGW + route table sekaligus
5.4AWS Subnet#
Catatan
- AWS selalu mereservasi (mengunci) 5 IP pada setiap subnet yang dibuat (4 IP pertama & 1 IP terakhir), sehingga tidak bisa dipakai host
- VPC default hanya berisi public subnet. Subnet yang dibuat manual bisa diatur jadi public atau private subnet
Contoh 5 IP yang Direservasi AWS (10.0.0.0/24)
| IP | Kegunaan |
|---|---|
| 10.0.0.0 | IP Network |
| 10.0.0.1 | Direservasi untuk VPC router |
| 10.0.0.2 | Direservasi untuk Amazon-provided DNS |
| 10.0.0.3 | Direservasi untuk keperluan AWS di masa depan |
| 10.0.0.255 | IP Broadcast |
Membuat Subnet
1
VPC › Subnets › Create
Membuat subnet baru di dalam VPC
5.5Network ACL vs Security Group#
Catatan
- Keduanya sama-sama fitur keamanan jaringan di AWS, tapi beda level & cara kerja
Perbandingan
| Fitur | Sifat | Keterangan |
|---|---|---|
| Network ACL | Stateless | Tidak menyimpan state packet — baik traffic masuk maupun keluar SELALU dicek ulang terhadap rule (harus diatur inbound & outbound terpisah) |
| Security Group | Stateful | Menyimpan state packet — jika traffic masuk diizinkan, traffic balasannya otomatis diizinkan juga tanpa perlu rule outbound terpisah |
5.6Route Table#
Deskripsi
- Route Table
- mendefinisikan aturan routing (kemana traffic diarahkan) beserta gateway/next-hop-nya
Catatan
- Umumnya dibuat 2 macam: route table untuk public subnet (routing ke internet) dan untuk private subnet (routing internal)
Membuat Route Table & Asosiasi Subnet
1
VPC › Route Tables › Create
Membuat route table baru
2
Centang route table › Subnet associations › Edit
Menghubungkan (associate) route table ke subnet tertentu
5.7Internet Gateway (IGW)#
Deskripsi
- IGW
- pintu gerbang agar resource di dalam VPC bisa terhubung ke internet
Catatan
- Dipakai untuk subnet public (inilah yang membedakan subnet public dari private)
- 1 IGW hanya untuk 1 VPC, dan 1 VPC hanya boleh punya 1 IGW
- Setelah IGW dibuat & dipasang, harus ditambahkan sebagai next-hop pada route table milik public subnet
Membuat Internet Gateway & Mengatur Akses Internet Public
1
VPC › Internet gateways › Create
Membuat IGW baru
2
Action › Attach to VPC
Memasang IGW ke VPC yang dipilih
3
VPC › Route tables › pilih route table public › Routes › Edit
Masuk ke mode edit route table public
4
Tambahkan destination 0.0.0.0/0, target = internet gateway
Mengarahkan semua traffic keluar (internet) lewat IGW
5
Subnets › Action › Edit subnet settings › enable auto-assign public IPv4
Membuat instance baru di subnet tsb otomatis dapat IP public
6
VPC › Your VPC › Action › Edit VPC settings › enable DNS hostnames
Mengaktifkan pemberian DNS hostname otomatis di VPC
5.8Bastion Host#
Deskripsi
- Bastion Host
- instance di public subnet yang dipakai sebagai 'pintu masuk' untuk SSH ke instance-instance yang berada di private subnet (yang tidak punya IP public)
Penting
Best practice: buat SG khusus bastion host (hanya allow SSH dari IP admin saja), dan SG untuk instance private (hanya allow SSH & ICMP dari SG milik bastion host, bukan dari 'anywhere').
5.9NAT Gateway#
Deskripsi
- NAT Gateway
- dipakai sebagai gateway agar instance di private subnet tetap bisa mengakses internet (misal untuk update package), TAPI tetap tidak mendapat IP public sendiri
Catatan
- NAT Gateway berada di public subnet (namun tidak bisa dipakai oleh instance lain yang kebetulan ada di subnet public yang sama — hanya untuk instance di private subnet)
- Alur trafiknya: Private Subnet → NAT Gateway → Internet Gateway → Internet
Mode NAT Gateway
| Mode | Keterangan |
|---|---|
| Zonal (klasik) | Terikat 1 AZ tertentu, perlu 1 NAT Gateway per-AZ untuk high availability |
| Regional (fitur baru) | 1 NAT Gateway otomatis expand/contract mengikuti AZ mana yang ada workload-nya, tidak perlu bikin NAT Gateway terpisah per-AZ, dan tidak butuh public subnet khusus untuk hosting-nya |
Membuat NAT Gateway & Mengarahkan Route Private
1
VPC › NAT gateways › Create NAT gateway
Membuat NAT Gateway baru (pilih mode Zonal/Regional)
2
VPC › Route tables › pilih route table private › Routes › Edit
Masuk ke mode edit route table private
3
Tambahkan destination 0.0.0.0/0, target = NAT Gateway
Mengarahkan traffic internet dari private subnet lewat NAT Gateway
5.10Private Subnet#
Catatan
- Instance di private subnet BISA mengakses internet (lewat NAT Gateway), tapi TIDAK BISA diakses langsung dari internet
- Cocok dipakai untuk instance backend server, database, dan resource lain yang tidak perlu diakses publik
- Pola umum: frontend server (di public subnet) mengakses backend server (di private subnet) secara internal
5.11VPC Endpoint#
Deskripsi
- VPC Endpoint
- menghubungkan antar service AWS memakai jaringan private AWS (dalam VPC), bukan lewat internet
Catatan
- Secara default, komunikasi antar service AWS (mis. EC2 ke S3) lewat internet — dengan VPC Endpoint, komunikasi ini bisa dialihkan lewat jaringan private, lebih aman & cepat
Membuat VPC Endpoint
1
Buat IAM Role & pasang ke instance
Memberi izin akses instance ke service tujuan
2
VPC › PrivateLink and Lattice › Endpoints › Create endpoint
Membuat endpoint (atur nama, VPC, service tujuan, dan subnet)
5.12VPC Peering#
Deskripsi
- VPC Peering
- menghubungkan 2 VPC secara langsung (bisa beda region bahkan beda akun)
Catatan
- Range IP kedua VPC TIDAK BOLEH overlap
- VPC Peering bersifat NOT transitive: jika VPC A ↔︎ B dan B ↔︎ C, itu tidak otomatis membuat A ↔︎ C — harus dibuat peering terpisah lagi untuk A ↔︎ C
Membuat & Menyetujui VPC Peering
1
VPC 1: VPC › Peering Connections › Create
Membuat request peering dari VPC 1
2
VPC 2: VPC › Peering Connections › Action › Accept request
Menerima request peering di VPC 2
3
Tambahkan di route table masing-masing VPC
VPC 1 diarahkan ke network VPC 2 dan sebaliknya (gateway = peering connection)
5.13Menghubungkan Jaringan ke AWS#
Catatan
- Beberapa cara menghubungkan jaringan luar (on-premise/remote) dengan AWS Cloud
Cara Menghubungkan ke AWS
| Cara | Menghubungkan |
|---|---|
| AWS Client VPN | Remote worker (individu) ke VPC / jaringan on-premise |
| AWS Site-to-Site VPN | VPC dengan data center on-premise |
| AWS PrivateLink | Menghubungkan consumer VPC ke SATU service/aplikasi spesifik di VPC lain secara private & satu arah (bukan koneksi network penuh dua arah seperti VPC Peering); cocok untuk expose SaaS/microservice ke banyak VPC pelanggan |
| AWS Direct Connect | VPC dengan data center, TIDAK lewat internet publik (lewat AWS location langsung), bandwidth tinggi & lebih stabil |
Penting
Virtual Private Gateway: sisi gateway pada VPC yang dipakai untuk menghubungkan jaringan lokal fisik ke VPC memakai VPN.
Topik 6 dari 19
6Load Balancer & Auto Scaling Group#
6.1Konsep Load Balancing#
Deskripsi
- Load Balancer
- server yang membagi (forward) traffic ke beberapa server downstream, sehingga cukup 1 IP public untuk mengakses banyak server di belakangnya
Catatan
- Load Balancer melakukan health check berkala ke tiap downstream server untuk memastikan server tsb siap menerima traffic — jika unhealthy, traffic tidak akan diarahkan ke server tsb. Health check biasanya dicek pada port & route tertentu (mis. HTTP port 80, path /health); jika response bukan 200, dianggap unhealthy
Jenis Elastic Load Balancer (ELB)
| Jenis | Layer | Keterangan |
|---|---|---|
| Application Load Balancer (ALB) | L7 | Untuk protokol HTTP/HTTPS, bisa routing berdasar path/host |
| Network Load Balancer (NLB) | L4 | Untuk protokol TCP/UDP, performa & throughput sangat tinggi |
| Gateway Load Balancer (GWLB) | L3 | Beroperasi di level IP protocol, umumnya untuk appliance keamanan pihak ketiga |
Penting
ELB adalah managed service AWS: AWS yang menjamin, meng-update, dan memelihara load balancer-nya — pengguna hanya perlu konfigurasi. ELB terintegrasi dengan EC2/ASG, ECS, ACM, CloudWatch, Route 53, WAF, dan Global Accelerator.
6.2Load Balancer Routing Method#
Catatan
- ELB (Elastic Load Balancer) AWS juga punya beberapa metode routing untuk membagi traffic ke target, konsepnya mirip dengan load balancer pada umumnya (mis. F5)
Metode Routing
| Metode | Keterangan |
|---|---|
| Round Robin | Membagi request secara bergantian merata ke tiap target — default untuk Application Load Balancer |
| Least Outstanding Requests | Mengarahkan request ke target yang jumlah request aktifnya paling sedikit — tersedia untuk ALB |
| Flow Hash | Mengarahkan berdasarkan hash dari kombinasi source/destination IP & port — dipakai Network Load Balancer (L4) |
Penting
Berbeda dengan appliance load balancer seperti F5 yang punya banyak pilihan algoritma (round robin, least connections, ip hash, dll), ELB AWS (khususnya ALB) secara native hanya mendukung Round Robin dan Least Outstanding Requests.
6.3Security Group untuk ELB#
Catatan
- ELB punya SG sendiri untuk allow service (mis. HTTP/HTTPS) dari internet (anywhere)
- Downstream server (instance di belakang ELB) punya SG yang hanya allow traffic DARI SG milik ELB — bukan dari internet langsung
6.4Target Group#
Deskripsi
- Target Group
- mengelompokkan beberapa instance/resource sebagai downstream server, lalu dipakai oleh ELB untuk load balancing
Catatan
- Tidak terbatas pada EC2 instance saja — bisa juga ECS, Lambda function, atau IP address (private)
- Health check dilakukan oleh ELB terhadap anggota target group
Membuat Target Group
1
Buat instance & konfigurasikan sebagai web server
Menyiapkan downstream server
2
EC2 › Load balancing › Target groups › Create
Membuat target group baru, beri nama & pilih instance sebagai anggotanya
6.5Elastic Load Balancer (ELB) — Konfigurasi#
Catatan
- Langkah dasar membuat load balancer setelah target group siap
Membuat Load Balancer
1
EC2 › Load balancers › Create
Membuat load balancer baru: pilih jenis (ALB/NLB/GWLB), beri nama, pilih SG & target group
6.6Advanced Application Load Balancer#
Catatan
- ALB bisa melakukan load balancing berdasarkan path, hostname, atau query string — tidak sekadar round robin biasa
- Cocok untuk arsitektur microservices & aplikasi berbasis container (Docker, Amazon ECS)
- Contoh kasus: request dengan query ?platform=mobile diarahkan ke target group 1, sedangkan ?platform=web diarahkan ke target group 2
Konfigurasi Listener Rules untuk Multi-Target-Group
1
Buat 2 target group berbeda
Mis. 1 dengan konten index.html, 1 dengan info.html
2
Buat load balancer
Menyiapkan ALB seperti biasa
3
Listeners and Rules › pilih listener › tambahkan rules
Mengatur kondisi routing, mis. path = /info.html diarahkan ke target group 2
6.7Network Load Balancer (NLB)#
Catatan
- NLB dipakai untuk load balancing traffic TCP dan UDP (Layer 4 — meski namanya 'Network')
- Bisa menangani jutaan request per detik dengan latency sangat rendah
- NLB punya 1 IP public statis di tiap AZ (beda dengan ALB yang DNS-nya dinamis)
- Cocok untuk kebutuhan performa ekstrem pada traffic TCP/UDP
- Tidak termasuk dalam AWS Free Tier (berbayar sejak awal)
Membuat Network Load Balancer (NLB)
1
Sama seperti ALB, tapi target group memakai protocol TCP/UDP
Konfigurasi NLB pada dasarnya sama, hanya beda protocol target group
Penting
Sejak Agustus 2023, NLB SUDAH bisa punya security group sendiri untuk memfilter traffic masuk (opsional, tapi direkomendasikan). Sebelumnya NLB hanya mengandalkan SG di instance target.
6.8Best Practice Load Balancer#
Catatan
- Prinsip: yang butuh IP public hanya load balancer. Downstream server sebaiknya berada di private subnet, dan cukup 1 instance sebagai bastion host di public subnet untuk keperluan SSH
Susunan Komponen Load Balancer End-to-End
1
Buat VPC, subnet, route table, IGW, NAT Gateway
Menyiapkan jaringan dasar (public untuk LB & bastion, private untuk server)
2
Buat Security Group
LB (allow HTTP dari anywhere), bastion host (allow SSH dari anywhere/admin), downstream server (allow SSH dari SG bastion & HTTP dari SG load balancer)
3
Buat instance, target group, dan load balancer
Menyusun arsitektur lengkap sesuai best practice di atas
6.9Horizontal Auto Scaling Group (ASG)#
Deskripsi
- ASG
- dipakai untuk menambah (scale out) atau mengurangi (scale in) jumlah instance secara otomatis sesuai kebutuhan
Catatan
- ASG memastikan jumlah instance yang running tidak pernah kurang dari batas minimum yang ditentukan — scale in tidak akan mengurangi instance di bawah jumlah minimum
- Instance baru yang dibuat ASG otomatis terdaftar (registered) ke load balancer
Membuat Launch Template & Auto Scaling Group
1
EC2 › Instances › Launch Template › Create
Membuat launch template (konfigurasi instance seperti biasa, tapi tanpa assign ke subnet tertentu)
2
EC2 › Auto Scaling Groups › Create
Membuat ASG: beri nama, pilih launch template, VPC & subnet
3
Pilih load balancer & target group
Menghubungkan ASG dengan load balancer (bisa buat target group kosong dulu)
4
Tambahkan health check dari ELB
Agar ASG tahu instance mana yang unhealthy untuk diganti
5
Atur group size (desired, min, max capacity)
Menentukan jumlah instance target, minimum, dan maksimum
6.10Dynamic Scaling#
Deskripsi
- Static scaling
- ASG hanya menambah instance jika jumlah running kurang dari desired capacity yang di-set manual
- Dynamic scaling
- ASG mengubah desired capacity secara OTOMATIS sesuai kondisi real-time (mis. CPU utilization tinggi)
Catatan
- Scaling (baik static maupun dynamic) tidak akan pernah melewati batas min/max capacity yang sudah ditentukan
Membuat dynamic scaling policy
1
EC2 › Auto Scaling › Auto Scaling Group › pilih ASG
Masuk ke ASG yang ingin diatur
2
Automatic scaling › Create dynamic scaling policies
Membuat policy scaling otomatis (mis. berdasarkan target CPU utilization)
sudo dnf install stress-ng -y
# (Uji coba) install tool stress test di salah satu instance
stress-ng --cpu 4 --timeout 30s
# (Uji coba) menjalankan stress test CPU untuk memicu dynamic scaling
Topik 7 dari 19
7Simple Storage Service (S3)#
7.1Introduction S3#
Deskripsi
- S3
- service untuk menyimpan object (file) di dalam bucket (mirip directory/folder utama)
Catatan
- Nama bucket harus UNIK secara global (tidak boleh sama dengan bucket siapapun di seluruh dunia)
- Bucket dibuat pada 1 region tertentu
- Aturan penamaan bucket: hanya huruf kecil, angka, dan tanda (-); panjang 3-63 karakter
- Setiap object punya key — key adalah full path object tsb, contoh: s3://my-bucket/my_folder1/my_file.txt
Membuat S3 Bucket
1
S3 › Buckets › General purpose buckets › Create
Membuat bucket baru (bisa langsung upload object lewat GUI)
7.2Bucket Versioning#
Deskripsi
- Versioning
- memungkinkan 1 object memiliki beberapa versi sekaligus
Catatan
- Saat upload file dengan nama yang sama, file versi lama tetap disimpan (tidak langsung tertimpa/hilang)
- Best practice dipakai untuk: menghindari kesalahan hapus (accidental delete) dan bisa rollback ke versi lama
Mengaktifkan Bucket Versioning
1
S3 › Buckets › pilih bucket › Properties › Bucket Versioning › Edit › Enable
Mengaktifkan versioning (bisa juga langsung saat create bucket)
Penting
Saat mode 'Show version' aktif, delete object bersifat PERMANEN. Saat mode tsb tidak aktif, delete hanya menambahkan delete marker (object sebenarnya masih ada & bisa dipulihkan).
7.3S3 Bucket Encryption#
Catatan
- Mengenkripsi data sebelum disimpan di bucket, dan mendekripsi data sebelum dikirim ke client
- Enkripsi berjalan di sisi server (server-side) — tidak ada bedanya di sisi client, data tetap diterima seperti biasa
- Bisa dikonfigurasi di level bucket (berlaku untuk semua object baru) maupun di level object individual
Mengaktifkan Default Encryption pada Bucket
1
S3 › Buckets › pilih bucket › Properties › Default encryption › Edit
Mengatur enkripsi di level bucket (pilih server-side dengan SSE-S3, bisa juga saat create bucket)
2
Aktifkan saat proses upload object
Mengatur enkripsi khusus di level object tertentu
7.4S3 Security#
Catatan
- Ada 2 pendekatan mengatur keamanan akses S3
Jenis Security S3
| Jenis | Mengatur |
|---|---|
| User Based (IAM Policy) | Hak akses USER — user tsb boleh melakukan apa saja ke bucket |
| Resource Based (Bucket Policy) | Hak akses BUCKET — siapa saja yang boleh mengakses bucket tsb |
Mengatur Policy & Akses Public Bucket
1
IAM › Access Management › Policies › Create
Membuat policy baru: pilih service S3, atur action, lalu assign ke user/group/role (User Based)
2
S3 › Buckets › pilih bucket › Permissions › Block public access › Edit
Mengatur block/allow akses publik ke bucket (Resource Based)
3
S3 › Buckets › pilih bucket › Permissions › Bucket policy › Edit
Menambahkan bucket policy (bisa pakai policy generator, lalu tambahkan '/*' di akhir ARN untuk mencakup semua object)
7.5S3 Static Web Hosting#
Catatan
- Dipakai untuk hosting website statis (tampilan tidak berubah dinamis, hanya HTML + CSS)
Mengaktifkan Static Website Hosting
1
S3 › Buckets › pilih bucket › Upload index.html
Mengunggah file halaman utama website
2
Enable public access pada bucket
Agar file bisa diakses publik dari internet
3
S3 › Buckets › pilih bucket › Properties › Enable Static website hosting
Mengaktifkan fitur static website hosting
7.6S3 Presigned URL#
Deskripsi
- Presigned URL
- dipakai untuk memberi akses sementara ke object dari bucket yang TIDAK public, tanpa perlu membuat bucket/object jadi public
Catatan
- Contoh kasus: akses video/konten premium berbayar yang hanya boleh diakses user tertentu dalam waktu terbatas
Membuat Presigned URL (Console & CLI)
1
Console: pilih object › Actions › Share with presigned URL
Membuat presigned URL lewat GUI
2
aws s3 presign <path_file> --expires-in 60
Membuat presigned URL lewat CLI (berlaku 60 detik pada contoh ini)
7.7S3 Replication#
Catatan
- Dipakai untuk mereplikasi object secara otomatis ke bucket lain (bisa beda region maupun beda akun)
Jenis Replication
| Jenis | Keterangan |
|---|---|
| Cross Region Replication (CRR) | Replikasi ke bucket di region yang berbeda |
| Same Region Replication (SRR) | Replikasi ke bucket di region yang sama |
Mengaktifkan Replication antar Bucket
1
Enable versioning pada bucket source
Wajib, replication membutuhkan versioning aktif
2
Pilih bucket source › Management › Replication rules › Create
Membuat rule replikasi (tujuan bucket, prefix, dll)
Penting
Delete marker MASIH BISA direplikasi (jika opsi delete marker replication di-enable), tapi penghapusan versi (delete version) TIDAK BISA direplikasi.
7.8S3 Storage Class#
Catatan
- Yang membedakan tiap storage class: durability (ketahanan data), availability (ketersediaan), dan harga
Jenis Storage Class
| Storage Class | Availability | Keterangan |
|---|---|---|
| S3 Standard | 99.99% | Latency rendah, throughput tinggi — untuk data yang sering diakses |
| S3 Standard-IA | 99.9% | Lebih murah dari Standard, tapi ada biaya retrieval — untuk data jarang diakses (backup, DR) |
| S3 One Zone-IA | 99.5% | Sama seperti Standard-IA tapi cuma 1 AZ — untuk backup yang mudah dibuat ulang |
| S3 Glacier Instant Retrieval | — | Bisa langsung diakses; minimum penyimpanan 90 hari |
| S3 Glacier Flexible Retrieval | — | Waktu akses: expedited (1-5 menit), standard (3-5 jam), bulk (5-12 jam); minimum 90 hari |
| S3 Glacier Deep Archive | — | Waktu akses: standard (12 jam), bulk (48 jam); minimum penyimpanan 180 hari |
| S3 Intelligent-Tiering | — | Otomatis memindahkan class object berdasarkan frekuensi akses; ada sedikit biaya monitoring, tapi tidak ada biaya retrieval |
Memilih Storage Class saat Upload
1
Pilih storage class saat proses upload (bagian Properties)
Menentukan storage class object saat diunggah
Penting
Alur perpindahan otomatis S3 Intelligent-Tiering: default di S3 Standard → 30 hari tidak diakses ke Infrequent Access → 90 hari ke Glacier Instant Retrieval (otomatis) → opsional lanjut ke Glacier Flexible Retrieval (90-700+ hari) atau Glacier Deep Archive (180-700+ hari).
7.9S3 Lifecycle Rule#
Deskripsi
- Lifecycle Rule
- mengubah storage class object secara otomatis berdasarkan waktu (mis. setelah 30 hari pindah ke class A, setelah 90 hari pindah ke class B)
Catatan
- Bisa juga dipakai untuk mengatur expiring (penghapusan otomatis) object
- Bisa diterapkan di level bucket maupun prefix (folder) tertentu saja
Membuat Lifecycle Rule
1
Pilih bucket source › Management › Lifecycle rules › Create
Membuat rule lifecycle (pilih action: ganti class current version, noncurrent version, atau expire)
Topik 8 dari 19
8AWS CloudFront & Global Accelerator#
8.1Konsep CloudFront#
Deskripsi
- CloudFront
- CDN (Content Delivery Network) AWS, dipakai untuk mempercepat performa pembacaan (read) konten
- Origin (sumber data)
- bisa S3 Bucket (paling umum), atau Custom Origin lewat HTTP (mis. ALB, EC2 instance, S3 static website)
Catatan
- Paling terasa manfaatnya untuk user yang lokasinya jauh dari sumber data asli (origin)
Membuat CloudFront Distribution
1
CloudFront › Distributions › Create
Membuat distribution CloudFront baru (atur origin, cache behavior, dll)
Penting
Cara kerja: CloudFront menyimpan cache konten di Edge Location (PoP) terdekat dengan user. User mengakses data cukup lewat edge location tsb. Jika cache belum ada, CloudFront akan mengambil dulu dari origin lewat jaringan internal AWS (sehingga tetap sangat cepat).
8.2AWS Global Accelerator#
Deskripsi
- AWS Global Accelerator
- membuat user mengakses jaringan global AWS dengan lebih cepat, dengan mengarahkan traffic lewat jalur/rute terbaik dalam jaringan backbone AWS (bukan internet publik)
Catatan
- Alur: User → Edge Location terdekat → Region tujuan (lewat jaringan internal AWS yang low latency)
Topik 9 dari 19
9Route 53#
9.1DNS (Domain Name System)#
Deskripsi
- DNS
- sistem untuk mentranslate/menerjemahkan domain (nama yang mudah diingat manusia) menjadi IP address, contoh: google.com → 142.251.10.102
Struktur Domain
| Bagian | Contoh |
|---|---|
| Root ( . ) | Titik paling akhir domain (biasanya tersembunyi) |
| Top Level Domain (TLD) | .com, .id, .org, dll |
| Second Level Domain (SLD) | google.com, amazon.com, dll |
Penting
Cara kerja DNS: client bertanya ke DNS server (resolver) → DNS server bertanya ke Root DNS server (tahu lokasi TLD DNS server) → bertanya ke TLD DNS server (tahu lokasi SLD DNS server) → bertanya ke SLD DNS server dan akhirnya mendapatkan IP address domain tsb.
9.2Route 53#
Deskripsi
- Route 53
- managed DNS server milik AWS
Catatan
- Route 53 berperan sebagai registrar / SLD DNS server
- Tersedia untuk 2 jenis hosted zone: Private (internal) dan Public (internet)
9.3Konfigurasi Private Zone (DNS Internal)#
Catatan
- Dipakai untuk memberi domain pada resource yang hanya diakses secara internal dalam VPC
Membuat Private Hosted Zone (DNS Internal)
1
Buat 2 EC2 instance (contoh)
Menyiapkan resource yang akan diberi domain
2
Route 53 › Hosted Zones › Create
Membuat hosted zone baru, beri nama domain, pilih tipe Private zone
3
Pilih hosted zone › Tambah record
Membuat A record untuk tiap server yang akan diberi domain
9.4Konfigurasi Public Zone (DNS Internet)#
Catatan
- Dipakai untuk domain yang bisa diakses publik dari internet
Mendaftarkan Domain & Membuat Public Hosted Zone
1
Route 53 › Domains › Registered domains (beli lewat AWS)
Membeli domain baru langsung dari AWS
2
Buat public hosted zone, lalu update NS record di registrar luar
Jika domain dibeli dari luar AWS, arahkan NS (nameserver) domain ke Route 53
9.5TTL (Time To Live)#
Deskripsi
- TTL
- durasi client menyimpan (cache) hasil record sebuah domain sebelum bertanya ulang ke DNS server
Catatan
- TTL kecil → record lebih up to date, tapi lebih mahal/berat karena request ke Route 53 jadi lebih sering
- TTL besar → record bisa lebih outdated (telat update), tapi lebih murah/ringan karena request ke Route 53 jadi lebih jarang
9.6CNAME dan Alias Record#
Catatan
- Keduanya sama-sama dipakai untuk pointing (mengarahkan) dari 1 domain ke domain lain
Perbandingan CNAME vs Alias
| Jenis | Keterangan |
|---|---|
| CNAME | Pointing domain ke domain lain (termasuk domain AWS). Hanya bisa untuk sub-domain, TIDAK bisa untuk root domain (mis. bisa lb.contoh.com, tidak bisa contoh.com langsung) |
| Alias | Khusus untuk pointing ke domain AWS (ELB, S3, CloudFront, Route 53 sendiri, dll). Bisa dipakai untuk root/SLD domain (contoh.com) MAUPUN sub-domain (lb.contoh.com). Tidak bisa dipakai untuk DNS EC2 instance |
Topik 10 dari 19
10AWS RDS (Relational Database Service)#
10.1Konsep RDS#
Deskripsi
- RDS
- managed relational database service dari AWS
- Kelemahan
- TIDAK bisa SSH langsung ke server linux di baliknya (berbeda dengan menjalankan database sendiri di EC2)
Catatan
- RDS adalah tools yang menjalankan/mengelola engine database (mis. MySQL) — di dalam engine tsb baru ada database berupa RDBMS-nya
- Sebagai managed service, RDS menyediakan: automated provisioning & OS patching, continuous backup, monitoring dashboard, read replica, multi-AZ setup, dll
Engine yang Didukung RDS
| Engine |
|---|
| PostgreSQL |
| MySQL |
| MariaDB |
| Oracle |
| Microsoft SQL Server |
| Aurora (database proprietary AWS) |
10.2Membuat Database & Command MySQL Dasar#
Catatan
- Setelah database RDS dibuat, koneksi & operasi data (create table, insert, select, dll) dilakukan lewat MySQL client dari instance EC2 yang satu jaringan (VPC) dengan RDS tsb
Membuat database RDS & menyiapkan EC2 client
1
Aurora and RDS › Databases › Create
Membuat database baru (pilih engine, instance class, storage, security group, dll)
2
Buat EC2 instance & install client MySQL
Menyiapkan instance untuk terhubung ke database
yum install mysql
# Menginstall MySQL client di EC2 instance
mysql -h <domain_name_endpoint> -u <username> -p
# Menghubungkan ke database RDS dari EC2 instance
CREATE DATABASE <nama_database>;
-- Membuat database baru
USE <nama_database>;
-- Memilih database yang akan dipakai
CREATE TABLE <nama_table> (id INT(6) AUTO_INCREMENT PRIMARY KEY, nama VARCHAR(10));
-- Membuat table baru dengan kolom & tipe data
DESCRIBE <nama_table>;
-- Melihat struktur/kolom sebuah table
INSERT INTO <nama_table> (nama, umur) VALUES ("Adam", 21);
-- Menambahkan baris data baru ke table
SELECT * FROM <nama_table>;
-- Menampilkan seluruh data pada table
Penting
Pastikan security group database sudah allow koneksi (mis. port 3306 untuk MySQL) dari EC2 instance yang mau connect.
10.3RDS Multi-AZ#
Deskripsi
- Multi-AZ
- 1 database memiliki lebih dari 1 server/instance yang berada di AZ berbeda — 1 server master dan 1 (atau lebih) server standby
Catatan
- Hanya server master yang bisa menerima operasi read/write; server standby hanya menerima replikasi data dari master (tidak bisa diakses langsung untuk query)
- Jika server master down, AWS otomatis melakukan failover ke server standby
- Bisa diaktifkan belakangan (dari single-AZ diubah menjadi multi-AZ) meskipun database sudah berjalan
Mengaktifkan Multi-AZ saat Membuat Database
1
Saat create database, pilih 'Multi-AZ DB instance deployment (2 instances)' pada Deployment options
Mengaktifkan Multi-AZ saat pembuatan database baru
10.4Read Replica#
Deskripsi
- Read Replica
- dipakai untuk scalability (bukan untuk HA seperti Multi-AZ)
Catatan
- Read Replica adalah database TERSENDIRI yang terus-menerus menerima replikasi data dari database master
- Read Replica HANYA bisa dipakai untuk operasi READ, tidak bisa write
- Bisa membuat hingga 15 read replica per source instance (termasuk hingga 5 yang lintas region)
- Tiap read replica punya DNS endpoint sendiri-sendiri
- Cocok dipakai untuk aplikasi yang hanya butuh baca data dari database production (mis. dashboard reporting)
Membuat Read Replica
1
Pilih database › Action › Create read replica
Membuat read replica baru dari database master
10.5Read Replica Load Balancer#
Catatan
- Memakai Route 53 untuk load balancing traffic dari 1 subdomain ke beberapa read replica sekaligus
- Caranya dengan membuat beberapa CNAME record dengan nama subdomain yang SAMA tapi destination (tujuan) yang BEDA
Load Balancing Traffic ke Beberapa Read Replica (DNS Weighted Routing)
1
Buat 2 (atau lebih) read replica
Menyiapkan beberapa read replica sebagai target
2
Buat CNAME record dari masing-masing DNS read replica, dengan routing policy 'Weighted' (mis. 50/50)
Mengatur pembagian traffic secara merata ke tiap read replica
10.6Multi-AZ DB Cluster#
Catatan
- Read Replica hanya untuk scalability, Multi-AZ hanya untuk high availability — Multi-AZ DB Cluster menyediakan KEDUANYA sekaligus
- 1 DB Cluster terdiri dari 3 instance: 1 instance untuk write, 2 instance untuk read, semua berada di AZ yang berbeda
- Jika instance master mati, akan terjadi failover otomatis
- 2 instance read punya 1 DNS yang sama, sehingga traffic read otomatis ter-load-balance di antara keduanya
Mengaktifkan Multi-AZ DB Cluster
1
Saat create database, pilih 'Multi-AZ DB cluster deployment (3 instances)' pada Deployment options
Mengaktifkan Multi-AZ DB Cluster saat pembuatan database baru
10.7Storage Auto Scaling#
Catatan
- Sudah otomatis aktif (enabled) saat pertama kali membuat database, di bagian Additional storage configuration
- Bisa mengatur batas maksimum (maximum storage threshold) agar penambahan storage tidak tak terkendali
10.8RDS Backup#
Catatan
- Ada 2 jenis backup pada RDS
Jenis Backup RDS
| Jenis | Keterangan |
|---|---|
| Automated Backup | Otomatis dilakukan RDS: daily backup (tiap 1 hari) + backup transaction log (tiap 5 menit). Bisa restore dari backup terlama sampai 5 menit terakhir. Default retention 7 hari, bisa diubah maksimal 35 hari |
| DB Snapshot | Backup manual, bisa di-restore kapan saja selama snapshot belum dihapus |
Penting
Automated Backup sudah otomatis aktif saat pertama kali membuat database (bagian Additional configuration).
10.9Amazon Aurora#
Deskripsi
- Aurora
- tipe database proprietary AWS, kompatibel dengan MySQL dan PostgreSQL
Catatan
- Klaim performa: 5x lebih baik dari MySQL dan 3x lebih baik dari PostgreSQL
- Bisa punya hingga 15 read replica, sama seperti RDS biasa — keunggulan Aurora ada di arsitektur shared storage-nya yang membuat replication lag jauh lebih kecil
- Mendukung High Availability secara default
- Semua instance/server dalam 1 cluster Aurora memakai SHARED STORAGE (beda dengan Multi-AZ DB Cluster biasa yang storage-nya terpisah tiap instance)
- Harga sekitar 20% lebih mahal, tapi lebih efisien secara performa
Membuat Database Aurora & Menambah Reader
1
Create database › pilih engine type = Aurora
Membuat cluster Aurora baru (otomatis terbentuk 1 writer & 1 reader instance)
2
Pilih database › Add reader
Menambahkan reader instance baru ke cluster
10.10Amazon Aurora Serverless#
Catatan
- Tidak perlu memilih instance type secara manual
- Konfigurasi kapasitas hanya berupa ACU (Aurora Capacity Unit) — 1 ACU setara 2GB memory
- Range kapasitas: minimal 0.5 ACU, maksimal 128 ACU
- Memory akan scaling otomatis (dynamic) sesuai kebutuhan; CPU & networking menyesuaikan otomatis (tidak bisa dikonfigurasi manual)
Membuat Aurora Serverless
1
Create database baru › pilih engine type Aurora
Memulai pembuatan cluster Aurora
2
Engine options › Hide filter › enable 'Show versions that support serverless'
Menampilkan versi engine yang mendukung mode serverless
3
Instance configuration › DB instance class › Serverless
Memilih mode Serverless untuk instance
Topik 11 dari 19
11AWS Cloud Concepts#
11.1Konsep Dasar Cloud Computing#
Deskripsi
- Cloud computing
- penyediaan resource IT secara on-demand lewat internet, dengan sistem bayar sesuai pemakaian (pay-as-you-go)
Catatan
- Prinsip utama: hanya membayar untuk resource yang benar-benar dipakai
3 Jenis Cloud Deployment
| Jenis | Keterangan |
|---|---|
| Cloud-based Deployment | Seluruh aplikasi berjalan di cloud |
| On-premises Deployment | Seluruh aplikasi berjalan di infrastruktur milik sendiri (data center sendiri) |
| Hybrid Deployment | Kombinasi cloud dan on-premise |
11.2Manfaat Cloud Computing#
Catatan
- Trade fixed expense for variable expense — mengubah biaya tetap (on-premise: beli server di awal) menjadi biaya variabel (cloud: bayar sesuai pakai)
- Benefit from economies of scale — karena AWS membeli resource dalam skala sangat besar, harga yang dinikmati user jadi lebih murah
- Stop guessing capacity — tidak perlu menebak-nebak kebutuhan resource di awal, tinggal scaling sesuai kebutuhan aktual
- Increase speed and agility — deploy atau hapus resource/aplikasi bisa dilakukan dengan sangat cepat
- Stop spending money running and maintaining data center — tidak perlu memikirkan biaya & perawatan infrastruktur fisik
- Go global in minutes — aplikasi bisa langsung dijangkau ke berbagai belahan dunia hanya dalam hitungan menit
11.3High Availability & Fault Tolerance#
Deskripsi
- High Availability
- ketersediaan sebuah service/sistem (sistem tetap bisa diakses)
- Fault Tolerance
- sistem tetap bisa berjalan normal meskipun ada komponen yang mengalami failure/gangguan
Catatan
- Struktur infrastruktur AWS yang mendukung keduanya: 1 Region minimal terdiri dari 3 AZ, dan 1 AZ minimal terdiri dari 2 data center
- HA biasanya berjalan berdampingan dengan horizontal scaling — jika 1 AZ down, sistem otomatis menambah kapasitas (scaling) di AZ lain yang masih hidup
11.4Shared Responsibility Model#
Deskripsi
- Shared Responsibility Model
- pembagian tanggung jawab keamanan antara AWS dan pengguna (customer)
Catatan
- AWS bertanggung jawab atas keamanan 'OF the cloud' (infrastruktur fisik, hardware, jaringan global, data center)
- Customer bertanggung jawab atas keamanan 'IN the cloud' (data, konfigurasi, manajemen akses/IAM, patching OS di dalam instance, dll)
- Pembagian detail tanggung jawab ini bisa berbeda-beda tergantung jenis service (unmanaged, managed, atau serverless — lihat Bab 12.5)
Topik 12 dari 19
12AWS Compute Concepts#
12.1Multi-tenancy#
Deskripsi
- Multi-tenancy
- penggunaan 1 resource fisik (server) secara bersamaan oleh banyak customer, namun tetap terisolasi satu sama lain (customer 1 tidak bisa melihat/mengganggu data customer lain)
12.2EC2 Purchase Option#
Catatan
- Beberapa cara pembelian/penyewaan EC2 dengan model harga berbeda-beda
Jenis Purchase Option
| Purchase Option | Keterangan |
|---|---|
| On-Demand | Bayar sesuai pemakaian, tanpa komitmen jangka panjang — paling fleksibel, tapi paling mahal per jam |
| Saving Plans | Komitmen pemakaian (dalam $/jam) untuk jangka waktu tertentu, mendapat harga lebih murah |
| Reserved Instances | Booking/komitmen instance untuk jangka panjang (1 atau 3 tahun), mendapat diskon besar |
| Spot Instances | Memakai kapasitas 'sisa' AWS, harga sangat murah, tapi AWS bisa menghentikan instance kapan saja jika kapasitas dibutuhkan kembali |
| Dedicated Host | Menyewa 1 server fisik penuh, tidak berbagi dengan customer lain (untuk compliance/lisensi khusus) |
12.3Scalability dan Elasticity#
Deskripsi
- Scalability
- kemampuan sistem untuk menangani peningkatan beban (load) dengan menambah resource
- Elasticity
- kemampuan sistem untuk scaling secara real-time/otomatis dan cepat sesuai kebutuhan saat itu juga
2 Jenis Scaling
| Jenis | Keterangan |
|---|---|
| Vertical Scaling (manual) | Menaikkan kapasitas 1 service, mis. instance type t3.micro dinaikkan jadi t3.large |
| Horizontal Scaling | Memperbanyak jumlah service (instance) yang identik/sama persis |
12.4Tightly Coupled vs Loosely Coupled#
Deskripsi
- Tightly Coupled (Monolithic)
- seluruh komponen aplikasi berjalan bersama dalam 1 kesatuan, saling bergantung erat
- Loosely Coupled (Microservices)
- tiap komponen aplikasi berjalan terpisah-pisah dan saling berkomunikasi lewat API/messaging
Service Pendukung Arsitektur Loosely Coupled
| Service | Fungsi |
|---|---|
| Amazon EventBridge | Menghubungkan antar service di AWS berdasarkan event |
| Amazon SQS (Simple Queue Service) | Membuat antrian (queue) pesan antar service, agar request tidak hilang saat salah satu service sibuk/tidak aktif |
| Amazon SNS (Simple Notification Service) | Mengirimkan notifikasi ke banyak subscriber sekaligus, termasuk antar service |
12.5Unmanaged, Managed, dan Serverless Services#
Catatan
- 3 tingkatan level pengelolaan service compute di AWS, dari yang paling butuh effort sendiri sampai yang paling minim
Perbandingan
| Level | Keterangan |
|---|---|
| Unmanaged | Customer bertanggung jawab penuh atas OS & software (mis. EC2 — pengguna kelola OS sendiri) |
| Managed | AWS mengelola sebagian infrastruktur/platform (mis. RDS — AWS kelola OS & engine database) |
| Fully-managed (Serverless) | AWS mengelola seluruh infrastruktur, customer hanya fokus ke kode/logic (mis. Lambda) |
12.6AWS Lambda#
Deskripsi
- Lambda
- layanan compute serverless — hanya perlu deploy kode function (biasanya berukuran kecil), semua urusan server sepenuhnya dikelola AWS
Catatan
- Lambda bekerja otomatis ketika ada trigger tertentu — contoh: saat ada file gambar di-upload ke S3, Lambda otomatis dijalankan untuk memproses (resize) gambar tsb
12.7Containers#
Deskripsi
- Container
- cara membungkus aplikasi beserta semua dependency/package yang dibutuhkan, agar bisa berjalan konsisten di lingkungan manapun
Service Container di AWS
| Service | Fungsi |
|---|---|
| AWS ECS (Elastic Container Service) | Mengelola orkestrasi container — menentukan container berjalan di mana (bisa di atas EC2 atau Fargate) |
| AWS EKS (Elastic Kubernetes Service) | Layanan Kubernetes terkelola di AWS |
| AWS ECR (Elastic Container Registry) | Tempat menyimpan image container |
| AWS Fargate | Serverless compute engine khusus untuk menjalankan container (tanpa perlu kelola EC2 di baliknya) |
12.8Additional Compute Services#
Catatan
- Beberapa service compute lain di luar EC2, Lambda, dan Container di atas
Service Compute Tambahan
| Service | Fungsi |
|---|---|
| Elastic Beanstalk | Platform as a Service (PaaS) untuk deploy web application dengan cepat — AWS mengelola provisioning EC2, load balancer, dan auto scaling di baliknya, tapi BUKAN serverless (bukan Lambda/Fargate). |
| AWS Batch | Layanan terkelola (managed) untuk menjalankan batch job berat di EC2 atau Fargate — serverless penuh hanya jika memakai compute environment Fargate. |
| Lightsail | VPS (Virtual Private Server) sederhana ala AWS — cocok untuk project kecil/pemula |
| AWS Outposts | Infrastruktur hybrid cloud — AWS meletakkan hardware/infrastrukturnya langsung di data center milik customer |
Topik 13 dari 19
13Infrastructure as Code (IaC)#
13.1AWS CloudFormation#
Deskripsi
- CloudFormation
- layanan Infrastructure as Code (IaC) AWS
Catatan
- Dipakai untuk membuat blueprint/template resource-resource AWS, sehingga infrastruktur yang sama bisa dibuat ulang dengan cepat & konsisten (tanpa klik manual satu-satu di console)
Topik 14 dari 19
14Storage & Database Overview#
14.1Jenis Storage di AWS#
Catatan
- 3 kategori dasar storage di AWS Cloud
Kategori Storage
| Kategori | Service | Keterangan |
|---|---|---|
| Block Storage | Instance Store | Melekat secara fisik pada host EC2, datanya akan HILANG saat instance di-terminate/dipindah host |
| Block Storage | Amazon EBS | Data tetap ada meskipun instance di-terminate (kecuali diatur delete on termination) |
| Object Storage | Amazon S3 | Untuk menyimpan object/file, umumnya dipakai untuk backup & web assets |
| File Storage | Amazon EFS | Untuk shared storage yang bisa dipakai banyak instance sekaligus |
14.2Storage Tambahan#
Catatan
- Service pelengkap di luar block/object/file storage utama yang sudah dibahas
Service Storage Lainnya
| Service | Fungsi |
|---|---|
| Amazon Data Lifecycle Manager | Mengotomasi proses backup/snapshot (EBS) secara berkala |
| Amazon FSx | Layanan file storage yang lebih advanced dari EFS (mendukung Windows File Server, Lustre, dll) |
14.3AWS Storage Gateway#
Deskripsi
- Storage Gateway
- menghubungkan storage on-premise (lokal) dengan storage di AWS
Jenis Storage Gateway
| Jenis | Keterangan |
|---|---|
| S3 File Gateway | Untuk kebutuhan file server, file disimpan sebagai object di S3 |
| Volume Gateway | Data utama disimpan di AWS, dengan cache di lokal (atau sebaliknya) |
| Tape Gateway | Untuk migrasi/backup dari sistem tape fisik ke cloud |
14.4Jenis Database di AWS#
Catatan
- AWS menyediakan berbagai jenis database sesuai kebutuhan data & pola akses
Jenis Database
| Kategori | Service | Keterangan |
|---|---|---|
| Relational (SQL) | Amazon RDS | Database relasional terkelola (MySQL, PostgreSQL, dll) |
| Relational (SQL) | Amazon Aurora | Database relasional proprietary AWS, performa lebih tinggi |
| Non-Relational (NoSQL) | Amazon DynamoDB | Database NoSQL key-value/document, sangat cepat & scalable |
| Cache | Amazon ElastiCache | Menyimpan cache data untuk mengurangi beban akses langsung ke database |
| Semi-Structured | Amazon DocumentDB | Kompatibel dengan MongoDB, untuk data semi-terstruktur |
| Graph | Amazon Neptune | Database graph, untuk data yang saling berhubungan/terhubung (mis. social network) |
Topik 15 dari 19
15AWS Security Overview#
15.1Authentication vs Authorization#
Deskripsi
- Authentication
- proses verifikasi identitas — memastikan seseorang benar-benar dirinya (mis. login dengan password)
- Authorization
- proses memastikan izin akses — menentukan apa saja yang boleh dilakukan setelah identitas terverifikasi
- Least Privilege
- prinsip memberi hak akses seminim mungkin, hanya sesuai kebutuhan (best practice keamanan)
15.2Perlindungan DDoS#
Catatan
- Perlindungan dari serangan DDoS di AWS bisa dilakukan berlapis
Lapisan Perlindungan DDoS
| Lapisan | Keterangan |
|---|---|
| Security Group, ELB, Multi-Region | Perlindungan dasar bawaan dari arsitektur yang baik |
| AWS Shield | Melindungi dari serangan DDoS di network layer (L3/L4) |
| AWS WAF (Web Application Firewall) | Melindungi dari serangan di application layer (L7) |
15.3Enkripsi#
Catatan
- Service AWS untuk mengelola kunci enkripsi dan sertifikat keamanan
Service Enkripsi
| Service | Fungsi |
|---|---|
| AWS KMS (Key Management Service) | Membuat dan mengelola cryptographic key untuk enkripsi data |
| AWS Certificate Manager (ACM) | Mengelola sertifikat SSL/TLS |
15.4Deteksi Insiden & Ancaman Keamanan#
Catatan
- Service yang membantu mendeteksi, menilai, dan menginvestigasi ancaman keamanan di akun AWS
Service Keamanan Terkait Insiden
| Service | Fungsi |
|---|---|
| Amazon Inspector | Menilai (assess) keamanan & compliance resource secara otomatis |
| Amazon GuardDuty | Mendeteksi ancaman (threat detection) secara terus-menerus |
| Amazon Detective | Membantu mencari root cause dari sebuah ancaman/insiden keamanan |
| AWS Security Hub | Dashboard keamanan terpusat, mengumpulkan data dari berbagai service keamanan lain |
Topik 16 dari 19
16Monitoring, Compliance & Governance#
16.1Amazon CloudWatch#
Deskripsi
- CloudWatch
- service terpusat untuk memonitor resource-resource AWS
Fitur CloudWatch
| Fitur | Fungsi |
|---|---|
| CloudWatch Metric | Mengumpulkan data numerik dari resource (mis. CPU utilization) |
| CloudWatch Alarm | Memicu notifikasi/aksi otomatis saat metric melewati batas tertentu |
| CloudWatch Dashboard | Visualisasi data metric dalam bentuk dashboard |
| CloudWatch Log | Mengumpulkan & menyimpan log dari resource/aplikasi |
16.2Amazon CloudTrail#
Deskripsi
- CloudTrail
- dipakai untuk audit log
Catatan
- Menyimpan seluruh track/rekam jejak aktivitas (log) yang terjadi di akun AWS, termasuk siapa melakukan apa dan kapan
16.3Compliance#
Catatan
- Service yang membantu menilai & membuktikan kepatuhan (compliance) akun AWS terhadap standar/regulasi tertentu
Service Terkait Compliance
| Service | Fungsi |
|---|---|
| AWS Artifact | Mengakses laporan (report) compliance AWS dan menyetujui dokumen compliance yang relevan |
| AWS Config | Menilai, mengaudit, dan memonitor konfigurasi resource AWS |
| AWS Audit Manager | Melakukan audit secara berkelanjutan dan mengumpulkan bukti (evidence) kepatuhan terhadap compliance |
16.4AWS Organizations#
Deskripsi
- AWS Organizations
- dipakai untuk mengelola BANYAK akun AWS sekaligus
Catatan
- Berbeda dengan IAM yang mengatur banyak user DALAM 1 akun, Organizations mengatur banyak AKUN sekaligus (mis. untuk perusahaan dengan banyak divisi/tim)
16.5Governance di AWS#
Catatan
- Service yang membantu menegakkan aturan/kebijakan (governance) secara konsisten di seluruh akun/organisasi AWS
Service Governance
| Service | Fungsi |
|---|---|
| AWS Control Tower | Menegakkan (enforce) dan mengelola aturan governance di seluruh akun AWS |
| AWS Service Catalog | Membuat katalog resource AWS yang bisa dipakai/digunakan ulang oleh akun lain |
| AWS License Manager | Mengelola lisensi software |
16.6AWS Health Dashboard & Trusted Advisor#
Deskripsi
- AWS Health Dashboard
- menampilkan informasi kesehatan (health) dari akun AWS
- AWS Trusted Advisor
- memberikan rekomendasi best practice untuk akun AWS
Kategori Rekomendasi Trusted Advisor
| Kategori |
|---|
| Cost Optimization |
| Performance |
| Security |
| Fault Tolerance |
| Service Limits |
| Operational Excellence |
Penting
IAM Access Analyzer: dipakai untuk mengevaluasi IAM policy, membantu memastikan policy sudah sesuai prinsip least privilege.
Topik 17 dari 19
17AWS Pricing & Support#
17.1Konsep Pricing#
Deskripsi
- Pay As You Go
- bayar sesuai pemakaian aktual
- Save When You Commit
- mendapat harga lebih murah jika berkomitmen pemakaian jangka panjang (mis. Savings Plans/Reserved Instance)
Catatan
- Pay Less by Using More — semakin banyak resource yang dipakai, harga per unit-nya bisa semakin murah (economies of scale)
Faktor Utama Penentu Biaya (Driving Factor of Cost)
| Faktor |
|---|
| Compute (mis. jam pemakaian EC2) |
| Storage (mis. kapasitas S3/EBS) |
| Data Transfer (terutama keluar dari AWS/outbound) |
17.2Tools Manajemen Biaya#
Catatan
- Tools bawaan AWS untuk memantau, menganalisis, dan mengestimasi biaya pemakaian
Tools Terkait Billing
| Tools | Fungsi |
|---|---|
| AWS Billing and Cost Management Dashboard | Dashboard terpusat untuk manajemen biaya |
| AWS Budgets | Mengatur budget dan mengirim alert jika biaya melebihi batas yang ditentukan |
| AWS Cost Explorer | Bagian dari AWS Billing untuk memvisualisasikan & menganalisis biaya |
| AWS Pricing Calculator | Untuk mengestimasi biaya sebelum memakai suatu service/arsitektur |
17.3Jenis AWS Support Plan#
Catatan
- AWS menyediakan beberapa tingkatan paket support sesuai kebutuhan bisnis
Tingkatan AWS Support
| Plan | Peruntukan | Response Time (sistem down) |
|---|---|---|
| Basic Support | Semua customer AWS (gratis) | Tidak ada jaminan waktu respons, hanya akses dokumentasi & re:Post |
| Developer Support | Eksperimen/testing di AWS | < 12 jam (sistem production terganggu) |
| Business Support | Minimum tier untuk production workload | < 1 jam (sistem production down) |
| Enterprise On-Ramp Support | Workload production & business-critical | < 30 menit (sistem business-critical down) |
| Enterprise Support | Workload business & business-critical | < 15 menit (sistem business-critical down) |
Penting
Semakin tinggi tier, semakin lengkap Trusted Advisor checks yang didapat, dan mulai tier Business ke atas mendapat Technical Account Management (TAM) — pada Enterprise, TAM sudah dedicated (khusus).
17.4Additional Support#
Catatan
- Sumber bantuan tambahan di luar paket support berbayar di atas
Sumber Dukungan Tambahan
| Sumber | Keterangan |
|---|---|
| AWS re:Post | Forum komunitas tanya-jawab seputar AWS |
| AWS Trust and Safety Center | Pusat informasi terkait kepercayaan & keamanan platform AWS |
| AWS Solutions Architect | Bantuan dari arsitek solusi AWS |
| AWS Professional Services | Layanan konsultasi profesional dari AWS |
| Self-Support (Dokumentasi) | Dokumentasi resmi AWS yang bisa diakses siapa saja |
Topik 18 dari 19
18Migrating to the AWS Cloud#
18.13 Fase Migrasi#
Catatan
- Proses migrasi ke AWS umumnya dilakukan dalam 3 fase besar
Fase Migrasi
| Fase | Keterangan | Tools Terkait |
|---|---|---|
| Assess | Menilai kesiapan (readiness) organisasi/sistem untuk migrasi | AWS Migration Evaluator |
| Mobilize | Menyiapkan & memobilisasi kebutuhan resource untuk migrasi | AWS Application Discovery Service, AWS Migration Hub |
| Migrate & Modernize | Migrasi aktual & modernisasi sistem | Application Migration Service, AWS DMS, dll |
18.2AWS Cloud Adoption Framework (CAF)#
Deskripsi
- CAF
- framework untuk mempersiapkan organisasi sebelum migrasi ke cloud
6 Perspective AWS CAF
| Perspective |
|---|
| Business |
| People |
| Governance |
| Platform |
| Security |
| Operations |
18.37 Strategi Migrasi (7 R's)#
Catatan
- 7 pendekatan umum yang bisa dipilih saat memigrasikan 1 aplikasi/workload ke AWS, tergantung tingkat perubahan yang diinginkan
Strategi Migrasi
| Strategi | Keterangan |
|---|---|
| Rehost | 'Lift and shift' — memindahkan aplikasi apa adanya tanpa perubahan |
| Relocate | Memindahkan infrastruktur (mis. VMware) ke AWS tanpa perubahan arsitektur |
| Replatform | Sedikit perubahan/optimasi saat migrasi (mis. ganti database ke RDS) |
| Refactor | Banyak perubahan arsitektur/kode agar lebih sesuai dengan cloud (mis. jadi microservices) |
| Repurchase | Beli/ganti dengan produk baru (mis. pindah ke SaaS) |
| Retain | Tetap mempertahankan aplikasi di tempat asal (belum dimigrasi) |
| Retire | Menghentikan/menghapus aplikasi yang sudah tidak dibutuhkan |
18.4Migrasi Database#
Catatan
- Tools khusus AWS untuk memigrasikan database ke AWS, termasuk saat berpindah jenis engine database
Tools Migrasi Database
| Tools | Fungsi |
|---|---|
| AWS Database Migration Service (DMS) | Memigrasikan database ke AWS (mendukung migrasi homogen maupun heterogen) |
| AWS Schema Conversion Tool (SCT) | Mengonversi schema/engine database saat migrasi antar jenis database berbeda |
18.5Transfer Data (Online vs Offline)#
Deskripsi
- Online
- transfer data lewat jaringan/internet — cocok untuk data yang tidak terlalu besar atau koneksi sudah memadai
- Offline
- transfer data secara fisik lewat perangkat — cocok untuk data berskala sangat besar (petabyte) yang jika lewat jaringan akan makan waktu sangat lama
Metode Transfer Data
| Metode | Tools | Keterangan |
|---|---|---|
| Online | AWS DataSync | Mengotomasi & mempercepat migrasi data skala besar lewat jaringan |
| Online | AWS Transfer Family | Untuk berbagi (share) data secara sederhana |
| Online | AWS Direct Connect | Koneksi khusus berkapasitas tinggi ke AWS |
| Offline | AWS Snow Family (mis. Snowball Edge) | Memakai perangkat fisik yang dipesan dari AWS, data disalin secara lokal, lalu perangkat dikirim balik ke AWS |
18.6AWS Elastic Disaster Recovery (DRS)#
Deskripsi
- AWS DRS
- untuk mereplikasi server secara real-time sebagai bagian dari disaster recovery
Catatan
- Bisa mereplikasi server yang berjalan di AWS maupun dari on-premise
Topik 19 dari 19
19AWS Well-Architected Framework#
19.16 Pilar Well-Architected Framework#
Deskripsi
- Well-Architected Framework
- kumpulan best practice AWS untuk merancang & mengevaluasi arsitektur cloud yang baik
6 Pilar
| Pilar | Fokus |
|---|---|
| Operational Excellence | Menjalankan & memonitor sistem untuk memberi nilai bisnis, serta terus meningkatkan proses |
| Security | Melindungi data, sistem, dan aset |
| Reliability | Memastikan sistem pulih dari gangguan & memenuhi kebutuhan kapasitas |
| Performance Efficiency | Memakai resource IT secara efisien untuk memenuhi kebutuhan sistem |
| Cost Optimization | Menjalankan sistem untuk memberi nilai bisnis dengan biaya seoptimal mungkin |
| Sustainability | Meminimalkan dampak lingkungan dari workload yang dijalankan |
Penting
AWS Well-Architected Tool: tool gratis di AWS Console untuk mengevaluasi arsitektur yang sudah dibangun terhadap ke-6 pilar di atas, dan memberi rekomendasi perbaikan.