Post kali ini mungkin tidak secara langsung membahas soal dari cloud computing, namun bisa bermanfaat untuk melakukan pengecekkan environment cloud sehingga mempermudah dalam melakukan troubleshooting dan menghadapi challenge yang ada.
Berikut adalah perintah-perintah AWS yang cukup berguna untuk membangun dan mengecek networking di Cloud seperti Subnet, Security Group, VPC, Internet Gateway, Route, dll.
Sebelum itu pastikan kita sudah cukup punya knowledge tentang apa itu AWS, nama-nama layanannya, Availability Zones, Data center, Region, Identity Management & Permission.
Siapkan AWS-CLI
https://learnubuntu.com/install-aws-cli/
Siapkan access key untuk menggunakan aws-cli dan berikan permission pada IAM user yang akan digunakan, misalnya untuk latihan kali ini AmazonEC2FullAccess, namun jika untuk real production bisa diberikan permission seminimal mungkin/custom sesuai dengan kebutuhan untuk security.
Config dengan perintah:
aws configure
root@workstation:/home/bagussa# aws configure
AWS Access Key ID []: xxxxxx
AWS Secret Access Key []: xxxxxx
Default region name [None]: ap-southeast-1
Default output format [None]:
Masukkan access-key dan secret key yang sudah dibuat sebelumnya.
Ok langsung saja ke bagian cara pembuatan VPC, Route, Internet gateway, Subnet, dll
Berikut adalah gambar yang cukup menarik untuk memahami VPC, pada intinya dengan VPC kita diberikan Virtual Private Cloud Network yang bersifat isolated dari server-server virtual yang ada di layanan cloud tersebut sehingga membuat server kita sendiri aman dan tidak tercampur dengan layanan lainnya.
Nah setelah kita membuat VPC berikut kita bisa memikirkan untuk pembagian subnet apakah mau private atau publik, routingnya, pemasangan internet gateway, dns dhcp nya, mirip2 sama traditional network namun ini sudah dalam bentuk layanan cloud.
1. Membuat VPC
Untuk latihan kita bikin network yang kecil saja yaitu 192.168.1.0/24
dari situ kita nanti bisa dibagi misal 192.168.1.0/25 untuk subnet yang bisa terhubung ke internet ini biasanya untuk App
kemudian sisanya untuk DB 192.168.1.128/25.
Sesuaikan kebutuhan saja, ini bisa dipelajari di konsep Subnetting dan VLSM
root@workstation:/home/emailbagussa# aws ec2 create-vpc --cidr-block 192.168.1.0/24
{
"Vpc": {
"CidrBlock": "192.168.1.0/24",
"DhcpOptionsId": "dopt-0df67715c1859ed8e",
"State": "pending",
"VpcId": "vpc-09d169a6cfe31ffd6",
"OwnerId": "730335379478",
"InstanceTenancy": "default",
"Ipv6CidrBlockAssociationSet": [],
"CidrBlockAssociationSet": [
{
"AssociationId": "vpc-cidr-assoc-0795797155d61bb6b",
"CidrBlock": "192.168.1.0/24",
"CidrBlockState": {
"State": "associated"
}
}
],
"IsDefault": false
}
}
Mengecek VPC yang baru saja dibuat
untuk mendapatkan informasi dari VPC yang baru saja kita buat kita bisa menggunakan perintah berikut:
root@workstation:/home/emailbagussa# aws ec2 describe-vpcs
{
"Vpcs": [
{
"CidrBlock": "172.31.0.0/16",
"DhcpOptionsId": "dopt-0df67715c1859ed8e",
"State": "available",
"VpcId": "vpc-034fb443d6482e50b",
"OwnerId": "730335379478",
"InstanceTenancy": "default",
"CidrBlockAssociationSet": [
{
"AssociationId": "vpc-cidr-assoc-03206aa2784e743bd",
"CidrBlock": "172.31.0.0/16",
"CidrBlockState": {
"State": "associated"
}
}
],
"IsDefault": true
},
{
"CidrBlock": "192.168.1.0/24",
"DhcpOptionsId": "dopt-0df67715c1859ed8e",
"State": "available",
"VpcId": "vpc-09d169a6cfe31ffd6",
"OwnerId": "730335379478",
"InstanceTenancy": "default",
"CidrBlockAssociationSet": [
{
"AssociationId": "vpc-cidr-assoc-0795797155d61bb6b",
"CidrBlock": "192.168.1.0/24",
"CidrBlockState": {
"State": "associated"
}
}
],
"IsDefault": false
}
]
}
Perintah diatas akan memunculkan VPC yang ada pada cloud kita, untuk VPC yang baru saja kita buat kita bisa refer pada VPC ID dengan menambahkan option query seperti berikut:
root@workstation:/home/emailbagussa# aws ec2 describe-vpcs --filters Name=vpc-id,Values=vpc-09d169a6cfe31ffd6
{
"Vpcs": [
{
"CidrBlock": "192.168.1.0/24",
"DhcpOptionsId": "dopt-0df67715c1859ed8e",
"State": "available",
"VpcId": "vpc-09d169a6cfe31ffd6",
"OwnerId": "730335379478",
"InstanceTenancy": "default",
"CidrBlockAssociationSet": [
{
"AssociationId": "vpc-cidr-assoc-0795797155d61bb6b",
"CidrBlock": "192.168.1.0/24",
"CidrBlockState": {
"State": "associated"
}
}
],
"IsDefault": false
}
]
}
Untuk filter lainnya bisa dicek dibawah ini
Reference:
https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpcs.html#options
2. Membuat Subnet Publik
Catatan: Each subnet must reside entirely within one Availability Zone and cannot span zones
root@workstation:/home/emailbagussa# aws ec2 create-subnet --vpc-id vpc-09d169a6cfe31ffd6 --cidr-block 192.168.1.0/25
{
"Subnet": {
"AvailabilityZone": "ap-southeast-1b",
"AvailabilityZoneId": "apse1-az1",
"AvailableIpAddressCount": 123,
"CidrBlock": "192.168.1.0/25",
"DefaultForAz": false,
"MapPublicIpOnLaunch": false,
"State": "available",
"SubnetId": "subnet-08bff22928090642b",
"VpcId": "vpc-09d169a6cfe31ffd6",
"OwnerId": "730335379478",
"AssignIpv6AddressOnCreation": false,
"Ipv6CidrBlockAssociationSet": [],
"SubnetArn": "arn:aws:ec2:ap-southeast-1:730335379478:subnet/subnet-08bff22928090642b",
"EnableDns64": false,
"Ipv6Native": false,
"PrivateDnsNameOptionsOnLaunch": {
"HostnameType": "ip-name",
"EnableResourceNameDnsARecord": false,
"EnableResourceNameDnsAAAARecord": false
}
}
}
By default subnet akan terbuat seperti diatas dengan Zone yang akan dipilih oleh AWS, kita bisa menentukan sendiri sebetulnya untuk meningkatan availability, misalnya kita buat 3 subnet untuk masing-masing di 3 zone. Untuk latihan bisa simple seperti diatas dulu 1 subnet 1 zone.
Untuk menjadikan subnet itu public kita perlu mengasosiasikan subnet tersebut dengan public route ke internet gateway.
2.2 Membuat internet gateway
root@workstation:/home/emailbagussa# aws ec2 create-internet-gateway
"InternetGateway": {
"Attachments": [],
"InternetGatewayId": "igw-03c39f2881932ba9a",
"OwnerId": "730335379478",
"Tags": []
}
}
2.3 Asosiasikan dengan VPC yang tadi kita buat dulu
aws ec2 attach-internet-gateway --vpc-id vpc-09d169a6cfe31ffd6 --internet-gateway-id igw-03c39f2881932ba9a
2.4 Membuat routing table
aws ec2 create-route-table --vpc-id vpc-09d169a6cfe31ffd6
{
"RouteTable": {
"Associations": [],
"PropagatingVgws": [],
"RouteTableId": "rtb-0cac70a44d059864a",
"Routes": [
{
"DestinationCidrBlock": "192.168.1.0/24",
"GatewayId": "local",
"Origin": "CreateRouteTable",
"State": "active"
}
],
"Tags": [],
"VpcId": "vpc-09d169a6cfe31ffd6",
"OwnerId": "730335379478"
}
}
Catat routing table ID diatas
2.5 Buat routing ke internet gateway
3. Membuat Subnet Private
root@cs-195483573131-default:/home/emailbagussa# aws ec2 create-subnet --vpc-id vpc-09d169a6cfe31ffd6 --cidr-block 192.168.1.128/25
{
"Subnet": {
"AvailabilityZone": "ap-southeast-1b",
"AvailabilityZoneId": "apse1-az1",
"AvailableIpAddressCount": 123,
"CidrBlock": "192.168.1.128/25",
"DefaultForAz": false,
"MapPublicIpOnLaunch": false,
"State": "available",
"SubnetId": "subnet-0db7a335615304c7c",
"VpcId": "vpc-09d169a6cfe31ffd6",
"OwnerId": "730335379478",
"AssignIpv6AddressOnCreation": false,
"Ipv6CidrBlockAssociationSet": [],
a335615304c7c",Arn": "arn:aws:ec2:ap-southeast-1:730335379478:subnet/subnet-0db7
"EnableDns64": false,
"Ipv6Native": false,
"PrivateDnsNameOptionsOnLaunch": {
"HostnameType": "ip-name",
"EnableResourceNameDnsARecord": false,
"EnableResourceNameDnsAAAARecord": false
}
}
}
Untuk private subnet tidak perlu ditambahkan routing ke internet gateway agar tetap private.
Selanjutnya kita bisa menempatkan VM yang dibuat di subnet tersebut untuk mengecek koneksi ke internet, dll.
Thank you kalau sudah mengikuti tutorial ini, semangat belajar.
Comments
Post a Comment