Blog AWS Indonesia

Bagaimana Bitwyre Capai Keamanan Berlapis & Efisiensi dengan Migrasi ke AWS

Artikel ini ditulis bersama dengan AWS Web3 Worldwide Specialist Organization: Nikolay Vlasov & David-Paul Dornseifer, dan Bitwyre’s Chief Technology Officer: Muhammad Iqbal

Membangun Aplikasi di atas Fondasi AWS

Pada bagian ke-1 dari seri artikel ini, kami telah mengeksplorasi komponen yang sangat penting dari cetak biru bisnis centralized crypto exchange (CEX) dan bagaimana cetak biru tersebut dapat diimplementasikan menggunakan layanan AWS. Kami telah merangkum arsitektur inti dari CEX termasuk trade engines, market data distribution, analytics, liquidity providers, key management solutions atau crypto wallets, dan sistem monitoring keamanan. Pada bagian ke-2, kami membahas praktik terbaik melakukan migrasi CEX ke AWS, kami telah membahas mulai dari fase perencanaan, desain hingga ke fase eksekusi, testing, dan aktivitas setelah migrasi.

Pada bagian ke-3 kali ini, kami akan membahas implementasi dari migrasi CEX ke AWS melalui studi kasus Bitwyre, salah satu dari CEX terkemuka di Indonesia. Pada studi kasus ini, kami akan menunjukkan bagaimana frameworks dan praktik terbaik migrasi dari artikel kami sebelumnya diterjemahkan ke hal praktikal dan solusi yang production-ready. Anda akan melihat bagaimana Bitwyre dapat melakukan migrasi keseluruhan infrastruktur mereka ke AWS secara sukses dan mendapatkan peningkatan performa, keamanan, dan juga efisien secara operasional.

Melalui perjalanan migrasi Bitwyre, kami akan membahas pemilihan arsitektur, tantangan yang mereka hadapi selama migrasi, dan juga keuntungan yang mereka dapatkan setelah melakukan migrasi ke AWS.

Implementasi Arsitektur Bitwyre

Struktur AWS Organizations

Kami mengimplementasikan AWS Organizations yang terstruktur dengan baik untuk mendukung kebutuhan operasional dan regulasi. AWS Organizations yang kami implementasikan mengikuti panduan berikut AWS best practices for account separation and governance.

Struktur AWS Organizations Bitwyre

Struktur organisasi dari Bitwyre melibatkan organizational units (OUs) berikut:

  • Security OU : Berperan sebagai delegated admin untuk layanan AWS yang perlu diaktifkan di seluruh akun di dalam organisasi tersebut, seperti AWS CloudTrail,  Amazon GuardDuty, AWS Security Hub, dll.
  • Production OU: Menampung semua sistem di production environment termasuk trade engine dan database. Akun-akun AWS tersebut akan dikelompokkan berdasarkan servis yang terkait, seperti misalnya trade engine, data, atau wallet
  • Staging OU: Sama seperti Production OU namun untuk non-production environment.
  • CICD OU: Dikhususkan untuk menyimpan tools terkait DevOps Continuous Integration Continuous Deployment (CICD) pipeline.

Strategi pemisahan akun ini memungkinkan Bitwyre untuk terus memelihara batasan yang jelas antara environment yang berbeda-beda dan tipe workloads yang berbeda pula. Struktur tersebut mendukung persyaratan compliance dengan menyediakan audit trails dan access control di level organisasi, sembari menyediakan resources yang efisien dan alokasi biaya ke semua environment Software Development Life Cycle (SDLC).

AWS Control Tower berfungsi sebagai fondasi untuk mengatur tata kelola AWS Organizations. Dengan menggunakan Control Tower, kami dapat memanfaatkan Service Control Policies (SCPs) yang telah dibuat sebelumnya untuk mengatur kebijakan keamanan dan kepatuhan secara terpusat di semua akun dalam organisasi. Control Tower juga secara otomatis mengkonfigurasi AWS CloudTrail untuk mencatat aktivitas di seluruh akun, sehingga memberikan kemampuan audit yang menyeluruh. Integrasi ketiga layanan ini memastikan kepatuhan terhadap standar keamanan sembari menjaga skalabilitas operasional.

Ringkasan Arsitektur Production

Arsitektur yang kami terapkan di production menunjukkan implementasi dari cetak biru yang telah kami diskusikan pada bagian ke-1, yang telah kami rangkai untuk memenuhi persyaratan operasional, keamanan, dan performa tertentu.

AWS Architecture Bitwyre Production

High Availability di setiap lapisan

Kami menggunakan beberapa Availability Zones pada penerapan aplikasi CEX untuk memastikan tercapainya high availability dan mendukung operasional dari CEX.

Infrastruktur Core Trading

Platform trading Bitwyre berjalan di atas Amazon EKS dan Amazon EC2. Trading engine, manajemen order, dan platform web microservices menggunakan Amazon EKS, sementara untuk servis yang sensitif terhadap latensi, membutuhkan high-throughput dan matching engine berjalan di atas Amazon EC2. Pendekatan ini mengurangi orkestrasi kontainer menggunakan Kubernetes, sembari menyediakan kendali yang lebih leluasa terhadap resource komputasi. Amazon EC2 menyediakan akses langsung ke resources dari instans tersebut, menghasilkan performa yang lebih baik dan biaya operasional yang lebih rendah untuk aplikasi tertentu yang bersifat individual.

Selain itu, dengan menggunakan EC2 secara langsung memungkinkan pemanfaatan resources yang lebih baik, dikarenakan semua memory dan komputasi yang tersedia dapat didedikasikan kepada risk dan matching engine tanpa melalui pembagian resources dengan manajemen kontainer.

High-Performance Data Layer

Arsitektur data yang kami terapkan menggunakan beberapa databases untuk tujuan dan menangani aktivitas trading tertentu:

  • Amazon Aurora MySQL-Compatible Edition, berperan sebagai transactional database primer, menyediakan performa yang lebih baik hingga 5 kali lipat dibandingkan dengan MySQL standar, serta menyediakan failover otomatis ke beberapa Availability Zones. Bitwyre menyimpan order book dan trade feed di dalam database ini.
  • Amazon ElastiCache, menyimpan penetapan harga dan data session pengguna hingga latensi sub-millisecond.
  • KDB+ yang di-install pada Amazon EC2 menangani data market secara real-time dan berperan sebagai high-frequency trading analitik.
  • Redpanda yang di-install pada Amazon EC2 memfasilitasi streaming data secara real-time antar layanan.
  • Amazon Simple Storage Service (Amazon S3), menyediakan penyimpanan objek yang scalable dan dilengkapi dengan redundansi untuk dokumen seperti compliance dan analitik.

Security memainkan peran yang sangat penting dalam arsitektur yang kami terapkan, terlebih lagi dalam menangani penyimpanan aset digital. Untuk meningkatkan keamanan pemrosesan data dan aktivitas kriptografi, kami memanfaatkan AWS Nitro Enclaves — sebuah fitur yang tersedia pada instance EC2 berbasis Nitro System. Nitro Enclaves memungkinkan kami menjalankan pemrosesan kriptografi dalam environment komputasi yang terisolasi dan bersifat konfidensial.

Infrastruktur wallet terintegrasi dengan teknologi cosigner Fireblocks, yang mengimplementasikan protokol Multi-Party Computation (MPC) di mana fragmen private key didistribusikan ke berbagai lokasi yang aman. Semua operasi yang melibatkan fragmen private key pada infrastruktur AWS dijalankan di dalam Nitro Enclaves, memastikan bahwa tidak ada pihak yang dapat mengakses fragmen key tersebut.

Konektivitas dan Arsitektur Jaringan

Jaringan yang kami desain mengutamakan keamanan dan performa. Virtual Private Cloud (VPC) peering digunakan untuk menghubungkan beberapa servis dengan environment data agar mendapatkan latensi yang rendah. Kami memilih menggunakan VPC peering daripada AWS Transit Gateway untuk menghindari network hops tambahan yang dapat berimbas pada tingginya latensi selama trading berlangsung.

