Bangun AWS landing zone yang mencakup MongoDB Atlas - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bangun AWS landing zone yang mencakup MongoDB Atlas

Igor Alekseev, Amazon Web Services

Ringkasan

Pola ini menjelaskan cara membangun AWS landing zone yang terintegrasi dengan cluster MongoDB Atlas. Infrastruktur secara otomatis digunakan dengan menggunakan skrip Terraform.

AWS Lingkungan multi-akun yang terstruktur dengan baik, yang disebut landing zone, menawarkan skalabilitas dan keamanan, terutama untuk perusahaan. Ini berfungsi sebagai fondasi untuk penyebaran cepat beban kerja dan aplikasi, dan membantu memastikan kepercayaan dalam keamanan dan infrastruktur. Membangun landing zone memerlukan pertimbangan yang cermat terhadap faktor teknis dan bisnis, termasuk struktur akun, jaringan, keamanan, dan manajemen akses. Pertimbangan ini harus selaras dengan pertumbuhan masa depan dan tujuan bisnis organisasi Anda.

Kasus penggunaan untuk pola ini meliputi yang berikut ini.

  • Platform SaaS dan PaaS Perusahaan: Perangkat lunak multitenant as a service (SaaS) aplikasi dan platform sebagai layanan (PaaS) platform yang berjalan AWS dapat menggunakan pengaturan ini untuk membantu menyediakan akses pribadi yang aman ke MongoDB Atlas tanpa mengekspos data melalui internet publik.

  • Industri yang sangat diatur: Perbankan, jasa keuangan, perawatan kesehatan, dan beban kerja pemerintah yang memerlukan kepatuhan ketat terhadap standar seperti Health Insurance Portability and Accountability Act (HIPAA), Payment Card Industry Data Security Standard (PCI DSS), System and Organization Controls 2 (), dan General Data Protection Regulation (GDPRSOC2) mendapat manfaat dari:

    • Konektivitas pribadi terenkripsi melalui AWS PrivateLink

    • Multi-AZ ketersediaan tinggi set replika MongoDB

  • AI/ML Beban kerja yang aman: Saluran pipa pelatihan atau inferensi di Amazon Bedrock, SageMaker Amazon AI, atau model AI khusus dapat mengambil dan menyimpan data dengan aman di MongoDB Atlas. PrivateLink

  • Pemulihan bencana dan kelangsungan bisnis: Desain multi-AZ memastikan bahwa tidak ada satu pun kegagalan Availability Zone yang mengganggu beban kerja. Replika Atlas yang disetel di seluruh Availability Zones memastikan failover otomatis. Ini sangat penting untuk layanan yang selalu aktif seperti aplikasi teknologi keuangan (fintech), perbankan digital, atau pemantauan kesehatan.

Prasyarat dan batasan

Prasyarat

  • Pemilik organisasi mengakses MongoDB Atlas sehingga Anda dapat membuat kunci Atlas API. Untuk informasi tentang persyaratan ini, lihat Mengelola Akses Organisasi dalam dokumentasi MongoDB.

  • Aktif Akun AWS.

  • Terraform, diinstal dan dikonfigurasi.

  • Cluster MongoDB Atlas, dibuat dengan MongoDB versi 6.0 atau yang lebih baru.

  • Keakraban dengan MongoDB dan MongoDB Atlas. Untuk informasi selengkapnya, lihat dokumentasi MongoDB Atlas.

Batasan

Arsitektur

Diagram arsitektur referensi berikut menggambarkan pengaturan penyebaran untuk AWS landing zone yang terintegrasi dengan titik akhir pribadi MongoDB Atlas. Arsitektur referensi ini menunjukkan bagaimana membangun AWS landing zone yang aman, terukur, dan sangat tersedia yang terintegrasi dengan MongoDB Atlas. Dengan menggabungkan praktik AWS terbaik seperti penyebaran multi-AZ, kontrol keamanan dengan hak istimewa, dan konektivitas pribadi, desain ini memungkinkan organisasi untuk menyediakan lingkungan yang kuat untuk aplikasi modern.

