GiMail GiMail Simple email delivery
Masuk Mulai gratis

Dokumentasi GiMail

Panduan Cost Explorer untuk AWS Costs GiMail

Pelajari cara menyiapkan AWS Cost Explorer, membuat credential IAM billing, dan membaca snapshot biaya AWS harian di GiMail.

Panduan Cost Explorer untuk AWS Costs GiMail

Fitur AWS Costs di GiMail menyimpan snapshot biaya AWS harian dari AWS Cost Explorer. Data ini membantu client memantau total biaya AWS yang keluar, bukan hanya biaya SES.

GiMail membaca data biaya lewat AWS Cost Explorer API menggunakan metric UnblendedCost, granularity DAILY, dan scope all_services. Snapshot biaya dan kurs USD ke IDR otomatis diambil satu kali per hari pada jam 05:00.

1. Prasyarat

  • Akun AWS client sudah memiliki akses ke Billing and Cost Management.
  • Cost Explorer sudah aktif di akun AWS tersebut.
  • User IAM billing memiliki permission minimal untuk membaca biaya.
  • Credential yang dipakai adalah credential IAM API, bukan credential SMTP SES.

2. Buat IAM Policy Minimal

Buka AWS Console, masuk ke IAM, lalu buat policy baru. Gunakan permission minimal berikut agar GiMail hanya bisa membaca data biaya lewat Cost Explorer.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ce:GetCostAndUsage"
      ],
      "Resource": "*"
    }
  ]
}

Permission ce:GetCostAndUsage dipakai untuk mengambil metrik cost dan usage dari AWS Cost Explorer. GiMail tidak membutuhkan permission untuk membuat, mengubah, atau menghapus resource AWS.

3. Buat IAM User Billing

  1. Buka AWS Console.
  2. Masuk ke IAM lalu pilih Users.
  3. Buat user baru, misalnya gimail-cost-reader.
  4. Attach policy minimal yang sudah dibuat pada langkah sebelumnya.
  5. Buka tab Security credentials user tersebut.
  6. Buat Access key untuk akses programmatic.
  7. Simpan Access key ID dan Secret access key dengan aman.

AWS hanya menampilkan secret access key saat key dibuat. Jika secret key hilang, buat access key baru dan nonaktifkan key lama.

4. Isi Credential di GiMail

Masuk ke dashboard GiMail, lalu buka Pengaturan SES. Pada bagian Credential Cost Explorer, isi field berikut:

  • Access key ID billing: isi dengan access key IAM billing.
  • Secret access key billing: isi dengan secret key IAM billing.

Bagian ini terpisah dari Credential SMTP SES. Credential SMTP tetap dipakai untuk pengiriman email, sedangkan credential Cost Explorer hanya dipakai untuk membaca biaya AWS.

5. Jadwal Pengambilan Biaya

GiMail menjalankan command berikut setiap hari jam 05:00 waktu aplikasi.

php artisan gimail:fetch-currency-rates
php artisan gimail:fetch-aws-costs

Command biaya mengambil biaya tanggal kemarin, lalu menyimpannya ke tabel aws_cost_snapshots. Command kurs mengambil nilai USD ke IDR hari ini, lalu menyimpannya ke tabel currency_rates. Sistem menjaga agar satu client hanya memiliki satu snapshot untuk satu tanggal, dan satu kurs hanya tersimpan satu kali per tanggal.

6. Melihat Rincian Biaya

Buka menu AWS Costs di sidebar admin atau akses URL berikut:

/admin/aws-costs

Halaman ini menampilkan:

  • Total biaya AWS bulan ini.
  • Total biaya AWS bulan ini dalam IDR.
  • Total biaya AWS bulan lalu.
  • Kurs rupiah hari ini.
  • Tanggal snapshot terakhir.
  • Tabel biaya harian dari Cost Explorer dalam USD dan IDR.
  • Status credential Cost Explorer jika belum diisi.

7. Catatan Biaya API

AWS Cost Explorer API dapat dikenakan biaya per request. Karena itu GiMail tidak memanggil API setiap halaman dibuka. Data biaya diambil satu kali sehari, disimpan di database, lalu halaman AWS Costs membaca data dari database lokal.

8. Troubleshooting

AccessDeniedException

Pastikan IAM user memiliki permission ce:GetCostAndUsage dan akun AWS memiliki akses Billing yang sesuai.

InvalidSignatureException

Pastikan credential yang diisi adalah AWS IAM access key dan secret access key, bukan SMTP username/password SES.

Data masih kosong

Pastikan credential Cost Explorer sudah tersimpan, scheduler Laravel berjalan, dan command gimail:fetch-aws-costs berhasil dijalankan. Cost Explorer juga dapat membutuhkan waktu sebelum data biaya terbaru tersedia.

9. Referensi AWS