Sumber Daya Serverless di Cloud
Untuk membangun infrastruktur teknologi informasi diperlukan server, storage, network, hingga operator yang mengerjakannya. Salah satu infrastruktur teknologi informasi yang banyak menghabiskan biaya adalah server. Nah, sekarang di teknologi cloud ada istilah serverless yang bermakna layanan yang memungkinkan penggunaan server secara minimal, ingat minimal dan bukan tanpa server. Perusahaan cloud computing banyak melakukan pengembangan tentang serverless ini. Sebagai pembanding ada 2 perusahaan teknologi cloud di dunia, yaitu amazon dan yandex. Pemilihan kedua perusahaan adalah untuk melihat perbedaan antara kelompok barat dan kelompok timur.
Sudah menjadi hal umum bahwa Amazon adalah perusahaan yang cukup signifikan dalam mengembangkan diri pada bidang teknologi cloud computing. Amazon bermula dari marketplace tempat berjual beli buku, sedangkan Yandex bermula sebagai perusahaan mesin pencari. Yandex disebut sebagai Google-nya Rusia. Google sendiri juga memiliki teknologi cloud, namun Amazon dan Google sama-sama berasal dari Amerika, jadi tidak adil rasanya jika yang dibandingkan hanya dari perusahaan yang ada di Amerika atau kelompok barat. Yandex cukup untuk mewakili kelompok bagian timur selain Alibaba. Sayangnya Alibaba tidak menunjukkan secara langsung layanan serverless pada tab product-nya. Tencent ternyata memberikan tampilan khusus pada product serverless. Sekarang perhatikan layanan dari 3 perusahaan cloud computing di dunia:
- Amazon
- AWS Lambda
- Amazon API Gateway
- Amazon DynamoDB
- Amazon EventBridge
- Amazon Simple Notification Service (SNS)
- Amazon Simple Queue Service (SQS)
- Amazon Simple Storage Service (S3)
- AWS AppSync
- AWS Fargate
- AWS Step Function
- Yandex
- Cloud Functions
- API Gateway
- Data Streams
- Managed Service for YDB
- Object Storage
- Serverless Containers
- Message Queue
- IoT Core
- Tencent
- Serverless Cloud Function
- Serverless Application Center
- EventBridge
Dari 3 perusahaan cloud computing tersebut sangat tampak terlihat bahwa Amazon memiliki lebih banyak layanan serverless. Ini juga menunjukkan superiornya Amazon dalam teknologi cloud.
![]() |
sumber: https://pixabay.com/id/vectors/cloud-computing-koneksi-awan-data-3308169/ |
Layanan-layanan pendukung serverless di AWS diantaranya:
- Amazon CloudWatch
- Untuk mendapatkan jalan yang lebih efisien maka diperlukan insight dari sumber daya AWS. Amazon CloudWatch memiliki 3 komponen utama yaitu metric, alarm, dan event (event-based dan time-based). Contoh penggunaannya pada EC2 (if CPU utilization > 60% for 5 minutes), ELB (if number of simultaneous connections > 10 for 1 minute), dan RDS (if number of healthy hosts < 5 for 10 minutes).
- AWS Cloudtrail
- Pencatatan log karena adanya panggilan AWS application programming interface (API). Dengan AWS CloudTrail dapat diketahui siapa yang melakukan terminate sebuah instance, siapa yang mengubah konfigurasi security group, apakah aktivitas berasal dari rentang IP address yang tidak diketahui, dan apakah aktivitas yang di denied karena ada kekurangan permission. Langkah mengonfigurasi sebuah trail yaitu pertama siapkan bucket S3 untuk menyimpan file log, definisikan sebuah trail ke log event yang diinginkan, buat sebuah Amazon SNS untuk menerima notifikasi, lakukan konfigurasi pada Amazon CloudWatch log untuk menerima log dari CloudTrail, aktifkan enkripsi dan integritas untuk validasi file log, dan terakhir tambahkan tag agar mudah di query.
- AWS Service Integration with Athena
- Untuk menggunakan Amazon Athena perlu disiapkan endpoint untuk data yang akan diproses dari Amazon S3. Dengan Athena maka pekerjaan ETL yang kompleks tidak diperlukan lagi untuk keperluan analisis.
- AWS Organizations
- Beberapa akun AWS dapat dikonsolidasikan ke dalam sebuah organisasi dengan menggunakan AWS Organization. Dalam organization ada organizational unit yang berisi beberapa akun lagi di dalamnya, bisa dikatakan nested. Keuntungan dari menggunakan AWS Organizations adalah pengaturan tersentralisasi, pengendalian akses, otomatis membuat akun, dan konsolidasi billing. Langkah dalam membuatnya pertama buat organization di AWS Organizations, buat organization units, buat service control policies, dan uji coba policies tersebut.
- AWS Cost Management and Best Practices
- Prinsip biaya dalam penerapan cloud adalah bayar hanya apa yang dibutuhkan, ingat ketika itu dibutuhkan. Ada 4 alat yang bisa digunakan untuk mengatur biaya di AWS, yaitu AWS Billing Dashboard (monthly bill), AWS Cost Explorer (visualize dan forecast), AWS Budgets (set custom dan alert cost), dan Amazon CloudWatch (monitor dan alert threshold). Rekomendasi untuk manajemen biaya bisa didapatkan melalui AWS Trusted Advisor yang akan memberikan 5 indikator, yaitu cost optimizations, performance, security, fault tolerance, dan service limits.
- AWS Support Service
- Gabungan antara alat, teknologi, manusia, dan program digunakan untuk memberikan layanan pendukung. Secara proaktif AWS Support Service dibentuk untuk memberikan performa teroptimasi, biaya terendah, dan kecepatan. AWS Support Service ada 2, yaitu AWS Support dan AWS Support Plans. Sedangkan pengguna dibedakan menjadi 4, yaitu basic, developer (business hour email), business (24/7 email, chat, dan phone), dan enterprise (24/7 email, chat, phone, and technical account manager). Kecepatan responnya juga berbeda, developer maksimal 12 jam, business maksimal 1 jam, dan enterprise maksimal 15 menit.
- Automated and Repeatable Deployments
- Otomasi di sumber daya AWS bisa dilakukan melalui:
- User data : menulis script yang digunakan untuk meluncurkan instance, sayangnya dalam level enterprise akan lebih sulit untuk mengatur serti melakukan versi untuk infrastruktur
- Amazon machine images (AMI) : membuat images dasar akan menurunkan waktu deployment
- Configuration-deployment frameworks : teknologi seperti Chef, Puppet, dan Ansible memungkinkan untuk konfigurasi instance baru melalui templates
- AWS OpsWorks : konfigurasi untuk teknologi Chef dan Puppet
- AWS CloudFormation : bisa digunakan untuk deployment berulang
- AMI Building Strategy
- Ada beberapa hal yang perlu diperhatikan dalam membuat AMI, yaitu build times (waktu untuk membuat AMI), boot times (saat instance diluncurkan), dan shelf life (risiko celah keamanan). Dengan memperhatikan ketiga hal tersebut maka ada 3 pendekatan untuk membuat AMI, yaitu full AMI (diinstall secara penuh oleh AMI), partially configured AMIs (ada yang diinstall oleh AMI dan ada yang manual), dan OS-only AMI (hanya OS saja yang diinstall oleh AMI). Praktek terbaik untuk membuat AMI Microsoft Windows adalah menjalankan Sysprep di EC2 instance, jika Microsoft Windows lebih dari versi 2016 maka Sysprep dijalankan dengan EC2Launch sedangkan jika versi di bawah 2016 maka Sysprep dijalankan dengan EC2Config. Fase menjalankan Sysprep adalah:
- Generalize : menghapus informasi image-specific
- Specialize : plug dan play untuk memindai komputer kemudian install setiap driver yang terdeteksi
- Out-of-Box Experience (OOBE) : versi singkat dari windows setup
- AWS CloudFormation
- CloudFormation memungkinkan pembuatan model dan mempersiapkan infrastruktur sumber daya cloud sehingga mendukung hampir semua layanan AWS. Membuat, memperbarui, dan menghapus sekumpulan sumber daya dalam satu unit yang disebut stack. Jika ada perubahan maka itu disebut drift.
Di cloud infrastruktur dapat diringkas dalam bentuk kode biasanya disebut Infrastructure as a Code atau IaaC. Untuk membuat IaaC diperlukan JSON atau YAML. JavaScript Object Notation atau JSON memungkinkan pertukaran data yang kompleks dalam satu dokumen saja. JSON memiliki format berada di dalam braces {} dengan sepasang key dan value yang bisa berisi banyak pasang. Kombinasi dengan array atau list yang dilambangkan dengan brackets [] memberikan kemudahan untuk memperbanyak jumlah data. Perhatikan data JSON dibawah:
- {
- "daftar_nilai": [
- {
- "student_name": "Maria",
- "nilai": 90
- },
- {
- "student_name": "John",
- "nilai": 85
- },
- {
- "student_name": "Diego",
- "nilai": 87
- }
- ]
- }
YAML merupakan kependekan dari Yet Another Markup Language. Untuk orang awam mungkin membaca YAML lebih mudah daripada JSON, selain itu YAML juga bisa disisipkan comment. Perhatikan kode YAML:
- daftar_nilai:
- student_name: Maria,
- nilai: 90
JSON tetap menjadi rekomendasi karena API di website juga menggunakan JSON.
ref: