Konfigurasi AWS NAT Instance

Pada arsitektur computer network/jaringan komputer secara umumnya terbagi menjadi public segment/subnet dan private segment/subnet. Hal ini juga berlaku jika kita memiliki Virtual Private Cloud (VPC) di AWS Cloud.

Tujuan dengan adanya pembagian public dan private subnet adalah selain faktor keamanan, hal ini juga digunakan agar IP Public yang terpakai tidak banyak. Terutama jika ada batasan dari IP Public yang dapat dipinjam atau digunakan.

Beda halnya dengan public subnet yang ter-expose ke public/internet, private subnet tidak ter-expose ke public. Untuk dapat mengakses internet diperlukan adanya bantuan Network Address Translation (NAT). Hal ini dilakukan agar IP Address dari segmen private subnet dapat berinteraksi dengan internet.

Di AWS secara service dan arsitektur NAT terdapat dua metode, yaitu NAT Gateway dan NAT Instance. Secara implementasi NAT Gateway lebih mudah dan singkat untuk diimplementasikan dibanding dengan NAT Instance yang butuh usaha ekstra terkait konfigurasinya.

Namun mungkin jika hanya membutuhkan NAT service yang digunakan untuk development atau staging environment, dan service/server yang akses ke internet tidak terlalu banyak, NAT instance mungkin bisa dijadikan alternatif. Hal ini dimungkinkan karena kita dapat menggunakan EC2 Instance Type dengan tipe yang terkecil sekalipun yang biayanya tidak semahal jika dibandingkan dengan NAT Gateway. Namun jika membutuhkan traffic yang besar dan untuk production yang kritikal, disarankan agar menggunakan NAT Gateway.

Berikut dokumentasi perbandingan NAT Gateway vs NAT instance yang disebutkan di Dokumentasi AWS: Comparing NAT gateways and NAT instances.

Untuk membandingkan pricing atau harga AWS NAT Gateway dan AWS NAT Instance yang menggunakan backend EC2 Instance, dapat membandingkan dari dokumentasi berikut:

Sekian sekilas penjelasan singkat terkait garis besar NAT service yang ada di AWS. Selanjutnya saya akan menjelaskan terkait konfigurasi AWS NAT Instance.

Pada artikel ini, saya akan menjelaskan bagaimana cara konfigurasi NAT Instance di AWS. Topologi yang saya gunakan pada artikel ini adalah membuat 1 VPC dengan 2 subnet. Subnet dipisahkan menjadi public subnet dan private subnet. Nantinya akan menjalankan 1 EC2 Instance yang akan berjalan sebagain NAT Instance dan berjalan di public subnet. Selain itu menjalankan 1 EC2 instance di private subnet untuk memastikan bahwa instance di private subnet bisa terkoneksi ke internet via NAT Instance. Topologinya jika digambarkan sebagai berikut:

Image

Di artikel ini, AWS NAT Instance yang digunakan adalah NAT AMI based on community AMI dengan backend Amazon Linux 2018.03 yang sudah memasuki end of support di 31 Desember 2020. Jika membutuhkan NAT AMI lain, anda juga dapat membuat NAT AMI sendiri mengikuti dokumentasi AWS berikut: NAT instances

Konfigurasi pada artikel ini sepenuhnya menggunakan AWS Web Console dan bukan menggunakan programmatic access atau via AWS CLI.

