Membuat Arsitektur Berskala Dengan Elastic Load Balancing

VLANs dibuat untuk menyediakan segmentasi layanan tradisional dengan router fisik di konfigurasi LAN. Tanpa menggunakan VLANs maka akan dibutuhkan switch setiap environment. Selain itu efek yang dapat terjadi adalah pesan broadcast, hal ini dapat diperparah ketika terjadi serangan virus maka seluruh device akan besar kemungkinan terinfeksi. Dengan menggunakan VLANs address maka akan membuat scalability dan security lebih baik. Perhatikan layer 2 broadcast: Switch floods it out all ports : seluruh port akan menerima pesan padahal yang hendak berkomunikasi hanya device tertentu.

Misalnya pada sebuah gedung akan dibuat instalasi, maka setiap lantai akan dibuat switch dan setiap switch itu dihubungkan dengan router. Namun, jika menggunakan VLANs cukup menggunakan satu switch. Lalu bagaimana membuat VLANs?, sebelumnya perlu diingat bahwa VLAN itu sama dengan subnet. Komunikasi antar-VLANs perlu diperantarai dengan trunk atau mekanisme trunking. By default trunk akan memberikan id VLAN baru dengan nilai 1 yang akan dikirim dan kemudian diterjemahkan kembali menjadi VLAN yang sesungguhnya. Istilahnya disebut tagging. Protokol trunking yang paling terkenal adalah IEEE 802.1Q atau ISL (Inter-Switch Link). Protokol IEEE 802.1Q akan melakukan enkapsulisasi paket data.

