Penulis: Adi Pramadianto Putra (NIM : 231011401040)
Dosen Pengampu : Firman Pratama (NUPTK 6362770671130313)
Perlu diingat disini saya sudah mempunyai Amazon Elastic Compute Cloud (EC2) atau server cloud, yang didalamnya sudah terpasang server web apache dan mariadb pada EC2 serta docker untuk membuat image docker nantinya dan RDS (Relational Database Service) diAWS, disini saya juga menggunakan Putty untuk SSH ke EC2.
Setelah sudah siap hal hal diatas, kita akan membuild wordpressnya dengan arsitektur PaaS.
Langkah 1: Buat Repositori ECR: (Lakukan di AWS Console > ECR > Create repository)
Disini saya membuat dengan nama (wordpress-app-repo), jika sudah berhasil membuatnya akan terlihat seperti gambar dibawah:

Lalu kita simpan push command yang akan kita gunakan untuk melakukan tag dan push pada image docker(wordpress).
Langkah 2: Buat & Lampirkan IAM Role untuk Akses ECR
Untuk memungkinkan instans EC2 Anda berkomunikasi secara aman dengan Amazon Elastic Container Registry (ECR), Anda perlu membuat peran IAM yang baru. Mulailah dengan menavigasi ke Konsol AWS Anda, lalu ke layanan IAM, pilih Peran, dan klik Buat peran. Sebagai entitas terpercaya, pilih EC2. Selanjutnya, lampirkan izin yang diperlukan dengan mencari dan memilih AmazonEC2ContainerRegistryPowerUser. Terakhir, berikan nama peran Anda yang deskriptif, misalnya ECR-Push-Role, lalu buatlah. Setelah peran selesai dibuat, Anda bisa melampirkannya ke instans EC2 Anda: buka EC2, pilih Instans, pilih instans Anda (misalnya, My-Cloud-Server), klik Tindakan, arahkan kursor ke Keamanan, dan pilih Modifikasi peran IAM. Dari menu tarik-turun, pilih ECR-Push-Role yang baru Anda buat, lalu klik Perbarui untuk menerapkan perubahan.

Langkah 3: Persiapan & Push Image Docker (via SSH PuTTY di EC2 AWS)
Autentikasi Docker ke ECR: aws ecr get-login-password --region ap-southeast-2 | docker login --username AWS --password-stdin [ID_AKUN_ANDA].dkr.ecr.ap-southeast-2.amazonaws.com
Silahkan disesuaikan dan diketikan pada Terminal PuTTY.
docker pull wordpress:latest

Perintah docker pull wordpress:latest
digunakan untuk mengunduh citra (image) Docker terbaru dari WordPress dari Docker Hub ke EC2 Anda.
docker tag wordpress:latest [URI_ECR_WORDPRESS_REPO]:latest

Lalu jika sudah berhasil melakukan perintah pull, kita akan memberikan tag pada image yang sudah kita pull tadi. Sesuaikan bagian URI dengan yang sudah kita punya dari ECR.
docker push [URI_ECR_WORDPRESS_REPO]:latest
Perintah docker push [URI_ECR_WORDPRESS_REPO]:latest
digunakan untuk mengunggah (push) citra Docker Anda dari EC2 ke repositori Amazon ECR (Elastic Container Registry) yang telah Anda tentukan.

Langkah 4: Meluncurkan Layanan AWS App Runner (via AWS Console)
- AWS Console > App Runner > “Create service”.
- Service name:
wordpress-app
. Port:80
. - Source: Container image > Amazon ECR > pilih
wordpress-app-repo:latest
. - Deployment trigger: Automatic. ECR access role: Create new service role (atau pilih yang sudah ada).
- Environment variables:
WORDPRESS_DB_HOST
: [Endpoint RDS Anda]WORDPRESS_DB_USER
:admin
WORDPRESS_DB_PASSWORD
: [Master Password RDS Anda]WORDPRESS_DB_NAME
:my_wordpress_db
- Create & deploy.
Pada bagian Environment Variables isikan sesuai dengan konfigurasi RDS yang kita miliki.

Hasil: Layanan App Runner akan Running
dan memiliki URL default masing-masing.
Langkah 5: Konfigurasi Domain Kustom & SSL (HTTPS) di Cloudflare
Saya akan menggunakan Cloudflare sebagai DNS Manager dan untuk SSL/CDN.
Nantinya sertifikasi web kita akan otomatis diberikan oleh AWS AppRunner agar web kita secure dan menjadi HTTPS tanpa perlu melakukan SSL manual.
Tautkan domain di App Runner: App Runner > Layanan wordpress-dito-app > Custom domains > Link domain > Masukkan Domain/SubDomain anda. Lalu AWS akan memberikan 3 CNAME Record.

Tambahkan di Cloudflare:
CNAME Validasi 1: Name (_longstring.wp), Content (_longvalue.acm-validations.aws.), Proxy: DNS only.
CNAME Validasi 2: Name (_anotherlongstring.wp), Content (_anotherlongvalue.acm-validations.aws.), Proxy: DNS only.
CNAME Target: Name (wp), Content ([URL_DEFAULT_WORDPRESS_APP_RUNNER]), Proxy: Proxied.

Jika sudah, tunggu AWS memverifikasi CNAME yang sudah anda add pada Cloudflare dan sekarang Domain/Subdomain anda sudah bisa diakses dan akan memberikan output WordPress yang sudah anda build tadi.

Selamat, anda sudah berhasil melakukan Build Website WordPress dengan metode PaaS dari penyedia layanan AWS, anda bisa menyesuaikan penyedia Layanan CLoud sesuai layanan yang ingin anda gunakan. Tidak lupa jika menggunakan AWS maka untuk SSLnya akan langsung otomatis diberikan oleh penyedia layanan AWS AppRunner.