Frame 19229

Cara Membangun HRIS Modern di AWS Elastic Beanstalk: Panduan & Studi Kasus Lengkap

Posted by taufik

November 16, 2025

foto artikel

 

Di era transformasi digital, perusahaan membutuhkan Human Resource Information System (HRIS) yang andal untuk mengelola data karyawan, presensi, pengumuman, dan laporan. Namun tidak semua bisnis punya tim IT besar atau infrastruktur server sendiri.  

AWS Elastic Beanstalk adalah solusi PaaS yang memungkinkan developer fokus pada logika aplikasi, sementara AWS mengelola provisioning, load balancing, auto-scaling, dan monitoring. 

Artikel ini menyajikan studi kasus implementasi HRIS untuk perusahaan teknologi. Kita akan membahas dari development lokal sampai deployment production-ready di Elastic Beanstalk, lengkap dengan konfigurasi high availability, networking, instance profile, dan testing. 

 

Ringkasan Studi Kasus: Kebutuhan & Tantangan

Perusahaan ini merupakan perusahaan teknologi yang memiliki 200 karyawan yang ingin membangun sistem HRIS internal, mencakup fitur: 

  • Employee Attendance System (presensi digital real-time) 
  • HR Announcements (portal pengumuman) 
  • Employee Dashboard (monitoring & statistik) 
  • Real-time Reporting (laporan kehadiran & analytics) 

 

Tantangan yang Dihadapi 

  • Tim IT terbatas (2 developer) 
  • Tidak ada server dedicated 
  • Budget terbatas untuk hardware & maintenance 
  • Butuh skalabilitas saat peak usage (awal bulan, performance review) 
  • Requirement high availability dan security

 

Solusi: Deploy aplikasi Flask sederhana sebagai prototype HRIS menggunakan AWS Elastic Beanstalk dengan konfigurasi High Availability, integrasi ke layanan AWS (RDS/S3/CloudWatch) nanti saat production. 

 

Sekilas: Apa itu AWS Elastic Beanstalk?

AWS Elastic Beanstalk adalah layanan PaaS yang memudahkan deploy dan scale aplikasi web. Developer cukup upload kode; Elastic Beanstalk yang mengurus instance EC2, load balancer, auto-scaling, health monitoring, dan integrasi ke layanan AWS lainnya. 

 

Mengapa AWS Elastic Beanstalk Jadi Pilihan?

Perusahaan digital tersebut memilih AWS Elastic Beanstalk karena alasan berikut: 

  • Kemudahan Deployment: cukup upload aplikasi, AWS mengurus infrastruktur 
  • Manajemen Otomatis: patching OS, monitoring, scaling dilakukan otomatis 
  • Cost-Effective: model pay-as-you-use, tanpa biaya tambahan untuk Beanstalk 
  • Skalabilitas Otomatis: mampu menangani lonjakan trafik HR di periode sibuk 
  • Security & Compliance: fitur keamanan bawaan sesuai standar AWS 
  • Integrasi Mudah: dapat dihubungkan dengan RDS, S3, CloudWatch, dan layanan AWS lain

 

Arsitektur Solusi HRIS

1

Diagram ini menggambarkan bagaimana komponen HRIS terhubung: aplikasi Flask > Elastic Beanstalk > Load Balancer > Auto Scaling Group > end user. 

 

Langkah Implementasi HRIS di AWS Elastic Beanstalk

Persiapan Aplikasi (Development) 

Struktur proyek: 

Sederhana, cukup untuk prototype HRIS: 

2

 

Kode Aplikasi Utama (application.py) 

Aplikasi dibangun menggunakan Flask, dengan data dummy sederhana untuk pengumuman dan absensi. Kode lengkapnya mencakup fitur dashboard, presensi digital, dan health check system. 

5

4

3

Dependencies 

Tambahkan dependencies berikut dalam file requirements.txt: 

6

 

Deployment ke AWS Elastic Beanstalk: Panduan Langkah-demi-Langkah

Langkah 1 — Persiapan AWS Account 

Sebelum mulai, pastikan: 

  • Akun AWS aktif dengan billing setup. 
  • IAM User punya permission minimal AWSElasticBeanstalkFullAccess, EC2FullAccess, S3FullAccess.
  • Pilih region yang diinginkan (contoh di artikel ini menggunakan us-east-1 / N. Virginia). 

7

 

Langkah 2 — Create Elastic Beanstalk Application 

Login ke AWS Console > cari Elastic Beanstalk > klik Create Application. 

Isi nama aplikasi; kita sebut hris-system. Beri tag untuk memudahkan management dan billing: 

  • Project: HRIS 
  • Environment: Production 
  • Department: HR 

8

 

Langkah 3 — Platform Settings (Create Environment) 

Setelah membuat Application, buat Environment baru: 

Pilih Create Environment pada aplikasi yang sudah dibuat. 

9

Poin penting yang harus di-set: 

  • Environment tier: pilih Web server environment (karena aplikasi menerima HTTP/HTTPS dari user). 
  • Environment information: isi nama domain unik — AWS akan cek ketersediaan domain. 

10

Platform yang digunakan pada artikel ini: 

  • Platform: Python 
  • Platform branch: Python 3.9 running on 64bit Amazon Linux 2023 
  • Platform version: (recommended — latest) 

11

 

Langkah 4 — Upload Application Code 

Upload paket kode aplikasi (hris-system.zip) yang berisi application.py, requirements.txt, dan folder templates/. 

12

 

Konfigurasi High Availability (HA) 

HA Configuration 

Agar memenuhi syarat skalabilitas: 

Pilih preset High Availability. 

13

 

Langkah 5 Service Access 

Untuk service role: create dan gunakan new service role (buat role baru) 

14

Tambahkan permission untuk role terkait: 

  • AWSElasticBeanstalkEnhancedHealth 
  • AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy 
  • Klik Next. 

15

Kemudian klik Create role bila diminta. 

16

 

EC2 Instance Profile (buat role baru) 

17

Pilih AWS Service, Use Case → EC2, klik Next. 

18

Tambahkan permission berikut pada role: 

  • AWSElasticBeanstalkMulticontainerDocker 
  • AWSElasticBeanstalkWebTier 
  • AWSElasticBeanstalkWorkerTier 

Klik Create role. 

19

Setelah role dibuat, isi EC2 Instance Profile dengan role tersebut. Untuk EC2 key pair (opsional) bisa dikosongkan jika tidak memerlukan SSH access. Klik Next. 

20

 

Langkah 6 — Networking & Database 

  • VPC: Default VPC 
  • Instance subnets: Pilih available subnets 
  • Database: Skip (akan disiapkan terpisah untuk production) 

21

(Alasan skip: untuk awal prototyping, kita fokus pada aplikasi. Untuk production, gunakan RDS/private subnets & parameter group yang sesuai.) 

 

Langkah 7 — Instance Configuration 

Atur volume & security: 

  • Root volume type: General Purpose 3 (gp3) 
  • Size: 50 GB 

Screenshot 2025 11 13 at 22.22.34

Buat Security Group baru (misal: ElasticBeanstalk) yang mengizinkan: HTTP, HTTPS, dan ICMP. 

 

Langkah 8 — Capacity Settings 

Agar aplikasi dapat scale-out dan scale-in otomatis, gunakan konfigurasi berikut: 

  • Capacity: Load balanced 
  • Minimum instance: 1 
  • Maximum instance: 2 (dapat disesuaikan dengan kebutuhan aplikasi) 
  • Fleet composition: On-Demand instances 
  • Instance types: t3.medium (atau sesuai kebutuhan) 
  • Architecture: x86_64 
  • Visibility: Public 

Screenshot 2025 11 13 at 22.23.34

Untuk Load Balancer, pilih minimal dua Availability Zone. 

Screenshot 2025 11 13 at 22.24.21

Auto Scaling Configuration: 

  • Metric: CPUUtilization 
  • Statistic: Average 
  • Unit: Percent 
  • Period: 1 minute 
  • Breach Duration: 5 minutes 
  • Upper Threshold: 80 (scale up) 
  • Scale-up increment: +1 
  • Lower Threshold: 20 (scale down) 
  • Scale-down increment: -1 