Konektivitas ke luar (outbound) ke market makers dan penyedia likuiditas dilakukan melalui internet public dengan menggunakan NAT Gateway. Sementara konektivitas ke dalam (inbound) menggunakan Elastic Load Balancing, melalui protocol HTTP dan WebSocket untuk layanan penempatan order, status permintaan order, dan juga penerimaan data pasar secara real-time.

Security, Monitoring, dan Observability

Alat monitoring yang kami terapkan mencakup level infrastruktur dan aplikasi, kami menggunakan Amazon CloudWatch untuk merekam logs dan metriks yang penting dan membuat dashboard khusus untuk metriks trading tertentu. Amazon GuardDuty menyediakan deteksi ancaman, sementara AWS Security Hub menyediakan layanan security findings yang terpusat untuk semua environment.

Optimisasi Performa dan Skalabilitas

Kami membuat arsitektur dengan kemampuan auto-scaling di semua lapisan. Amazon EKS menggunakan Horizontal Pod Autoscaler untuk menskalakan microservices, sementara itu Amazon EC2 Auto Scaling mengatur kapasitas komputasi dari Amazon EC2 dalam melakukan scaling secara otomatis. Dengan menggunakan Amazon Aurora, replika yang menangani aktivitas pembacaan database dapat diskalakan secara terpisah untuk menangani query analitikal tanpa mempengaruhi performa dari database utama.

Arsitektur di production environment mendemonstrasikan konsep yang telah kami bahas di bagian ke-1 dan AWS Well-Architected Framework, sekaligus menterjemahkannya ke dunia nyata melalui migrasi CEX platform.

Perjalanan Migrasi Bitwyre: Implementasi Best Practices dan Kerja sama dengan AWS

Migrasi yang dilakukan Bitwyre ke AWS menggunakan pendekatan kolaboratif and best practices yang telah kami uraikan di bagian ke-2 dari seri ini. Pada bagian ini, kami akan menunjukkan pengalaman kami dalam melakukan implementasi dengan menerapkan best practices tersebut.

Kerja Sama dalam Fase Perencanaan

Kami bekerja bersama partner AWS yaitu ECV (e-Cloudvalley) untuk memfasilitasi migrasi ini. Tim AWS Startup Solutions Architect berkolaborasi bersama ECV untuk mendesain arsitektur dan struktur dari AWS Organizations untuk menangani workloads CEX. Kerja sama tiga pihak ini (Bitwyre, AWS, dan ECV) dilakukan untuk memastikan strategi migrasi sejalan dengan persyaratan teknikal dan objektif bisnis.

Selama fase desain, kami menggunakan pendekatan arsitektur yang bervariasi. Beberapa workloads dimigrasikan secara lift and shift. Ada pula beberapa yang perlu dimodifikasi arsitekturnya agar sesuai kebutuhan, misalnya servis yang sebelumnya berjalan di Kubernetes dipindahkan ke virtual machine tanpa orkestrasi kontainer untuk meningkatkan performa.

Selama fase ini, kami juga memastikan tidak ada dampak dari lisensi pihak ketiga seperti Redpanda dan KDB+. Kami juga secara proaktif mengalokasikan kenaikan service limit quota untuk Amazon EC2 dan RDS yang didasarkan pada dokumen teknis yang mencantumkan kebutuhan jumlah instans.

Perencanaan Migrasi

Sebelum memulai migrasi, pihak AWS, Bitwyre, dan ECV membuat perencanaan, komunikasi, dan monitoring framework secara komprehensif:

  • Rencana migrasi: Kami bekerja bersama ECV untuk menentukan rencana migrasi dan ruang lingkup pekerjaan dari migrasi ini.
  • Kanal komunikasi: Kami membuat kanal komunikasi yang berisi semua pihak untuk mendukung kolaborasi secara real-time supaya dapat meresolusi masalah dengan cepat dan tepat.
  • Daily update: Update dari perkembangan migrasi dilakukan harian untuk memastikan tidak ada halangan.
  • Weekly update: Briefing terhadap eksekutif untuk memberikan visibilitas atas kemajuan migrasi dan memfasilitasi eskalasi bila diperlukan.

Pendekatan terstruktur ini memungkinkan tim mempertahankan momentum sembari segera mengatasi tantangan yang muncul.

Implementasi dari Infrastructure as a Code

Pembuatan infrastruktur dilakukan menggunakan Terraform, dengan bantuan dari ECV. Penggunaan Terraform dapat memastikan konsistensi, kemudahan untuk dibuat kembali, dan version control untuk men-deploy aplikasi, sesuai dengan praktik devops modern dan memastikan skalabilitas di masa mendatang.

Validasi Proof of Concept (PoC)

PoC untuk Migrasi Virtual Machine (VM): Kami berhasil melakukan testing dengan AWS Application Migration Service (MGN) menggunakan koneksi Site-to-Site VPN untuk memigrasi VM. PoC ini menghasilkan konfigurasi yang dapat digunakan untuk memigrasi production environment.

PoC untuk Migrasi Database: Kami berhasil melakukan testing terhadap AWS Database Migration Service (DMS) menggunakan Site-to-Site VPN, yang selanjutnya kami gunakan untuk memindahkan production data sebesar 18 Terabyte (TB). Dari hasil PoC tersebut, kami mendapat beberapa insights penting, antara lain:

  • Mengidentifikasi beberapa kolom yang memerlukan migrasi manual
  • Temuan beberapa objek database yang memerlukan prosedur migrasi terpisah
  • Memvalidasi integritas dan kinerja data

Untuk membuat proses migrasi lebih efisien dari sisi biaya dan waktu, tim memanfaatkan data yang telah berhasil dipindahkan selama proses PoC untuk proses selanjutnya.

Modernisasi Workloads Kontainer

Untuk workloads Kubernetes, kami menggunakan Amazon EKS Auto Mode. Migrasi ini meliputi antara lain:

  • Modifikasi dari CI/CD pipeline yang sudah ada untuk mengganti target ke kluster EKS di AWS
  • Mengimplementasikan Horizontal Pod Autoscaler (HPA) untuk skalabilitas aplikasi
  • Mengintegrasikan EKS dengan Karpenter agar skalabilitas nodes lebih cepat

Pendekatan ini tidak hanya memindahkan workloads yang sudah ada, namun kami juga melakukan modernisasi dari sisi arsitektur.

Strategi Testing dan Validasi

Pengujian Virtual Machine: Fitur test instance dari AWS MGN memberikan environment yang aman untuk melakukan validasi VM sebelum melakukan cutover terakhir, dengan ini kami dapat memastikan kompatibilitas dan performa dari aplikasi.

Pengujian Database dan Aplikasi: Fitur Blue/Green deployment dari Amazon RDS dan Aurora memungkinkan testing aplikasi yang menyeluruh tanpa memengaruhi data di production environment. Hal ini memungkinkan kami untuk memvalidasi fungsionalitas aplikasi menggunakan data dummy sekaligus menjaga integritas dari database di production environment.

Load Testing: Kami melakukan load testing dengan mengirimkan load yang tinggi ke Redpanda untuk memverifikasi pemrosesan dari servis tersebut.

Dukungan dan Resolusi Masalah

Selama proses migrasi, kami mengaktifkan AWS Business Support, memungkinkan respons yang cepat terkait masalah teknikal. Selama migrasi kami membuat beberapa permintaan untuk meningkatkan kuota service limit dari beberapa servis di AWS seperti EC2.

Cutover dan Go-Live

Untuk mengalihkan trafik ke aplikasi yang telah dihosting di AWS, kami melakukan switching DNS dan database. Kami memastikan proses cutover ini berlangsung dengan lancar supaya tidak terjadi gangguan pada aplikasi selama proses transisi berlangsung.

Optimisasi Pasca Migrasi

