AWS Networking VPC — Part2

Kusuma Ningrat
16 min readSep 9, 2023

--

Melanjutkan artikel sebelumnya yaitu AWS Networking with VPC — Part1 , di pembahasan kali ini kita akan coba implementasikan case yang sudah kita buat. Okee, mari kita liat kembali arsitektur nya.

Adapun beberapa tahapan yang akan kita lakukan untuk menyelesaikan case tersebut yaitu sebagai berikut:

  1. Membuat VPC
  2. Membuat Subnet
  3. Membuat Internet Gateway dan Route Table
  4. Membuat Instance EC2
  5. VPC Peering

Tanpa berlama-lama langsung saja kita mulai, silahkan buka console dari Amazon Web Service (AWS) di laman berikut AWS Management Console (silahkan mendaftar jika belum memiliki akun).

Kemudian pada Search Bar masukan keyword VPC dan buka service tersebut.

Ketika baru membuka service VPC, maka akan ada satu VPC default bawaan dari AWS nya.

Oke, sekarang kita akan buat dua (2) VPC yaitu vpc-a dan vpc-b.

Pada halaman utama service VPC, klik tombol Create VPC untuk membuat VPC baru. Kemudian isikan informasi VPC sebagai berikut.

Jika sudah sesuai, klik tombol Create VPC.

Selanjutnya, buat juga untuk vpc-b dengan informasi VPC sebagai berikut.

Pastikan di dashboard VPC kita sudah terdapat dua (2) VPC baru yaitu dengan nama vpc-a dan vpc-b.

Selanjutnya kita akan membuat Subnets untuk masing-masing vpc. Untuk vpc-a sendiri memiliki dua (2) subnets yaitu public dan private, sedangkan vpc-b hanya memiliki satu (1) subnet yaitu private.

Pilih menu Subnets dan pastikan ada tiga subnets default bawaan dari AWS.

Untuk membuat subnet baru, klik tombol Create subnet dan isikan informasi berikut untuk subnet public.

Pastikan memilih vpc-(id) (vpc-a) pada parameter VPC ID.

Perhatikan juga pada IPv4 CIDR block kita menggunakan subnetmask /24, artinya kita akan memiliki sebanyak 256 hosts dengan alamat network 10.10.1.x. (2⁸).

Oke, selanjutnya kita buat juga subnet private untuk vpc-a dengan cara yang sama. Kemudian isikan informasi subnet private sebagai berikut.

Subnet untuk vpc-a, baik subnet public atau private kita sudah seleseai membuatnya. Sekarang kita lanjut untuk membuat subnet untuk vpc-b. Perlu di ingat bahwa vpc-b hanya memiliki satu subnet yaitu private.

Oke, silahkan klik tombol Create subnet, kemudian isikan informasi untuk subnet private dari vpc-b sebagai berikut.

Jika pembuatan subnet sudah selesai, makan akan terlihat tiga (3) subnet baru pada dashboard.

Oke, selanjutnya kita akan membuat Internet Gateways yang kita akan hubungkan (attach) ke vpc-a.

Silahkan pilih menu Internet Gateways dan pastikan hanya terdapat satu internet gateway secara default.

Kemudian, klik tombol Create internet gateway di pojok atas sebelah kanan dan isikan informasi Name tag seperti berikut.

Jika sudah, klik tombol Create internet gateway.

Setelah pembuatan internet gateway, maka akan otomatis muncul tombol Attach to VPC, yang fungsinya agar kita bisa menghubungkan (attach) igw yang sudah kita buat ke vpc.

Kemudian klik tombol Attach to VPC tersebut, maka kita akan diarahkan ke halaman attach to vpc seperti berikut

Silahkan pilih vpc pada search bar Available VPCs dan pilih vpc-a, karena subnet-public berada di vpc-a yang akan kita rutekan keluar (internet).

Setelah di attach, maka akan dapat dilihat pada Detail bahwa state dari Internet Gateway nya yaitu Attached dan di attach ke vpc-a

Oke, setelah membuat Internet Gateway selanjutnya kita akan membuat Route Table untuk setiap subnet.

Silahkan pilih menu Route tables dan pastikan terdapat tiga (3) route tables yang ada.

Dapat dilihat pada kolom VPC, terdapat route table dari vpc-a dan vpc-b secara otomatis terbuat ketika pembuatan VPC di tahap sebelumnya. Namun, disini kita akan membuat custom route table.

Oke langsung saja kita buat route table untuk subnet public terlebih dahulu. Klik tombol Create route table dan isikan informasi pembuatan route table nya sebagai berikut.

Jika sudah, maka akan terlihat detail dari route table yang sudah dibuat.