Arsitektur multi-AZ untuk AWS landing zone yang terintegrasi dengan MongoDB Atlas.

Arsitektur ini terdiri dari yang berikut:

VPC

  • Satu virtual private cloud (VPC) mencakup tiga Availability Zone.

  • VPC dibagi lagi menjadi subnet yang selaras dengan setiap Availability Zone. Subnet ini mendistribusikan beban kerja untuk ketersediaan tinggi.

Akses internet

  • Gateway internet menyediakan konektivitas internet outbound untuk sumber daya yang membutuhkannya, seperti host aplikasi atau bastion.

  • Subnet publik dapat menampung gateway NAT, yang memungkinkan beban kerja subnet pribadi untuk mengunduh pembaruan, tambalan, dan paket lain yang diperlukan tanpa memaparkannya langsung ke internet publik.

Subnet pribadi dan tabel rute

  • Komponen aplikasi, layanan mikro, atau sumber daya sensitif lainnya biasanya berada di subnet pribadi.

  • Tabel rute khusus mengontrol arus lalu lintas. Rutekan lalu lintas keluar langsung dari subnet pribadi ke gateway NAT untuk akses internet yang aman dan hanya jalan keluar.

  • Permintaan masuk dari aliran internet melalui penyeimbang beban elastis atau host benteng (jika digunakan) di subnet publik, dan kemudian rute dengan tepat ke sumber daya subnet pribadi.

Konektivitas MongoDB Atlas melalui PrivateLink

  • Arsitektur menggunakan PrivateLink (melalui titik akhir VPC) untuk terhubung dengan aman ke MongoDB Atlas tanpa mengekspos data Anda ke internet publik.

  • Permintaan tetap ada di jaringan AWS backbone. Data dalam perjalanan mendapat manfaat dari PrivateLink enkripsi dan tidak pernah dialihkan melalui internet publik.

  • VPC khusus MongoDB Atlas menghosting node primer dan sekunder Anda, dan menyediakan lingkungan yang aman dan terisolasi untuk cluster database terkelola Anda.

Deployment Multi-AZ

  • Komponen infrastruktur penting (seperti gateway NAT dan subnet aplikasi) didistribusikan di setidaknya tiga Availability Zone. Jika Availability Zone mengalami pemadaman, arsitektur ini memastikan bahwa beban kerja di Availability Zone yang tersisa tetap beroperasi.

  • MongoDB Atlas, secara default, menawarkan ketersediaan tinggi melalui set replika dan memastikan bahwa lapisan database Anda tetap toleran terhadap kesalahan. Infrastruktur kritis tersebar di setidaknya tiga Availability Zone untuk ketahanan.

Alat

Layanan AWS

  • AWS Secrets Managermembantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API untuk mengambil rahasia secara terprogram.

Produk dan alat lainnya

  • MongoDB Atlas adalah database yang dikelola sepenuhnya sebagai layanan (dBaaS) untuk menyebarkan dan mengelola database MongoDB di cloud.

  • Terraform adalah alat infrastruktur sebagai kode (IAc) HashiCorp yang membantu Anda membuat dan mengelola sumber daya cloud dan lokal. Dalam pola ini, Anda menggunakan Terraform untuk menjalankan skrip untuk memfasilitasi penerapan sumber daya yang diperlukan di dan AWS MongoDB Atlas.

Repositori kode

Kode untuk pola ini tersedia di repositori AWS dan MongoDB Atlas Landing Zone. GitHub

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Identifikasi pemangku kepentingan utama.

Identifikasi semua pemangku kepentingan utama dan anggota tim yang terlibat dalam proyek landing zone Anda. Ini dapat mencakup peran seperti:

  • Administrator basis data () DBAs

  • DevOps insinyur

  • Pengembang aplikasi

  • Arsitek aplikasi

Pimpin migrasi

Buat cetak biru struktural.

Buat cetak biru yang menguraikan struktur yang diinginkan dari landing zone berkemampuan Atlas Anda dan AWS MongoDB.

Pimpin migrasi

Buat rencana arsitektur.

Bekerja dengan arsitek aplikasi Anda untuk menganalisis persyaratan dan merancang arsitektur yang tahan terhadap kesalahan dan tangguh. Pola ini menyediakan template arsitektur starter untuk referensi Anda. Anda dapat menyesuaikan template ini untuk memenuhi kebutuhan keamanan dan infrastruktur organisasi Anda.

Arsitek awan

Rencanakan penyiapan dan penerapan.

Tentukan, dengan semua pemangku kepentingan, bagaimana arsitektur akan diterapkan, bagaimana langkah-langkah keamanan akan diterapkan, dan aspek lainnya untuk memastikan keselarasan dengan kepentingan organisasi dan tim yang meminta.

Pimpinan migrasi, DevOps insinyur, DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori.

Kloning kode dari GitHub repositori dengan menjalankan perintah:

git clone https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone
Pengembang aplikasi, DevOps insinyur

Dapatkan ID organisasi Atlas Anda.

  1. Jika Anda tidak memiliki akun MongoDB Atlas, daftar untuk satu.

  2. Ikuti langkah-langkah dalam dokumentasi MongoDB untuk membuat organisasi.

  3. Salin ID organisasi.

DBA

Hasilkan kunci API tingkat organisasi Atlas.

Untuk membuat kunci API tingkat organisasi Anda di Atlas, ikuti petunjuk dalam dokumentasi MongoDB.

DBA

Buat rahasia di AWS Secrets Manager.

Simpan kunci MongoDB Atlas API yang dihasilkan pada langkah sebelumnya sebagai rahasia nilai kunci di Secrets Manager. Untuk petunjuk, lihat dokumentasi Secrets Manager.

DevOps insinyur

Pilih tingkat cluster Atlas.

Untuk memilih tingkat cluster Atlas yang benar, ikuti petunjuk dalam dokumentasi MongoDB.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Ubah skrip Terraform.

Di salinan GitHub repositori lokal Anda, perbarui nama rahasia di modules/mongodb-atlas/mainfile.tf (baris 12), sehingga Terraform dapat mengambil kredensil dari Secrets Manager selama penerapan.

DevOps insinyur

Buat ID kunci AWS akses dan kunci rahasia.

Untuk membuat ID kunci AWS akses dan kunci rahasia, ikuti petunjuk di artikel AWS re:Post Bagaimana cara membuat kunci AWS akses?

Ini adalah praktik terbaik untuk menetapkan kebijakan dengan hak istimewa paling sedikit yang diperlukan, tetapi untuk kasus ini, pilih kebijakan. AdministratorAccess

Setelah Anda membuat kunci akses, tinjau praktik terbaik Keamanan di IAM untuk mempelajari praktik terbaik dalam mengelola kunci akses.

DevOps insinyur

Alokasikan alamat IP elastis.

Alokasikan setidaknya dua alamat IDs IP elastis. Untuk petunjuknya, lihat dokumentasi Amazon Virtual Private Cloud (Amazon VPC).

DevOps insinyur

Buat ember S3.

Buat bucket S3 untuk menyimpan status penerapan Terraform Anda dengan mengikuti petunjuk di dokumentasi Amazon Simple Storage Service (Amazon S3).

DevOps insinyur

Perbarui bucket S3 untuk penyimpanan.

Perbarui informasi bucket S3 di versi lokal environments/development/main.tf agar sesuai dengan nama dan Wilayah bucket yang Anda buat pada langkah sebelumnya, dan tentukan awalan key. Misalnya:

terraform { ... backend "s3" { bucket = "startup-name-product-terraform" key = "network/dev" region = "ap-southeast-1" } }

Untuk contoh ini, Anda dapat mengonfigurasi Terraform untuk menggunakan network/dev awalan key untuk mengatur file status Terraform. Anda dapat mengubah nilai ke prod atau staging mencocokkan lingkungan yang ingin Anda buat. Untuk informasi tentang menggunakan beberapa lingkungan, lihat langkah terakhir di bagian ini.