Setelah migrasi berhasil, kami mengimplementasikan sistem monitoring dan alerting menggunakan Amazon CloudWatch, memastikan adanya visibilitas operasional dan deteksi isu yang proaktif. Setelah beberapa minggu sistem production berjalan dengan stabil, kami melakukan cleanup terhadap infrastruktur sebelumnya, dan melakukan finalisasi dari proses migrasi.

Manfaat yang Didapat Setelah Migrasi ke AWS

Migrasi yang kami lakukan ke AWS memberikan peningkatan yang signifikan dari sisi teknikal, keamanan, dan sisi operasional bisnis, antara lain:

Peningkatan Keamanan

Migrasi yang kami lakukan ke AWS membantu meningkatkan postur keamanan dan kepatuhan terhadap regulasi. Praktik keamanan di AWS memungkinkan kami untuk mengimplementasikan strategi keamanan berlapis yang sebelumnya sulit dan mahal untuk didapat menjadi lebih mudah. AWS Identity and Access Management (IAM) menyediakan kontrol akses yang terperinci, sementara AWS CloudTrail menyediakan audit trails untuk audit mandiri. Dengan Security Hub, kami dapat memonitor postur keamanan cloud kami dari satu panel.

Dengan memanfaatkan AWS Nitro Enclaves, kami dapat menjalankan operasi kriptografi dengan tingkat keamanan yang lebih tinggi melalui virtual machine yang terisolasi. Nitro Enclaves yang tersedia dalam instance EC2 menyediakan sistem attestation secara kriptografi, memungkinkan verifikasi jarak jauh untuk kode yang dieksekusi di dalam enclaves. Dengan mengambil keuntungan dari integrasi Nitro Enclaves dan AWS KMS, akses ke key dapat dibatasi hanya ke enclaves tertentu melalui sistem attestation kriptografi. Pembatasan ini dapat diterapkan dengan konfigurasi operasi dekripsi KMS agar hanya dapat diakses oleh enclaves tertentu berdasarkan hash measurement atau Platform Configuration Register (PCR).

Peningkatan Kinerja dan Performa

Dengan migrasi ke AWS, Bitwyre mendapatkan peningkatan kinerja yang terukur, penggunaan Amazon Aurora untuk MySQL, caching menggunakan Amazon ElastiCache untuk Valkey, dan jaringan arsitektur yang telah dioptimisasi dapat mengurangi latensi saat pemrosesan sebesar 20%. Matching engine yang kami jalankan di EC2 instans dapat mencapai throughput pemrosesan lebih tinggi hingga 30%, dimana hal ini sangat penting untuk operasi competitive trading.

High availability juga meningkat dengan menerapkan arsitektur AWS multi-AZ. Dengan kapabilitas failover otomatis yang dapat memastikan bahwa jika ada kegagalan sistem, maka gangguan pada database dan aplikasi akan sangat minimal.

Optimisasi Biaya dan Efisiensi Operasional

Dengan menggunakan servis yang di-manage oleh AWS, Bitwyre dapat mengurangi biaya operasional. Dengan memindahkan self-managed Redis ke Amazon ElastiCache, kami mengeliminasi kompleksitas dari manajemen kluster cache sembari meningkatkan performa dan reliabilitas sistem tersebut. Senada dengan pemilihan Amazon Aurora untuk menggantikan self-managed MySQL, hal ini secara signifikan tidak hanya mengurangi beban untuk mengawasi database secara manual namun juga meningkatkan performa database dan menyediakan backup otomatis.

Migrasi ini juga memungkinkan penggunaan resources yang lebih efisien dengan memanfaatkan fitur auto-scaling. Jika trading mencapai periode tertingginya, maka infrastruktur Bitwyre akan secara otomatis meningkatkan jumlah resources untuk menangani beban yang bertambah. Sebaliknya jika beban berkurang maka secara otomatis ia akan mengurangi jumlah resources agar tercapai biaya yang optimal.

Manajemen Resiko dan Kepatuhan Regulasi