Screenshot 2025 11 13 at 22.24.52

Load Balancer Type: Application Load Balancer 

Listeners: Port 80, Protocol HTTP 

Klik Next. 

Screenshot 2025 11 13 at 22.25.39

 

Langkah 9 — Updates & Monitoring 

Atur pengaturan monitoring dan update seperti berikut: 

Managed platform updates: Disable (pilihan awal; dapat diaktifkan dengan kebijakan update terencana) 

Screenshot 2025 11 13 at 22.27.01

Untuk pengaturan rolling updates and deployments: 

  • Deployment policy: All at once 
  • Batch size type: Percentage 
  • Rolling update type: Disable 
  • Ignore health check: False 
  • Health threshold: OK 
  • Command timeout: 600 seconds 

Terakhir klik Create untuk membuat environment. 

Screenshot 2025 11 13 at 22.28.10

 

Langkah 10 — Review & Deploy (Deployment Process) 

 Sebelum melakukan deployment, lakukan pengecekan: 

  • Review seluruh konfigurasi environment 
  • Klik Submit untuk memulai deployment 
  • Pantau progress di dashboard Elastic Beanstalk 
  • Estimasi waktu: sekitar 5–10 menit untuk environment baru sampai status green (tergantung ukuran instance & network). 

 

Testing dan Validasi HRIS

Functional Testing 

Cek endpoint aplikasi: 

  • Base URL: http://hris-system.region.elasticbeanstalk.com 
  • Dashboard: / — tampilkan pengumuman & ringkasan 

Screenshot 2025 11 13 at 22.29.26

Attendance: /absensi — form absensi & daftar hadir 

Screenshot 2025 11 13 at 22.30.10

Announcements: /pengumuman — daftar semua pengumuman 

Screenshot 2025 11 13 at 22.30.53

Pastikan form POST presensi bekerja, flash message muncul, dan halaman dashboard memuat data. 

 

Load Testing 

Tahap berikutnya adalah evaluasi performa dan skalabilitas aplikasi. Tujuannya untuk memastikan bahwa sistem dapat melakukan scale-out otomatis ketika terjadi peningkatan beban kerja dan penggunaan sumber daya. 

Skenario awal: environment memulai dengan 1 instance. 

Screenshot 2025 11 13 at 22.39.58

Saat peak traffic: ketika CPU > 80%, auto-scaling akan spin-up instance tambahan. 

Screenshot 2025 11 13 at 22.40.55

Aplikasi HRIS tetap bisa diakses selama scale-out. 

Screenshot 2025 11 13 at 22.44.23

Saat trafik turun < 20%, sistem akan scale-down kembali ke 1 instance untuk efisiensi biaya. 

Screenshot 2025 11 13 at 22.45.18

 

Dampak Implementasi HRIS di AWS bagi Transformasi Digital Bisnis

Implementasi HRIS di Elastic Beanstalk menjadi fondasi transformasi digital perusahaan karena: 

  • Memudahkan integrasi dengan sistem existing (misalnya Payroll, ERP) 
  • Memungkinkan pengembangan analytics & insights HR berbasis data real-time 
  • Meningkatkan pengalaman karyawan melalui akses yang lebih mudah dan cepat 
  • Menyiapkan perusahaan untuk adopsi teknologi HR masa depan (chatbot, generative AI untuk talent insights, dsb) 

AWS Elastic Beanstalk menyediakan jalur praktis, cost-effective, dan scalable untuk memulai journey cloud-based HRIS. 

 

Penutup & Catatan Implementasi

Artikel ini disusun berdasarkan pengalaman implementasi HRIS menggunakan AWS Elastic Beanstalk, lengkap dengan troubleshooting dan optimisasi selama development dan deployment. 

Untuk production-ready deployment, pertimbangkan poin berikut: 

  • Gunakan RDS untuk penyimpanan data produksi (Postgres/MySQL) di private subnets 
  • Tambahkan HTTPS (ACM + ALB) untuk keamanan transport 
  • Implementasikan backup & DR untuk database 
  • Setup logging & monitoring (CloudWatch Logs, alarms). 
  • Pertimbangkan autoscaling policies lebih matang (target tracking scaling, notifikasi). 
  • Terapkan best practices AWS Well-Architected Framework (security, reliability, performance, cost optimization, operational excellence). 