Kita perlu menambahkan record untuk Routes dengan alamat 0.0.0.0/0 yang mengarah ke internet gateway yang sudah kita buat agar subnet public dapat diakses dari IP dan Network manapun (internet). Untuk itu, klik tombol Edit routes pada pojok atas kanan di dalam dialog Routes.

Klik tombol Add route untuk menambahkan entry baru kemudian isikan dengan alamat 0.0.0.0/0 dan dibagian target pilih internet gateway , secara otomatis akan muncul pilihan internet gateway. Pastikan memilih internet gateway dengan nama vpc-a-igw yang sudah kita buat sebelumnya.

Jika sudah klik Save changes. Pastikan terdapat dua entry pada bagian Routes seperti yang terlihat pada gambar berikut.

Selanjutnya, kita perlu associate subnet untuk route table yang kita buat. Subnet yang akan kita associate ke route table tersebut yaitu subnet public yang akan mengarah ke luar (internet). Untuk itu, silahkan pilih tab Subnet associations sebelah kanan tab Routes.

Terlihat terdapat dua (2) subnet di vpc-a yaitu subnet public dan private. Namun karena route table yang kita buat saat ini untuk di khusus kan untuk public, maka kita akan hanya memilih yang public. Oke, langsung saja klik tombol Edit subnet associations.

Kemudian pilih subnet-a-public dengan cara klik checkbox pada list item dan klik tombol Save associations.

Jika sudah, maka akan terlihat satu entry yaitu subnet-a-public pada dialog Explicit subnet associations.

Setelah itu balik lagi ke dashboard utama Route tables.

Selanjutnya kita akan buat juga route table untuk subnet-a-private dengan cara yang sama. Langsung saja klik tombol Create route table.

Kemudian isikan informasi route table untuk subnet-a-private sebagai berikut.

Jika sudah, maka akan terlihat detail dari route table yang baru saja dibuat.

Untuk subnet private, kita tidak perlu menambahkan route ke luar (internet), karena subnet private kita gunakan hanya untuk koneksi internal. Oleh karena itu, kita hanya perlu asosiasi subnet nya saja. Langsung klik tab Subnet associations.

Terlihat bahwa sisa satu subnet yang belum asosiasikan ke route table di vpc-a yaitu subnet private. Langsung saja klik tombol Edit subnet associations.

Kemudian pilih subnet-a-private dengan cara klik checkbox pada list item dan klik tombol Save associations.

Oke jika sudah, sekarang kita buat juga route table untuk subnet-b-private dengan cara yang sama. Langsung aja klik Create route table.

Kemudian isikan informasi dari route table yang akan kita buat sebagai berikut.

Jika sudah, maka akan terlihat detail dari route table yang baru saja dibuat.

Kemudian pindah ke tab Subnet associations untuk assosiasi subnet-b-private ke route table tersebut.

Lalu klik tombol Edit subnet associations dan pilih subnet-b-private dengan cara klik checkbox pada list item dan klik tombol Save associations.

Jika sudah, silahkan kembali ke menu utama Route tables dan pastikan terlihat ada tiga (3) route table baru yang baru saja kita tambahkan.

Oke sampai tahap ini kita sudah selesai membuat VPC, IGW, Subnet dan Route table serta associate subnet. Selanjutnya kita akan membuat instances EC2. Sebelumnya, coba perhatikan diagram berikut.

Pertama kita akan membuat instance untuk subnet-a, terlihat bahwa terdapat dua instance yang akan kita buat, yaitu instance untuk subnet public dan instance untuk subnet private.

Oke langsung saja, pertama silahkan cari service EC2 pada search bar.

Kemudian pilih menu Instances dan pastikan belum ada instance yang dibuat atau berjalan.

Untuk membuat instance baru, langsung saja klik tombol Launch Instances. Pertama kita akan buat instance instance-a-public. Isikan informasi Name dan Amazon Machine Image (AMI) beserta Architecture nya seperti gambar dibawah.

Kemudian bagian instance type pilih t2.micro.

Selanjutnya pada bagian Key pair (login) klik Create new key pair agar kita bisa melakukan remote ssh ke instance menggunakan ssh key. Silahkan sesuaikan key name nya, seperti contoh disini saya sudah buat key name nya yaitu example.

Selanjutnya pada bagian Network Settings, klik tombol Edit.

Dan sesuaikan informasi dari instance berdasarkan vpc dan subnet nya yaitu vpc-a dengan subnet-a-public. Selain itu enable auto assign public IP agar instance yang kita buat mendapatkan publik IP secara otomatis sehingga kita dapat menggunakan publik IP tersebut untuk koneksi luar.

Kemudian untuk Firewall (security groups), pilih Create security group dan isikan informasi berikut.

Jika sudah, biarkan aturan lainnya secara default dan klik Launch instance.

Maka akan terlihat satu instance yang sudah kita buat di dashboard Instances.

Selanjutnya kita buat instance untuk instance-a-private dengan cara yang sama. Langsung saja klik Launch instances.

Isikan informasi Name dan Amazon Machine Image (AMI) beserta Architecture nya seperti gambar dibawah.

Kemudian pada bagian instance type pilih t2.micro.

Selanjutnya pada bagian Key pair (login) pilih key yang sudah dibuat sebelumnya yaitu example.

Selanjutnya pada bagian Network Settings, klik tombol Edit.

Dan sesuaikan informasi dari instance berdasarkan vpc dan subnet nya yaitu vpc-a dengan subnet-a-private. Selain itu disable auto assign public IP, karena untuk subnet private kita tidak perlu publik IP dari instance, kita hanya memerlukan private IP nya saja.

Kemudian pada bagian Firewall (security group), pilih Create security group dan isikan informasi berikut.

Perlu diperhatikan bahwa untuk instance private kita perlu mengubah inbound rules untuk port 22 (SSH) agar public instance dapat melakukan remote ke instance private dengan menggunakan ip private. Jadi langsung saja, ubah Source type dari Anywhere menjadi Custom, kemudian pada field source isikan alamat network dari subnet-a-public seperti pada gambar berikut.

Jika sudah, biarkan aturan lainnya secara default dan klik Launch instance.

Oke sekarang yang terakhir yaitu untuk instance-b-private, langsung saja kita buat dengan cara yang sama, klik Launch instances

Isikan informasi Name dan Amazon Machine Image (AMI) beserta Architecture nya seperti gambar dibawah.

Kemudian pada bagian instance type pilih t2.micro.

Selanjutnya pada bagian Key pair (login) pilih key yang sudah dibuat sebelumnya yaitu example.

Selanjutnya pada bagian Network Settings, klik tombol Edit.

Dan sesuaikan informasi dari instance berdasarkan vpc dan subnet nya yaitu vpc-b dan subnet-b-private. Selain itu disable auto assign public IP

Kemudian untuk Firewall (security group), pilih Create security group lalu isikan informasi security group nya sebagai berikut.

Lanjut kita ubah Source type untuk inbound rules SSH nya dari Anywhere menjadi Custom, kemudian pada field source isikan alamat network dari subnet-a-private seperti pada gambar berikut.

Jika sudah, biarkan aturan lainnya secara default dan klik Launch instance.

Oke sekarang kita sudah memiliki tiga (3) instance seperti yang terlihat pada gambar berikut.

Selanjutnya, kita akan ujicoba koneksi antar instances tersebut.

Pertama, pilih instance-a-public kemudian klik tombol Connect untuk melihat user dan alamat ip public yang digunakan untuk mengakses instance tersebut.

Kemudian buka Terminal/CMD di laptop/komputer masing-masing (contohnya disini saya menggunakan git bash). Setelah itu silahkan cari dimana teman-teman menyimpan SSH Key yang sudah di download sebelumnya.

Sebelum melakukan SSH, kita perlu mengubah permission dari file private key yang sudah kita download. Silahkan jalankan perintah “chmod 400 example.pem”

Kemudian jalankan perintah ssh -i example.pem ec2-user@52.76.69.214 pada terminal. Silahkan sesuaikan alamat IP public masing-masing.

Oke, terlihat untuk instance-a-public sudah dapat di akses melalui jaringan luar (internet).

Setelah itu, kita coba lakukan SSH juga ke instance-a-private melalui terminal instance-a-public. Langkah pertama, silahkan buat file baru pada instance-a-public dengan nama example.pem yang disikan dengan private key yang sudah di download.

[ec2-user@ip-10–10–1–110 ~]$ vim example.pem

Kemudian save file tersebut dengan menekan tombol Esc -> :wq.

Ganti permission dari private file yang sudah kita buat di dalam instance-a-public dengan menjalankan perintah berikut.

[ec2-user@ip-10–10–1–110 ~]$ chmod 400 example.pem

Setelah itu, silahkan copy private ip dari instance-a-private dengan cara melihat detail dari instance tersebut.

Kemudian cobalah akses SSH dari instance-a-public ke instance-a-private menggunakan private key dengan menjalankan perintah berikut ssh -i example.pem ec2-user@10.10.2.229

Oke, terlihat sekarang kita juga sudah bisa melakukan remote SSH ke instance-a-private melalui instance-a-public menggunakan ip private.

Selanjutnya kita akan coba melakukan SSH ke instance-b-private melalui instance-a-private dengan cara yang sama. Silahkan buat file example.pem terlebih dahulu pada instance-a-private kemudian lakukan SSH.

Copy private ip dari instance-b-private pada detail instance.

Kemudian jalankan perintah berikut ssh -i example.pem ec2-user@10.20.1.167.