Berikut langkah-langkah konfigurasi menjalakan NAT service di AWS menggunakan AWS NAT Instance:

  1. Jika belum memiliki Virtual Private Cloud (VPC), dapat dimulai dengan membuat VPC. Pada AWS Web Console, masuk ke menu VPC -> Your VPCs. Kemudian tekan tombol Create VPC

    Image

  2. Masukkan nama VPC dan IPv4 CIDR Block yang akan digunakan. Pada contoh di artikel ini CIDR block yang saya gunakan adalah 192.168.0.0/23 dan tidak menggunakan IPv6

    Image

  3. Pastikan VPC sudah berhasil terbuat dan tampil di halaman Your VPCs.

    Image

  4. Kemudian masih di halaman service VPC, masuk ke menu Subnets untuk konfigurasi subnet. Kemudian tekan tombol Create subnet

    Image

  5. Konfigurasi public subnet. Pada contoh di artikel ini, saya buat public subnet CIDR di segmen 192.168.0.0/24

    Image

  6. Kemudian konfigurasi private subnet. Di artikel ini, saya gunakan segmen 192.168.1.0/24

    Image

  7. Pastikan public subnet dan private subnet sudah berhasil terbentuk

    Image

  8. Langkah selanjutnya adalah membuat Internet Gateway. Di halaman menu VPC, pilih menu Internet Gateway. Kemuduan klik tombol Create internet gateway

    Image

  9. Konfigurasi dan beri nama internet gateway

    Image

  10. Setelah internet gateway terbentuk, secara default internet gateway belum terasosiasi dengan VPC manapun (Status Detached). Pada halaman konfigurasi internet gateway, klik tombol drop-down Actions -> kemudian klik Attach to VPC

    Image

  11. Pilih nama VPC yang akan diasosiasikan ke internet gateway

    Image

  12. Pastikan internet gateway sudah berhasil terkonfigurasi

    Image

  13. Langkah selanjutnya adalah konfigurasi Route Table. Di menu VPC, masuk ke menu Route Tables -> kemudian klik tombol Create Route Table

    Image

  14. Route table yang pertama di konfigurasi adalah route table untuk public subnet. Beri nama untuk route table tersebut, kemudian asosiasikan ke VPC

    Image

  15. Setelah public route table terbentuk, asosiasikan public subnet ke route table. Klik nama route table -> kemudian pilih sub-menu Subnet Associations -> kemudian klik tombol Edit subnet associations

    Image

  16. Pilih segmen public subnet

    Image

  17. Berikutnya adalah tambahkan default route ke public route table. Klik nama public route table -> kemudian pilih sub-menu Routes -> kemudian klik tombol Edit routes

    Image

  18. Tambahkan default route 0.0.0.0/0 dan asosiasikan default route ke internet gateway yang sebelumnya sudah dibuat

    Image

  19. Berikutnya adalah membuat security group untuk NAT instance dan private segment/subnet. Masuk ke menu service EC2 -> Arahkan ke bagian Network & Security -> Pilih Security Groups

    Image

  20. Konfigurasi security group yang akan digunakan oleh NAT Instance. Pada contoh di artikel ini saya buat agar incoming port yang diizinkan masuk dari public adalah SSH, HTTP dan HTTPS. Kemudian untuk packet ICMP hanya dari internal VPC

    Image
    Image

  21. Selanjutnya konfigurasi security group yang nantinya akan digunakan oleh EC2 yang dijalankan di private subnet. Pada contoh di artikel ini, saya izinkan port SSH, HTTP, HTTPS dan ICMP namun semuanya hanya dapat diakses dari internal VPC

    Image
    Image

  22. Langkah selanjutnya adalah menjalankan NAT Instance. Di halaman EC2 service, masuk ke bagian Instances -> klik menu Instances. Kemudian klik tombol Launch Instances

    Image

  23. Pada bagian pemilihan AMI, pilih menu Community AMI dan pada search bar ketik nat. Nantinya akan tampil Amazon Linux NAT AMI. Pilih AMI tersebut

    Image

  24. Pada bagian instance type, silahkan pilih sesuai kebutuhan. Pada contoh di artikel ini, saya pilih tipe terkecil yaitu t2.micro

    Image

  25. Selanjutnya konfigurasi instance details. Pada baris network, pilih VPC yang sudah dikonfigurasi. Kemudian pada baris subnet, pilih public subnet dan pada bagian auto-assign public IP dapat dipilih enable

    Image

  26. Selanjutnya adalah memilih storage. Pada contoh di artikel ini saya biarkan menjadi default

    Image

  27. Langkah berikutnya adalah optional, di artikel ini saya buat tag dengan key nama instance

    Image

  28. Selanjutnya konfigurasi security group. Pilih security group untuk NAT instance yang sudah dikonfigurasi sebelumnya

    Image

  29. Jika ada muncul pesan Boot from General Purpose (SSD). Dapat dilanjutkan dengan memilih "Continue with Magnetic as the boot volume for this instance"

    Image

  30. Review Instance Launch untuk NAT Instance. Jika sudah sesuai klik tombol Launch

    Image

  31. Pilih Key Pair yang akan digunakan. Jika sudah pernah membuat Key Pair, bisa menggunakan Key Pair tersebut. Jika belum, bisa membuat Key Pair baru. Kemudian klik Launch Instance

    Image

  32. Selanjutnya akan diarahkan ke halaman Launch Status. Silahkan lanjutkan pengecekan NAT Instance dengan klik tombol View Instances

    Image

  33. Pastikan NAT Instance sudah berjalan (Running) dan Status Check sudah passed untuk kesemua pengecekan

    Image

  34. Langkah berikutnya adalah Stop Source Destination Check untuk NAT Instance. Klik nama NAT Instance -> kemudian klik drop-down menu Actions -> pilih Networking -> pilih Change source/destination check

    Image

  35. Pilih Stop di bagian Source / destination checking

    Image

  36. Selanjutnya adalah mengasosiasikan NAT Instance ke Main Route Table di VPC. Masuk ke halaman service VPC -> pilih menu Route Tables -> pilih Main Route Table untuk VPC -> kemudian klik sub-menu Subnet Associations -> klik tombol Edit subnet associations

    Image

  37. Pilih segmen private subnet

    Image

  38. Langkah berikutnya adalah membuat default route untuk Main Route Table. Pilih Main Route Table -> klik sub-menu Routes -> klik tombol Edit routes

    Image

  39. Tambahkan default route 0.0.0.0/0 dan asosiasikan ke NAT Instance

    Image

  40. Selanjutnya adalah membuat 1 EC2 instance yang akan dijalankan di private subnet. Tujuannya adalah untuk pengujian bahwa Instance di private subnet sudah dapat mengakses internet via NAT Instance. Kembali ke halaman EC2 service, masuk ke bagian Instances -> klik menu Instances. Kemudian klik tombol Launch Instances. Di contoh artikel ini saya menggunakan AMI Ubuntu Server 20.04

    Image

  41. Konfigurasi instance type. Di contoh artikel ini saya menggunakan t2.micro

    Image

  42. Pada konfigurasi instance details. Pilih VPC yang sudah dikonfigurasi dan pada bagian subnet pilih private subnet

    Image

  43. Konfigurasi storage yang digunakan oleh EC2 Instance. Pada contoh ini saya biarkan menjadi default

    Image

  44. Kemudian jika diperlukan beri tag untuk Instance. Di contoh ini saya berikan key nama instance

    Image

  45. Pada konfigurasi security group. Pilih security group untuk private subnet

    Image

  46. Review instance launch. Jika sudah sesuai klik tombol Launch

    Image

  47. Pilih key pair yang akan digunakan oleh instance. Jika sudah sesuai klik Launch Instance

    Image

  48. Selanjutnya akan diarahkan ke halaman Launch Status. Silahkan lanjutkan dengan klik tombol View Instances

    Image

  49. Pastikan private instance sudah berjalan (Running) dan Status Check sudah passed. Klik nama Instance -> kemudian klik sub-menu Details -> cek private IP address yang digunakan oleh instance

    Image

  50. Pastikan dari public/NAT Instance sudah dapat ping ke IP tersebut

    Image

  51. Jika key pair yang dapat digunakan untuk akses ke EC2 instance belum tersimpan. Silahkan upload dan simpan keypair. Jangan lupa untuk merubah privilege file menjadi user read only. Kemudian tes ssh ke ip private instance. Pastikan SSH berhasil

    Image
    Image

  52. Tes akses ke internet dari private instance. Pada contoh ini saya coba simulasikan download dan install nginx. Pastikan akses ke internet berhasil dan instalasi berhasil

    Image
    Image
    Image

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

Situs yang Didukung WordPress.com.

Atas ↑

%d blogger menyukai ini: