Persiapan Yang Dibutuhkan

Yang pertama kali dibutuhkan tentu saja adalah Akun AWS. Anda dapat melakukan registrasi akun AWS dengan mengklik ini atau tonton video tutorial ini.

Selanjutnya kita perlu menginstall beberapa perangkat lunak. Perangkat lunak yang saya gunakan dalam tutorial ini adalah sebagai berikut.

  • AWS CLI 1.16
    Ini untuk mengatur AWS dari komputer kita melalui command line. Jangan lupa untuk melakukan konfigurasi kredensial dengan mengambil IAM access key dan mengeksekusi perintah aws configure untuk menginput access key tersebut.
  • PHP 7.3
    Ini untuk menjalankan PHP di komputer kita.
  • Composer 1.19.1
    Ini untuk melakukan instalasi library dan dependensi aplikasi.
  • Node 10.16
    Ini untuk menjalankan kode Javascript di bagian front-end aplikasi kita sekaligus menjalankan AWS CDK.
  • Node Package Manager 6.9.0
    Ini untuk melakukan instalasi library dan dependensi seperti skrip front-end dan juga CDK.
  • AWS CDK 1.19
    Ini untuk menjalankan kode infrastruktur AWS dengan AWS CDK.
  • Docker 19.03.5
    Ini untuk menjalankan dan mengelola Docker container.
  • Docker Compose 1.25.1 (Cara instalasi)
    Ini untuk mengorkestrasi container kita di lokal.

Lama waktu untuk melakukan instalasi untuk semua aplikasi di atas dapat memakan waktu kira-kira setengah jam, tergantung koneksi internet.

Melakukan Instalasi Yii2

Di tutorial ini saya akan menggunakan templat Yii2 yang sudah ada yakni yii2-app-basic (link github). Cara melakukan instalasi templat ini adalah sebagai berikut.

composer create-project --prefer-dist yiisoft/yii2-app-basic myapp

Kita akan memiliki sebuah proyek baru di direktori myapp yang berisi kode aplikasi yang bersih.

Untuk mencoba mendeploy di lokal, eksekusi perintah di bawah ini di dalam direktori myapp. Ini akan memakan sedikit waktu untuk mengunduh container image bawaan Yii2 untuk menjalankan aplikasi.

docker-compose up

Setelah cluster Docker di lokal kita jalan, harusnya aplikasi ini bisa dibuka di http://127.0.0.1:8000. Tampilannya akan seperti di bawah.

Menjalankan CDK

Menambahkan Berkas Yang Dibutuhkan

Saya telah membuat beberapa berkas yang dibutuhkan agar aplikasi yang sudah kita instalasi bisa berjalan pada Amazon ECS.

Untuk mengaplikasikan berkas-berkas tersebut pada direktory proyek kita, eksekusi perintah berikut.

curl -L -O http://bit.ly/modern-yii2-app_part-1_patch
patch -p1 < modern-yii2-app_part-1_patch

Patch ini akan menambahkan beberapa berkas yang kita butuhkan.

File yang ditambahkan.

Lalu untuk melakukan instalasi library Javascript yang kita butuhkan, eksekusi.

npm install

Untuk menguji apakah CDK sudah bisa dijalankan, eksekusi.

cdk ls

Perintah di atas selanjutnya akan menampilkan nama WebStack. Ini menandakan bahwa hingga saat ini, langkah yang kita lakukan sudah benar.

Sebelum melakukan deployment, kita harus melakukan inisialisasi aset CDK yang diperlukan yakni S3 bucket untuk menyimpan deployment.

cdk bootstrap

Terminal akan menampilkan seperti di bawah.

Melakukan Deployment

Sekarang kita siap untuk melakukan deployment. Eksekusi perintah di bawah untuk memulai.

cdk deploy

Perintah di atas akan menunjukkan perubahan yang akan dilakukan seperti perubahan IAM dan Security Group. Terminal akan menanyakan apakah Anda setuju terhadap perubahan ini atau tidak. Perubahan konfigurasi keamanan ini hanya akan berlaku pada resource yang akan dibuat yakni ECR, ECS, dan Load Balancer. ECS akan dapat mengakses container image yang disimpan di ECR. Load Balancer akan memberikan akses port HTTP ke publik untuk mengakses aplikasi. Ketik y untuk melanjutkan.

Kita sekarang berada di proses deployment. Proses ini akan menggunakan waktu yang cukup lama, sekitar 10 hingga 15 menit karena melakukan 1) membangun docker image dan mengunggahnya ke S3 bucket dan ECR 2) Melakukan provisioning dan konfigurasi klaster ECS.

Proses membangun dan mengunggah container image akan memakan waktu agak lama tergantung koneksi internet.

Ketika selesai, skrip CDK yang kita gunakan akan menampilkan URL ke Load Balancer, seperti di bawah.

Dengan membuka URL yang dicantukan di bagian akhir proses CDK, kita dapat membuka aplikasi Yii2 yang telah kita deploy.

Jika kita membuka konsol Amazon ECS, kita dapat melihat klaster ECS yang sudah kita buat.

Kita bisa melihat klaster ECS kita di konsol ECS.

Kalau kita melihat detil dari Stack tersebut kita melihat service yang dibuat beserta tasknya. Di gambar bawah kita melihat ada 1 service yang menggunakan 1 Fargate untuk menjalankan task.

Deploy Ulang

Kita dapat melakukan deployment menggunakan cdk deploy kembali jika ada berkas yang kita rubah, misalnya berkas HTML. Karena resource seperti ECS sudah dibuat sebelumnya, proses deployment untuk perubahan kecil tidak akan terlalu lama kecuali menambahkan resource baru.

Menghapus Resource

Jika sudah tidak digunakan lagi, untuk menghindari biaya di akun Anda, kita bisa menghapus semua resource yang digunakan dengan mengeksekusi.

cdk destroy

Di halaman berikut saya akan menjelaskan bagaimana proses di balik layar. Klik ini untuk melanjutkan.

Leave a comment

Leave a Reply

%d bloggers like this: