Halo teman-teman apa kabar ? semoga dalam keadaan baik baik saja ya, by the way kali ini saya akan bahas salah satu stack dalam dunia devops yaitu IAC atau kepanjangannya adalah Infrastructure As a Code.
IAC sendiri adalah sebuah tools untuk mendefinisikan dan membuat infrastruktur server kita dengan menggunakan barisan-barisan kode, kurang lebih seperti itu pengertian IAC yang saya pahami.
IAC sendiri sekarang bisa diimplementasikan pada cloud dan on-premise.
Prerequisite
Sebelum kita mulai baik teman-teman mempersiapkan alat dan bahan berikut hehe 😁😁😁
- Laptop Dong hehehe
- Terraform Version 0.13.xx
- Account Root AWS atau Account yang setara dengan Root
- aws-cli Version 2
Create IAM user
Pertama kita akan membuat IAM user yang akan menjadi otorisasi buat terraform.
- Login ke AWS sebagai root
- Pilih Service IAM
- Pilih User dan add user
- Isi Nama user nya
- Untuk Access type Checklist Programmatic access
- Pilih Create Group dan beri nama untuk groupnya
- Pilih 7 Policy seperti gambar dibawah ini
- Pilih Next Sampai di halaman seperti dibawah ini kemudian download .csvnya
NOTED : Akun IAM kalian sudah buta ini tidak bisa digunakan login ke console management AWS karena yang kalian buat hanya Programmatic access.
Config AWS-CLI
Tahap ini kita akan menghubungkan antara laptop kita dengan aws menggunkan aws-cli
- Bukan File .csv yang kalian downlaod pada tahap sebelumnya
- Jalankan perintah
aws configure
- Masukan Access Key ID kemudian Secret Access Key yang ada di file .csv
- Masukan Region yang kalian inginkan, kode regionya ada sebelah kanan
- Untuk Output formatnya pilih json
Add Environment Variable
Edit environment variable sesuai dengan OS kalian, kemudian masukan value berikut, disini saya mencotohkan untuk OS yang berbasis UNIX
export AWS_ACCESS_KEY_ID= "KEY"export AWS_SECRET_ACCESS_KEY="KEY"
Ganti value “KEY” dengan sesuai dengan value IAM user teman-teman.
Initialization
Buat file main.tf di code editor kalian kemudian copy paste code berikut
provider "aws" { region = "ap-southeast-1"}
setelah itu ketikan command berikut
terraform init
ini akan menginisialisasi project IAC kalian sesuai dengan provider yang kalian define di atas
Define EC2
Setelah kalian sudah inisialisasi, untuk membuat sebuah instance EC2 di aws kalian bisa gunakan code berikut, copas aja di main.tf
Sebelum ketahap selanjutnya saya akan coba jelaskan.
Format code dari terraform sendiri berbentuk seperti json.
resource itu mendefinisikan service apa yang akan kalian buat dalam kasus ini kita akan membuat ec2 yang kita berikan nama dengan hello_terraform
Untuk value didalamnya :
- AMI kita bisa berikan value ami untuk image yang akan kita gunakan pada server kita, seperti pada gambar dibawah ini
- Instace_type, seperti namanya ini untuk mendefinisikan spek dari server kita, berikut ini contoh dari spesifikasi yang disediakan di aws
- Kemudia adalah tags, sampai saat ini saya menggunakan tag untuk mendefiniskan nama dari instance yang akan terlihat dari dashboard instance AWS
Plan, Apply And Destroy
Jika sudah melakukan code untuk server, kita akan mengecek apakah codingan kita benar atau ada errornya.
- Planning dengan command berikut
terraform plan
jika sukses maka akan muncul seperti ini.
- Apply code kalian dengan command berikut :
terraform apply
nanti akan dimintakan konfirmasi kalian masukan saja yes
jika sudah muncul seperti diatas instance kalian sudah berhasil dibuat melalui terraform, dan bisa kalian di dashboard dari aws seperti berikut.
- jika kalian ingin Destroy Instance, bisa dengan command berikut
terrraform destroy
jika dilihat di EC2 dashboard akan seperti ini :
Sekian dari saya semoga bermanfaat buat teman-teman serta lebih dan kurangnnya saya mohon maaf.
Wasallam teman teman.