Kegiatan di atas akan membuat proses bisnis agak terhambat karena perlu melakukan banyak konfigurasi. Sedangkan dengan teknologi komputasi awan akan lebih mudah, misalnya saja implementasi dari load balancer di teknologi komputasi. Pada kesempatan ini akan dibahas bagaimana membuat arsitektur berskala dengan Elastic Load Balancing, perhatikan:

  1. Pastikan telah memiliki akun AWS
  2. Login dan pada management console ketik EC2 dan pilih
  3. Sebelumnya pastikan sudah memiliki EC2 instance yang akan diskalakan
  4. Pada panel sebelah kiri pilih Instances
  5. Pilih instance yang akan diskalakan
  6. Klik tombol Action kemudian pilih Image and templates lalu klik Create image

    • sumber: aws.amazon.com

  7. Pada halaman Create image:
    • Instance ID: identitas dari instance yang telah dipilih
    • Image name: nama image agar lebih mudah dikenali
    • Image description - optional: deskripsi tentang image agar lebih diketahui cirinya
    • No reboot: untuk membuat instance tidak melakukan reboot

    • sumber: aws.amazon.com

    • Instance volumes: untuk instance secara otomatis mapping EBS

      • sumber: aws.amazon.com

    • Tag - optional: memudahkan filtering
      • Tag image and snapshots together: nama tag sama antara image dan snapshots
      • Tag image and snapshots separately: bedakan nama tag antara image dan snapshots

      • sumber: aws.amazon.com

  8. Klik tombol Create image
  9. Pada panel sebelah kiri pilih Image dan klik AMIs kemudian pastikan image telah terbuat
  10. Pada panel sebelah kiri pilih Load Balancing lalu klik Target Groups
  11. Klik tombol Create target group
  12. Pada halaman Specify group details
    • Basic configuration
      • Choose a target type
        • Instances: untuk target load balancing instance
        • IP address: untuk target load balancing berupa alamat IP
        • Lambda function: untuk target load balancing berupa Lambda
        • Application Load Balancer: target load balancer kembali

        • sumber: aws.amazon.com

      • Target group name: nama target group untuk memudahkan identifikasi
      • Protocol - Port: protokol yang digunakan dan port yang dilewati
      • VPC: VPC dari target

      • sumber: aws.amazon.com

    • Health checks
      • Health check protocol: protokol yang akan diperiksa kesehatannya
      • Advanced health check settings
        • Port
          • Traffic port: memeriksa port yang dijadikan lalu lintas
          • Overide: memeriksa port lain
        • Healthy threshold: ambang keberhasilan secara berurut
        • Unhealthy threshold: ambang kegagalan secara berurut
        • Timeout: waktu respons kegagalan maksimum
        • Interval: waktu perkiraan untuk memeriksa seluruh kesehatan

      • sumber: aws.amazon.com

    • Attributes
    • Tags - optional: untuk memudahkan filtering sumber daya

      • sumber: aws.amazon.com

  13. Klik tombol next
  14. Pada halaman Register targets
    • Available instances: instance yang tersedia, untuk membuat target grup opsional
    • Review targets: target optional yang berhasil dibuat
  15. Klik tombol Create target group
  16. Pada panel sebelah kiri pilih Load Balancing dan pilih Target Group lalu pastikan target grup yang dibuat sudah ada
  17. Pada panel sebelah kiri pilih Load Balancing dan klik Load Balancer
  18. Klik tombol Create load balancer
  19. Pada halaman Load balancer types pilih Application Load Balancer dengan klik Create
    • Application Load Balancer: untuk HTTP, HTTPS
    • Network Load Balancer: untuk TCP, UDP, TLS
    • Gateway Load Balancer: untuk gateway ke third-party

    • sumber: aws.amazon.com

  20. Pada halaman Create Application Load balancer
    • Basic configuration
      • Load balancer name: nama dari load balancer
      • Scheme
        • Internet-facing: melalui internet
        • Internal: melalui private IP address
      • IP address type
        • IPv4: hanya untuk IP versi 4
        • Dualstack: bisa IP versi 4 dan versi 6

      • sumber: aws.amazon.com

    • Network mappping
      • VPC: lokasi VPC dari target
      • Mappings: pilih AZ lalu pilih subnet lokasi dari instance yang akan ditempatkan

      • sumber: aws.amazon.com

    • Security groups: pilih security group sesuai kebutuhan

      • sumber: aws.amazon.com

    • Listeners and routing
      • Protocol: ini harus sama dengan protokol yang digunakan target group sebelumnya
      • Port: celah yang dilewati
      • Default action: target group yang sebelumnya telah dibuat
      • Listener tags - optional: untuk memudahkan filter

      • sumber: aws.amazon.com

    • Add-on services
      • AWS Global Accelerator: untuk mendapatkan static IPdan meningkatkan performa

      • sumber: aws.amazon.com

    • Tags: untuk memudahkan filter
    • Summary: ringkasan dari konfigurasi yang telah dibuat
  21. Klik tombol Create load balancer
  22. Pastikan Load Balancer telah terbuat
  23. Pada panel sebelah kiri pilih Auto Scaling lalu klik pada Launch Configuration
  24. Klik tombol Create launch configuration
  25. Pada halaman Create launch configuration
    • Launch configuration name: untuk mudah dikenali berikan nama
    • Amazon machine image: pilih image yang sebelumnya telah dibuat
    • Instance type: pilih tipe instance yang akan diluncurkan
    • Additional configuration - optional
      • Purchasing option: bisa pilih spot instance
      • IAM instance profile: untuk memberikan role atau peran
      • Monitoring: memantau secara detail EC2 instance
      • EBS-optimized instance: mengoptimasi instance dengan EBS
      • Advanced details
        • Kernel ID: kernel yang tersedia untuk digunakan instance
        • RAM disk ID: biasanya untuk membuat kernel bisa bekerja
        • Metadata accessible: mengatur akses ke instance
        • Metadata version: versi metadata yang dapat digunakan
        • Metadata response hop limit: nomor dari jaringan hops
        • User data: menjalankan script setelah instance terluncur
        • IP address type: cara memberikan alamat IP ke setiap instance

      • sumber: aws.amazon.com

    • Storage (volumes): menghubungkan instance dengan EBS setelah diluncurkan
    • Security groups: keamanan untuk instance
    • Key pair (login): kunci yang digunakan untuk masuk ke sistem instance
  26. Klik tombol Create launch configuration
  27. Pilih launch configuration yang baru saja dibuat kemudian pilih Actions dan klik tombol Create Auto Scaling group
  28. Pada halaman Choose launch template or configuration
    • Name: masukan namaa dari auto scaling
    • Launch configuration: pilih launch configuration yang telah dibuat sebelumnya

    • sumber: aws.amazon.com

  29. Klik tombol Next
  30. Pada halaman Choose instance launch options
    • VPC: pilih VPC dimana akan dibuat autoscaling
    • Availability Zones and subnets: pilih AZ dan di subnet mana instance akan diluncurkan
  31. Klik tombol Next
  32. Pada halaman Configure advanced options - optional
    • Load balancing - optional
      • No load balancer: jika tidak menggunakan load balancer
      • Attach to an existing load balancer: menggunakan load balancer yang sudah dibuat
      • Attach to a new load balancer: membuat load balancer baru
    • Health checks - optional: apa yang akan diperiksa kesehatannya dalam rentang waktu
    • Additional settings - optional
      • Monitoring: memantau melalui CloudWatch
      • Default instance warmup: pengaturan instance yang warmup
  33. Klik tombol Next
  34. Pada halaman Configure group size and scaling policies - optional
    • Group size
      • Desired capacity: ukuran rata-rata dari sebuah group instance
      • Minimum capacity: ukuran minimum dari sebuah group instance
      • Maximum capacity: ukuran maksimum dari sebuah group instance
    • Scaling policies - optional
      • Target tracking scaling policy: pengaturan untuk perubahan instance secara dinamis
        • Scaling policy name: nama dari kebijakan penskalaan
        • Metric type: tipe metrik yang akan digunakan untuk mengukur
        • Target value: ukuran yang menjadi acuan untuk penskalaan dari metrik
        • Instances need: kebutuhan instance
      • None: tanpa ada pengaturan ubah ukuran instance secara dinamis
    • Instance scale-in protection - optional
  35. Klik tombol Next
  36. Pada halaman Add notifications - optional: untuk menambahkan SNS
  37. Klik tombol Next
  38. Pada halaman Add tags - optional: untuk memudahkan filter
  39. Klik tombol Next
  40. Pada halaman Review perhatikan apakah seluruh konfigurasi sudah sesuai kebutuhan
  41. Jika sudah klik tombol Create Auto Scaling group
  42. Verifikasi load balancing
    • Pada panel sebelah kiri pilih Load Balancers
    • Pilih Load Balancers yang telah dibuat sebelumnya
    • Pada area Details copy DNS name dan paste di browser
    • Jika berhasil maka akan sesuai dengan isi dari instance yang sebelumnya akan diskalakan
  43. Pengujian auto scaling
    • Buka DNS dari load balancing tadi dan berikan beban traffic
    • Pada console ketik CloudWatch dan buka
    • Pilih All alarms, seharusnya akan muncul seluruh alarm yang ada dari pembuatan auto scaling
    • Jika belum ada maka buat terlebih dahulu
      • Kembali ke console dan ketik EC2 instance
      • Pada panel sebelah kiri pilih Auto Scaling Group
      • Pilih Auto Scaling Group yang telah dibuat
      • Kemudian pilih tab Automatic Scaling
      • Pilih Dynamic scaling policies yang berasosiasi, jika belum ada maka buat
      • Pilih tombol Action kemudian klik tombol Edit
      • Ubah target value, misalnya 50 itu artinya 50% dari tipe metrik, jika tipe metriknya CPU maka ketika CPU digunakan lebih dari 50% maka akan otomatis membuat instance baru
    • Kembali ke Instances maka jika beban CPU melebihi 50% akan ada instance baru
  44. Arsitektur berskala selesai dibuat!

Perlu diketahui bahwa elastic load balancing saat mendeteksi target yang tidak sehat akan melakukan stop rute terhadap target lalu melakukan rute ke target yang sehat, namun akan melanjutkan ke target setelah target tersebut sehat.




ref:
coach Joko
aws.amazon.com

Komentar