Infrastructure as a Code (IaC) With Terraform & AWS EC2

Ayi angio
4 min readOct 3, 2020
Source: linagora.com

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 😁😁😁

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
Policy Name (AWS)
  • Pilih Next Sampai di halaman seperti dibawah ini kemudian download .csvnya
Add User IAM AWS

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
List Region AWS
  • 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

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
Amazon Machine Image (AMI)
  • Instace_type, seperti namanya ini untuk mendefinisikan spek dari server kita, berikut ini contoh dari spesifikasi yang disediakan di aws
Instance Type
  • 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
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

terraform apply

jika sudah muncul seperti diatas instance kalian sudah berhasil dibuat melalui terraform, dan bisa kalian di dashboard dari aws seperti berikut.

EC2 Dashboard
  • jika kalian ingin Destroy Instance, bisa dengan command berikut
terrraform destroy

jika dilihat di EC2 dashboard akan seperti ini :

EC2 Dashboard

Sekian dari saya semoga bermanfaat buat teman-teman serta lebih dan kurangnnya saya mohon maaf.

Wasallam teman teman.

--

--