Di cloud, kami membayar penyimpanan, komputasi, dan layanan lain saat kami menggunakannya. Tidak perlu menyiapkan server Anda sendiri. Namun, kerugiannya adalah Anda dapat secara tidak sengaja menghabiskan lebih banyak uang daripada yang ada di dompet Anda. Ini sangat sulit terutama dengan solusi tanpa server yang secara otomatis menyesuaikan dengan lalu lintas masuk.
Tanpa sengaja meninggalkan VM yang mahal tanpa pengawasan atau fungsi lambda Anda akan lepas kendali - dan ini dapat menyebabkan skor yang tidak terduga.
Dalam artikel ini, kita akan melihat cara kerja penagihan dan cara mencegah faktur yang tidak terduga agar tidak muncul.
Bisnis kecil, tagihan kecil
Artikel ini membahas tentang proyek pribadi dan perusahaan kecil dengan akun yang relatif kecil. Beberapa perusahaan besar mungkin tidak memperhatikan perbedaan $ 3.000.
Tidak ada solusi yang tepat
Sayangnya, tidak ada solusi yang tepat di sini. Menurut Corey Quinn dalam podcastnya , sistem penagihan AWS terlambat beberapa jam, dan dalam beberapa kasus terlambat hingga 24 atau 48 jam. Akibatnya, peringatan kelebihan kuota dapat dipicu beberapa jam atau hari setelah terjadi kelebihan kuota yang signifikan. Peringatan masih merupakan alat yang hebat untuk mencegah biaya yang tidak perlu, tetapi hanya jika Anda lupa sesuatu selama beberapa hari, misalnya, tidak menghentikan instans EC2 yang mahal setelah lokakarya pembelajaran mesin.
Terserah Anda berapa banyak waktu yang dihabiskan untuk melindungi dari pengeluaran tak terduga, tetapi saya sangat menyarankan untuk meluangkan dua menit menyiapkan peringatan anggaran !
Mekanisme pertahanan
Ada banyak mekanisme untuk melindungi dari tagihan tak terduga. Pertimbangkan keamanan, peringatan, tindakan korektif, dan meningkatkan visibilitas.
1. Lindungi akun Anda dengan otentikasi multi-faktor
Ini adalah hal pertama yang harus Anda siapkan saat membuat akun AWS baru.
Berikut panduan resmi dari AWS tentang menyiapkan Multi-Factor Authentication (MFA), yang memberikan penghalang tambahan terhadap penyerang.
2. Pemberitahuan anggaran
Ini adalah hal kedua yang harus dikonfigurasi saat membuat akun AWS baru.
Peringatan Anggaran adalah cara paling populer untuk melacak pengeluaran Anda. Misalnya, Anda menerima email pemberitahuan bahwa batasnya telah terlampaui. Anda selanjutnya dapat menyesuaikan pemberitahuan Anda menggunakan Amazon SNS atau AWS Chatbot .
Berikut adalah video singkat (52 detik) tentang cara membuat peringatan anggaran pertama Anda. Ryan Lewis membuat video yang lebih panjang dengan lebih banyak detail, detail peringatan anggaran, dan banyak cara untuk menyesuaikannya.
Jika Anda sudah menggunakan CDK, paket aws-budget-notifier adalah yang terbaik....
Berapa banyak untuk memulai?
Mulailah dengan jumlah yang sedikit lebih tinggi dari pengeluaran Anda saat ini dan yang Anda rasa nyaman. Misalnya, $ 10. Jika Anda sudah memiliki beban kerja yang telah berjalan berbulan-bulan, ambil rata-ratanya dan tambahkan 50%.
Saya juga menyarankan menyiapkan beberapa lansiran penagihan dengan ambang berbeda :
- Peringatan praktis: jumlah yang bersedia Anda tanggung, tetapi kemudian pelajari tagihannya.
- Peringatan berbahaya: Anda tidak lagi merasa nyaman dan ingin segera menutup layanan. Jika jumlah nyamannya adalah $ 10, maka ini bisa menjadi $ 100.
- Peringatan kritis: dengan jumlah ini, sudah ada keinginan untuk menjatuhkan bom nuklir di akun Anda. Jika jumlah nyamannya adalah $ 10, maka ini bisa menjadi $ 500. Anda dapat melampirkan anggaran khusus atau peringatan pager ke peringatan ini untuk secara otomatis menghentikan instans EC2 Anda atau membangunkan Anda.
Selain ambang yang telah ditentukan sebelumnya, Anda juga dapat mencoba AWS Service Cost Anomaly Detection .
Bom Nuklir Darurat
Karena Anda dapat mengirim notifikasi ke SNS, Anda dapat menjalankan fungsi lambda yang memulai aws-nuke , menghancurkan semua infrastruktur di akun Anda. Jangan pernah menggunakan ini di akun produksi. Lihat repositori GitHub untuk informasi lebih lanjut .
3. Tindakan anggaran
AWS baru-baru ini memperkenalkan Tindakan Anggaran. Ini adalah ekstensi untuk Peringatan Anggaran, di mana tindakan tertentu dipicu saat batas anggaran terlampaui. Selain mengirim pemberitahuan email, Anda sekarang dapat menerapkan kebijakan IAM kustom seperti "Mencegah peluncuran instans EC2" atau membiarkan AWS menutup instans EC2 dan RDS, seperti yang ditunjukkan di bawah ini.
4. Aplikasi seluler
Konsol Seluler AWS memberi Anda kemampuan untuk memeriksa semua pengeluaran Anda dalam 3-5 klik.
Berikut dua layar dari aplikasi seluler:
Untuk menggunakan aplikasi, Anda harus menyiapkan pengguna khusus yang hanya mendapatkan izin yang diperlukan aplikasi untuk menampilkan pengeluaran Anda.
Berikut adalah kebijakan IAM yang memberi aplikasi akses baca serta pemberitahuan cloudwatch.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ce:DescribeCostCategoryDefinition", "ce:GetRightsizingRecommendation", "ce:GetCostAndUsage", "ce:GetSavingsPlansUtilization", "ce:GetReservationPurchaseRecommendation", "ce:ListCostCategoryDefinitions", "ce:GetCostForecast", "ce:GetReservationUtilization", "ce:GetSavingsPlansPurchaseRecommendation", "ce:GetDimensionValues", "ce:GetSavingsPlansUtilizationDetails", "ce:GetCostAndUsageWithResources", "ce:GetReservationCoverage", "ce:GetSavingsPlansCoverage", "ce:GetTags", "ce:GetUsageForecast", "health:DescribeEventAggregates", "cloudwatch:DescribeAlarms", "aws-portal:ViewAccount", "aws-portal:ViewUsage", "aws-portal:ViewBilling" ], "Resource": "*" } ] }
Izin dibagi menjadi tiga kelompok:
- CloudWatch Cost Explorer (semua yang dimulai dengan
ce:
). Informasi rinci tentang biaya saat ini dan proyeksi.
- CloudWatch (
cloudwatch:DescribeAlarms
). , .
- (,
aws-portal:
health:
). .
5.
Jika Anda tidak sengaja mengunggah kunci akses ke repositori publik , penyerang dapat meluncurkan instans EC2 yang mahal di akun Anda dan menggunakannya, misalnya, untuk menambang bitcoin. Ada laporan kasus di mana contoh kecil bersembunyi di daerah yang kurang dimanfaatkan sehingga pemiliknya tidak memperhatikannya di detail penagihan.
Anda dapat menggunakan AWS Secrets Manager untuk menghapus kata sandi atau rahasia lain dari kode Anda .
Ikuti panduan AWS ini untuk membuat rahasia pertama Anda . Kemudian ganti rahasia dari basis kode dengan memintanya menggunakan salah satu klien AWS resmi ( boto3 untuk Python ).
import boto3
client = boto3.client('secretsmanager')
response = client.get_secret_value(SecretId='replace-me')
secret = response['SecretString']
Perhatikan bahwa setiap rahasia berharga $ 0,40 per bulan, ditambah $ 0,05 untuk 10.000 panggilan API.
Layanan dukungan
Jika Anda menerima faktur yang tidak terduga, hentikan aplikasi apa pun yang menyebabkan situasi tersebut, ubah kunci akses jika perlu, dan hubungi AWS Support. Berikut adalah video 20 detik di mana untuk mengklik.
Petunjuk langkah demi langkah untuk mengirimkan tiket dukungan:
- Di sudut kanan atas, klik tombol Dukungan dan pilih Pusat Dukungan
- Tekan tombol Buat casing berwarna oranye
- Pilih akun dan penagihan
- Pilih "Penagihan" sebagai jenis dan "Masalah dengan pembayaran" sebagai kategori
- Isi semua detail dan kirim
Meskipun beberapa telah diganti untuk tagihan tak terduga mereka, jangan terlalu mengandalkannya.
Kesimpulan
Hal pertama yang harus dilakukan adalah mengatur peringatan MFA dan anggaran . Anda kemudian dapat menjelajahi operasi yang lebih kompleks, seperti tindakan penganggaran, untuk membekukan akun Anda jika pengeluaran meningkat.
Untuk mencegah rahasia dan kunci akses Anda berakhir di repositori publik, simpan ke AWS Secrets Manager .