Untuk informasi selengkapnya tentang awalan kunci Amazon S3, lihat Mengatur objek menggunakan awalan dalam dokumentasi Amazon S3.

DevOps insinyur

Tetapkan variabel Terraform.

Sample landing zone mendefinisikan nilai variabel input dengan menggunakan file definisi variabel Terraform.

File variabel terletak di environments/development/variables.tf. Anda dapat mengatur nilai variabel dalam environments/development/terraformfile.tfvars. Konfigurasikan variabel-variabel ini seperti yang dijelaskan dalam file Readme untuk GitHub repositori.

DevOps insinyur

Mengatur variabel lingkungan.

Jika Anda berencana untuk menjalankan skrip Terraform di mesin lokal Anda, siapkan variabel lingkungan berikut:

  • AWS_ACCESS_KEY_ID: ID kunci AWS akses

  • AWS_SECRET_ACCESS_KEY: kunci akses AWS rahasia

  • AWS_DEFAULT_REGION: Wilayah AWS

  • TF_LOG: Tingkat log Terraform (DEBUGatau) INFO

Untuk informasi selengkapnya tentang pengaturan variabel lingkungan, lihat dokumentasi AWS Command Line Interface (AWS CLI).

DevOps insinyur

Periksa konfigurasi VPC.

Untuk mengikuti praktik terbaik yang direkomendasikan oleh AWS, konfigurasikan pengaturan untuk VPC dan subnet CIDRs, gateway NAT, rute, dan tabel rute dalam skrip Terraform untuk memenuhi kebutuhan organisasi Anda. Untuk spesifik, lihat file Readme untuk repositori. GitHub

DevOps insinyur

Sumber daya tag.

Anda dapat menandai AWS sumber daya Anda untuk memantaunya saat digunakan oleh skrip Terraform. Sebagai contoh, lihat file Readme untuk GitHub repositori. Untuk informasi tentang pemantauan sumber daya melalui tag untuk biaya, penggunaan, dan sebagainya, lihat Mengaktifkan tag alokasi biaya yang ditentukan pengguna dalam dokumentasi. AWS Billing

DevOps insinyur

Gunakan beberapa lingkungan.

GitHub Repositori menyediakan folder development lingkungan. Anda juga dapat menambahkan lingkungan Anda sendiri di folder lingkungan.

Untuk menambahkan lingkungan, salin development folder ke folder baru (misalnya, prod ataustaging) di bawahenvironments. Anda kemudian dapat memperbarui terraform.tfvars file dengan nilai baru.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Inisialisasi direktori kerja Terraform.

Untuk menginisialisasi direktori kerja dan mengunduh paket yang diperlukan, jalankan perintah:

terraform init
DevOps insinyur

Buat rencana eksekusi.

Untuk membuat rencana eksekusi dan memvisualisasikan perubahan yang akan dilakukan Terraform pada infrastruktur Anda, jalankan perintah:

terraform plan
DevOps insinyur

Menyebarkan perubahan.

Untuk mengimplementasikan perubahan pada infrastruktur Anda seperti yang dijelaskan dalam kode, jalankan perintah:

terraform apply
DevOps insinyur

Validasi penerapan.

Validasi komponen yang dibuat atau dimodifikasi Terraform di infrastruktur Anda.

Untuk menguji penyiapan, sediakan sumber daya komputasi (misalnya, EC2 instans atau AWS Lambda fungsi Amazon) di dalam atau dilampirkan ke VPC.

DevOps insinyur, Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Bersihkan.

Setelah Anda selesai menguji, jalankan perintah berikut untuk menghancurkan sumber daya yang diterapkan Terraform di infrastruktur Anda:

terraform destroy
DevOps insinyur

Sumber daya terkait

Penemuan dan penilaian

Menyiapkan MongoDB Atlas dan lingkungan AWS

Menyebarkan landing zone