Dengan memanfaatkan compliance programs dan security controls yang disediakan AWS, pemenuhan persyaratan regulasi menjadi lebih mudah. Pemisahan yang jelas antara environment production dan non-production, yang dapat dikonfigurasi melalui AWS Control Tower dan SCPs, membantu kami menerapkan governance sesuai standar. Ditambah dengan logging komprehensif melalui AWS CloudTrail yang sudah kami konfigurasi, kami dapat mendemonstrasikan kepatuhan terhadap regulasi lokal dengan lebih efektif.

Skalabilitas untuk Pertumbuhan Bisnis di Masa Depan

Migrasi Bitwyre ke AWS telah memperhitungkan pertumbuhan bisnis perusahaan di masa depan. Arsitektur yang kami kembangkan dapat menangani aktivitas trading dengan volume yang tinggi, hingga dua kali lipat volume trading normal, tanpa membutuhkan perubahan arsitektur yang signifikan.

Skalabilitas yang dicapai tidak hanya terkait perihal teknikal, tapi juga memastikan bagaimana skalabilitas tersebut dapat menangani peluang bisnis baru. Kehadiran AWS di seluruh dunia memungkinkan untuk melakukan ekspansi ke region baru, dengan adanya dukungan dari sisi infrastruktur untuk mendukung operasi lintas regional.

Sebagai CEX yang beroperasi di Indonesia, persyaratan regulasi merupakan prioritas utama bagi kami. Untuk memenuhi persyaratan ini, kami memutuskan untuk memigrasikan seluruh infrastruktur kami ke AWS. Langkah ini merupakan salah satu keputusan strategis terbaik kami, terutama di sisi engineering.

Seluruh proses migrasi kami berlangsung cepat dan efisien berkat dukungan langsung dari tim dan mitra AWS Startup Indonesia. Kami juga berhasil mengoptimalkan biaya, menerapkan praktik terbaik arsitektur yang aman sejak awal, dan merancang production dan non-production environment yang sepenuhnya terisolasi.

Kami memandang AWS tidak hanya sebagai penyedia cloud, tetapi juga sebagai mitra strategis dalam mendukung pertumbuhan dan inovasi bisnis kami.

Muhammad Iqbal – Chief Technology Officer of Bitwyre 

Kesimpulan dan Langkah Selanjutnya

Perjalanan yang dimulai dari perencanaan ke implementasi, hingga bagaimana Bitwyre mendapatkan keuntungan nyata setelah migrasi ke AWS dapat menjadi roadmap bagi CEX lainnya yang ingin melakukan migrasi serupa. Yang terpenting adalah bagaimana migrasi ini tidak hanya mengenai perpindahan arsitektur tapi juga bagaimana AWS dapat mentransformasi sisi operasional menjadi lebih aman, terukur dan efisien. Keuntungan dari sisi keamanan, performa, compliance, dan efisiensi operasional menunjukkan nilai strategis dari migrasi CEX.

Studi kasus Bitwyre memberikan gambaran bahwa migrasi dapat dilakukan dengan baik sembari menjaga keberlangsungan operasional. Kesuksesan dari migrasi ini adalah adanya perencanaan yang baik, perhatian khusus dari sisi keamanan, dan memanfaatkan AWS managed services untuk mengurangi kompleksitas operasional.

Hubungi tim AWS untuk membahas bagaimana kesuksesan Bitwyre dapat diterapkan pada kebutuhan bisnis Anda. AWS memiliki pengalaman, layanan, dan dukungan untuk membantu Anda mencapai hasil serupa dalam perjalanan migrasi Anda.

Untuk mempelajari lebih lanjut tentang bagaimana AWS dapat membantu Anda membangun dan mengimplementasikan platform crypto yang aman dan terukur, kunjungi halaman AWS Web3.

Angga Pradikta

Angga Pradikta

As a Solutions Architect at AWS, Angga helps customers navigate their cloud journey by designing and implementing secure, scalable, and cost-effective solutions.

Agung Sidharta

Agung Sidharta

Agung Sidharta is a Startups Solutions Architect who loves to work with customers solving their problems. In his spare time, he enjoys traveling, reading IT-related materials, and walking in the surrounding environment with his family and little dog