Ingin tahu lebih dalam atau butuh panduan lanjutan terkait tutorial ini? Hubungi tim CDT untuk berdiskusi bagaimana solusi ini bisa diadaptasi sesuai kebutuhan Anda. 

 

Source Code & Referensi

Source Code: 

https://github.com/leo-cloud-source/hris-system.git 

Referensi: 

  • AWS Elastic Beanstalk Documentation 
  • Flask Documentation 
  • Bootstrap Documentation 
  • AWS Well-Architected Framework 
  • Python pytz Documentation 

 

Penulis: Ade Ridwan

Editor: Wilsa Azmalia Putri – Content Writer CTI Group 

whatsapp icon.png
Start a Conversation

Privacy & Policy

PT Central Data Technology (“CDT” or “us”) is strongly committed to ensuring that your privacy is protected as utmost importance to us. https://centraldatatech.com/ , we shall govern your use of this website, including all pages within this website (collectively referred to herein below as this “Website”), we want to contribute to providing a safe and secure environment for visitors.

The following are terms of privacy policy (“Privacy Policy”) between you (“you” or “your”) and CDT. By accessing the website, you acknowledge that you have read, understood and agree to be bound by this Privacy Policy

Use of The Subscription Service by CDT and Our Customers

When you request information from CDT and supply information that personally identifies you or allows us to contact you, you agree to disclose that information with us. CDT may disclose such information for marketing, promotional and activity only for the purpose of CDT and the Website.

Collecting Information

You are free to explore the Website without providing any personal information about yourself. When you visit the Website or register for the subscription service, we provide some navigational information for you to fill out your personal information to access some content we offered.

CDT may collect your personal data such as your name, email address, company name, phone number and other information about yourself or your business. We are collecting your data in some ways, online and offline. CDT collects your data online using features of social media, email marketing, website, and cookies technology. We may collect your data offline in events like conference, gathering, workshop, etc. However, we will not use or disclose those informations with third party or send unsolicited email to any of the addresses we collect, without your express permission. We ensure that your personal identities will only be used in accordance with this Privacy Policy.

How CDT Use the Collected Information

CDT use the information that is collected only in compliance with this privacy policy. Customers who subscribe to our subscription services are obligated through our agreements with them to comply with this Privacy Policy.

In addition to the uses of your information, we may use your personal information to:

  • Improve your browsing experience by personalizing the websites and to improve the subscription services.
  • Send information about CDT.
  • Promote our services to you and share promotional and informational content with you in accordance with your communication preferences.
  • Send information to you regarding changes to our customers’ terms of service, Privacy Policy (including the cookie policy), or other legal agreements

Cookies Technology

Cookies are small pieces of data that the site transfers to the user’s computer hard drive when the user visits the website. Cookies can record your preferences when visiting a particular site and give the advantage of identifying the interest of our visitor for statistical analysis of our site. This information can enable us to improve the content, modifying and making our site more user friendly.

Cookies were used for some reasons such as technical reasons for our website to operate. Cookies also enable us to track and target the interest of our users to enhance the experience of our website and subscription service. This data is used to deliver customized content and promotions within the Helios to customers who have an interest on particular subjects.

You have the right to decide whether to accept or refuse cookies. You can edit your cookies preferences on browser setup. If you choose to refuse the cookies, you may still use our website though your access to some functionality and areas of our website may be restricted.

This Website may also display advertisements from third parties containing links to other websites of interest. Once you have used these links to leave our site, please note that we do not have any control over the website. CDT cannot be responsible for the protection and privacy of any information that you provide while visiting such websites and this Privacy Policy does not govern such websites.

Control Your Personal Data

CDT give control to you to manage your personal data. You can request access, correction, updates or deletion of your personal information. You may unsubscribe from our marketing activity by clicking unsubscribe us from the bottom of our email or contacting us directly to remove you from our subscription list.

We will keep your personal information accurate, and we allow you to correct or change your personal identifiable information through marketing@centraldatatech.com