Terlihat bahwa kita belum bisa melakukan SSH ke instance-b-private melalui instance-a-private. Hmm!! Kira-kira kenapa ya ?

Okee, jadi ini disebabkan karena kita belum melakukan VPC Peering. Hal ini kita perlu lakukan karena subnet-a-private dan subnet-b-private berada di VPC yang berbeda, oleh karena itu kita perlu peering connection antar VPC tersebut.

Sekarang langsung saja kita buat vpc peering dengan mengakse service VPC, lalu pilih Peering connection.

Kemudian klik tombol Create peering connection dan isikan informasi dari peering connection nya seperti berikut.

Perhatikan pada parameter VPC ID (Requester), Requester disini maksudnya dari mana (source) yang ingin melakukan koneksi SSH, dalam hal ini yaitu subnet-a-private yang berada di dalam vpc-a network. Selain itu pada parameter VPC ID (Accepter), Accepter berarti kemana koneksi SSH tersebut akan dilakukan, dalam hal ini yaitu subnet-b-private yang berada di dalam vpc-b network.

Oke jika sudah, biarkan konfigurasi lain secara default lalu klik tombol Create peering connection.

Setelah peering connection dibuat maka status nya akan pending, yang artinya kita perlu melakukan accept manual.

Klik dropdown Action kemudian pilih Accept request.

Setelah itu, kita perlu modifikasi route table dari kedua subnet tersebut. Langsung saja klik Route tables -> pilih subnet-a-private-rtb dengan centang checkbox pada list item.

Terlihat untuk subnet-a-private-rtb hanya memiliki satu route yaitu alamat network dari vpc-a. Sekarang kita tambahkan route baru dengan cara klik Edit routes.

Kemudian klik tombol Add route lalu isikan destination field dengan alamat network dari subnet-b-private yaitu 10.20.1.0/24 dan pada field target pilih Peering Connection lalu pilih peering connection yang sudah dibuat sebelumnya dengan nama vpc_peering_a-b.

Jika sudah, klik Save changes.

Lakukan hal yang sama untuk subnet-b-private untuk menambahkan route dengan alamat network dari subnet-a-private. Oke langsung saja pilih subnet-a-private-rtb -> Routes -> Edit routes.

Kemudian tambahkan route baru dengan cara klik tombol Add route, lalu isikan destination field dengan alamat network dari subnet-a-private yaitu 10.10.2.0/24 dan pada field target pilih Peering Connection lalu pilih peering connection yang sudah dibuat sebelumnya dengan nama vpc_peering_a-b.

Jika sudah, klik Save changes.

Sekarang silahkan coba kembali koneksi SSH dari instance-a-private ke instance-b-private.

Yeeyy!!, sekarang kita sudah bisa melakukan SSH ke instance-b-private melalui instance-a-private dengan konfigurasi VPC Peering Connection.

Kemudian, silahkan coba lakukan ping dari instance-b-private ke instance-a-private.

Oke, terlihat kita belum bisa melakukan ping ke alamat ip instance-a-private.

Ini disebabkan karena kita perlu menambahkan akses ping ICMP pada security group dari kedua instance tersebut. Oke jadi langsung saja, pada dashboard EC2 scroll kebawah hingga menemukan menu Security Groups.

Terlihat beberapa security groups yang sudah kita buat pada saat proses launch instance. Langsung saja pilih instance-a-private-sg.

Kemudian pilih tab Inbound rules.

Terlihat bahwa, pada security group instance-a-private hanya memiliki satu rule yaitu SSH. Sekarang kita tambahkan rule baru untuk ping ICMP dengan cara klik tombol Edit inbound rules.

Lalu klik tombol Add rule, kemudian pada dropdown type pilih All ICMP -IPV4, source nya pilih custom lalu isikan alamat network dari subnet-b-private yaitu 10.20.1.0/24 sehingga seperti gambar berikut.

Jika sudah, klik tombol Save rules.

Lakukan hal yang sama untuk security group instance-b-private.

Langsung saja pilih instance-b-private-sg -> pilih tab Inbound rules.

Kemudian klik tombol Edit inbound rules -> Add rule, lalu pada dropdown type pilih All ICMP -IPV4, source nya pilih custom lalu isikan alamat network dari subnet-b-private yaitu 10.10.2.0/24 sehingga seperti gambar berikut.

Jika sudah, klik Save rules.

Oke, sekarang silahkan coba lagi ping dari instance-b-private ke alamat ip private dari instance-a-private dan sebaliknya.

Yeeyy!!, kita sudah berhasil menghubungkan dua (2) VPC yang berbeda menggunakan metode VPC Peering :D.

Pastikan kalian menghapus semua resources yang sudah dibuat untuk latihan agar tidak dikenai charge:).

--

--

Kusuma Ningrat

I spend a lot of time in front of Computer to stay alive and to keep cloud's blue.