Menerapkan lingkungan untuk aplikasi Blu Age dalam kontainer dengan menggunakan Terraform - AWS Prescriptive Guidance

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

Menerapkan lingkungan untuk aplikasi Blu Age dalam kontainer dengan menggunakan Terraform

Richard Milner-Watts, Amazon Web Services

Ringkasan

Migrasi beban kerja mainframe lama ke arsitektur cloud modern dapat menghilangkan biaya pemeliharaan mainframe—biaya yang hanya meningkat seiring bertambahnya usia lingkungan. Namun, migrasi pekerjaan dari mainframe dapat menimbulkan tantangan unik. Sumber daya internal mungkin tidak akrab dengan logika pekerjaan, dan kinerja tinggi mainframe pada tugas-tugas khusus ini bisa sulit untuk ditiru jika dibandingkan dengan komoditas, digeneralisasi. CPUs Menulis ulang pekerjaan ini bisa menjadi usaha besar dan membutuhkan upaya yang signifikan.

Blu Age mengubah beban kerja mainframe lama menjadi kode Java modern, yang kemudian dapat Anda jalankan sebagai wadah.

Pola ini menyediakan contoh arsitektur tanpa server untuk menjalankan aplikasi kontainer yang telah dimodernisasi dengan alat Blu Age. File HashiCorp Terraform yang disertakan akan membangun arsitektur aman untuk orkestrasi kontainer Blu Age, mendukung tugas batch dan layanan waktu nyata.

Untuk informasi selengkapnya tentang memodernisasi beban kerja Anda dengan menggunakan layanan Blu Age dan AWS, lihat publikasi AWS Prescriptive Guidance ini:

Untuk bantuan menggunakan Blu Age untuk memodernisasi beban kerja mainframe Anda, hubungi tim Blu Age dengan memilih Hubungi pakar kami di situs web Blu Age. Untuk bantuan dalam memigrasikan beban kerja modern Anda ke AWS, mengintegrasikannya dengan layanan AWS, dan memindahkannya ke produksi, hubungi manajer akun AWS Anda atau isi formulir AWS Professional Services.

Prasyarat dan batasan

Prasyarat

  • Contoh aplikasi Blu Age dalam wadah yang disediakan oleh beban kerja mainframe Containerize yang telah dimodernisasi oleh pola Blu Age. Aplikasi sampel menyediakan logika untuk menangani pemrosesan input dan output untuk aplikasi modern, dan dapat berintegrasi dengan arsitektur ini.

  • Terraform diperlukan untuk menyebarkan sumber daya ini.

Batasan

  • Amazon Elastic Container Service (Amazon ECS) membatasi sumber daya tugas yang dapat disediakan untuk wadah. Sumber daya ini termasuk CPU, RAM, dan penyimpanan. Misalnya, saat menggunakan Amazon ECS dengan AWS Fargate, batas sumber daya tugas berlaku.

Versi produk

Solusi ini diuji dengan versi berikut:

  • Terraform 1.3.6

  • Penyedia AWS Terraform 4.46.0

Arsitektur

Tumpukan teknologi sumber

  • Usia Blu

  • Terraform

Tumpukan teknologi target

  • Edisi yang Kompatibel dengan Amazon Aurora PostgreSQL

  • AWS Backup

  • Amazon Elastic Container Registry (Amazon ECR)

  • Amazon ECS

  • AWS Identity and Access Management Service (IAM)

  • Server Manajemen Kunci AWS (AWS KMS)

  • AWS Secrets Manager

  • Amazon Simple Notification Service (Amazon SNS)

  • Amazon Simple Storage Service (Amazon S3)

  • AWS Step Functions

  • AWS Systems Manager

Arsitektur target

Diagram berikut menunjukkan arsitektur solusi.

Deskripsi mengikuti diagram.
  1. Solusinya menerapkan peran IAM berikut:

    • Peran tugas batch

    • Peran eksekusi tugas Batch

    • Peran tugas layanan

    • Peran eksekusi tugas layanan

    • Peran Step Functions

    • Peran AWS Backup

    • Peran Pemantauan yang Ditingkatkan RDS.

    Peran sesuai dengan prinsip akses yang paling tidak memiliki hak istimewa.

  2. Amazon ECR digunakan untuk menyimpan gambar kontainer yang diatur oleh pola ini.

  3. AWS Systems Manager Parameter Store menyediakan data konfigurasi tentang setiap lingkungan ke definisi tugas Amazon ECS saat runtime.

  4. AWS Secrets Manager menyediakan data konfigurasi sensitif tentang lingkungan ke definisi tugas Amazon ECS saat runtime. Data telah dienkripsi oleh AWS KMS.

  5. Modul Terraform membuat definisi tugas Amazon ECS untuk semua tugas real-time dan batch.

  6. Amazon ECS menjalankan tugas batch dengan menggunakan AWS Fargate sebagai mesin komputasi. Ini adalah tugas berumur pendek, dimulai seperti yang dipersyaratkan oleh AWS Step Functions.

  7. Amazon Aurora PostgreSQL kompatibel menyediakan database untuk mendukung aplikasi modern. Ini menggantikan database mainframe seperti IBM Db2 atau IBM IMS DB.

  8. Amazon ECS menjalankan layanan berumur panjang untuk memberikan beban kerja real-time yang dimodernisasi. Aplikasi stateless ini berjalan secara permanen dengan kontainer yang tersebar di Availability Zone.

  9. Network Load Balancer digunakan untuk memberikan akses ke beban kerja real-time. Network Load Balancer mendukung protokol sebelumnya, seperti IBM CICS. Atau, Anda dapat menggunakan Application Load Balancer dengan beban kerja berbasis HTTP.

  10. Amazon S3 menyediakan penyimpanan objek untuk input dan output pekerjaan. Wadah harus menangani operasi tarik dan dorong ke Amazon S3 untuk menyiapkan direktori kerja untuk aplikasi Blu Age.

  11. Layanan AWS Step Functions digunakan untuk mengatur menjalankan tugas Amazon ECS untuk memproses beban kerja batch.

  12. Topik SNS untuk setiap beban kerja batch digunakan untuk mengintegrasikan aplikasi modern dengan sistem lain, seperti email, atau untuk memulai tindakan tambahan, seperti mengirimkan objek keluaran dari Amazon S3 ke FTP.

catatan

Secara default, solusinya tidak memiliki akses ke internet. Pola ini mengasumsikan bahwa virtual private cloud (VPC) akan terhubung ke jaringan lain menggunakan layanan seperti AWS Transit Gateway. Dengan demikian, beberapa titik akhir VPC antarmuka digunakan untuk memberikan akses ke layanan AWS yang digunakan oleh solusi. Untuk mengaktifkan akses internet langsung, Anda dapat menggunakan sakelar di modul Terraform untuk mengganti titik akhir VPC dengan gateway internet dan sumber daya terkait.

Otomatisasi dan skala

Penggunaan sumber daya tanpa server di seluruh pola ini membantu memastikan bahwa, dengan memperkecil, ada beberapa batasan pada skala desain ini. Ini mengurangi kekhawatiran tetangga yang bising, seperti persaingan untuk sumber daya komputasi yang mungkin dialami pada mainframe asli. Batch task dapat dijadwalkan untuk berjalan secara bersamaan sesuai kebutuhan.

Wadah individu dibatasi oleh ukuran maksimum yang didukung oleh Fargate. Untuk informasi selengkapnya, lihat bagian CPU tugas dan memori di dokumentasi Amazon ECS.

Untuk menskalakan beban kerja real-time secara horizontal, Anda dapat menambahkan kontainer.

Alat

Layanan AWS

Layanan lainnya

  • HashiCorp Terraform adalah alat infrastruktur sebagai kode (IAc) yang membantu Anda menggunakan kode untuk menyediakan dan mengelola infrastruktur dan sumber daya cloud. Pola ini menggunakan Terraform untuk membuat arsitektur sampel.

Repositori kode

Kode sumber untuk pola ini tersedia di repositori GitHub Blu Age Sample ECS Infrastructure (Terraform).

Praktik terbaik

  • Untuk lingkungan pengujian, gunakan fitur seperti forceDate opsi untuk mengonfigurasi aplikasi modern untuk menghasilkan hasil pengujian yang konsisten dengan selalu berjalan untuk jangka waktu yang diketahui.

  • Sesuaikan setiap tugas satu per satu untuk mengkonsumsi jumlah sumber daya yang optimal. Anda dapat menggunakan Amazon CloudWatch Container Insights untuk mendapatkan panduan tentang potensi kemacetan.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning kode sumber solusi.

Kloning kode solusi dari GitHub proyek.

DevOps insinyur

Bootstrap lingkungan dengan menerapkan sumber daya untuk menyimpan status Terraform.

  1. Buka jendela terminal, dan konfirmasikan bahwa Terraform diinstal dan AWS kredensialnya tersedia.

  2. Arahkan ke bootstrap-terraform folder.

  3. Edit file main.tf jika Anda ingin mengubah nama bucket S3 (<accountId>-terraform-backend) dan tabel Amazon terraform-lock DynamoDB ().

  4. Jalankan terraform apply perintah untuk menyebarkan sumber daya. Catat bucket S3 dan nama tabel DynamoDB.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Tinjau dan perbarui konfigurasi Terraform.

Di direktori root, buka file main.tf, tinjau isinya, dan pertimbangkan untuk melakukan pembaruan berikut:

  1. Perbarui Wilayah AWS dengan mencari dan mengganti string eu-west-1 dengan Wilayah yang diinginkan yang ingin Anda gunakan.

  2. Perbarui nama bucket di Terraform Backend blok jika default diubah dalam epik sebelumnya.

  3. Perbarui dynamodb_table nilai jika default diubah dalam epik sebelumnya.

  4. Perbarui nilai stack_prefix variabel ke string yang Anda inginkan. String ini akan ditambahkan ke nama semua sumber daya yang dibuat oleh pola ini.

  5. Perbarui nilai vpc_cidr Ini harus setidaknya rentang /24 alamat.

  6. Tinjau Locals bagian ini. Ini digunakan untuk mendefinisikan tugas Zaman Blu yang akan digunakan. Solusinya akan mengulangi objek daftarbluage_batch_modules, membuat sumber daya terkait (mesin status Step Functions, definisi tugas, dan topik SNS) untuk setiap elemen daftar. Dalam beberapa kasus, Anda mungkin ingin menyesuaikan variabel untuk lingkungan yang berbeda. Misalnya, untuk memaksa runtime di lingkungan pengujian, Anda dapat mengubah nilai force_execution_time variabel.

  7. Untuk mengaktifkan akses internet, ubah nilai direct_internet_access_required dari false ketrue. Ini akan menyebarkan gateway internet, bersama dengan gateway NAT dan tabel rute yang mengaktifkan akses internet publik untuk infrastruktur. Secara default, solusinya akan menyebarkan titik akhir VPC antarmuka ke VPC tanpa akses internet langsung.

  8. Untuk memberikan akses ke beban kerja client-server yang dilayani melalui Elastic Load Balancing, perbarui nilai additional_nlb_igress_cidrs dengan jaringan CIDR yang seharusnya diizinkan.

DevOps insinyur

Terapkan file Terraform.

Dari terminal Anda, jalankan terraform apply perintah untuk menyebarkan semua sumber daya. Tinjau perubahan yang dihasilkan oleh Terraform, dan masukkan ya untuk memulai build.

Perhatikan bahwa dibutuhkan waktu lebih dari 15 menit untuk menyebarkan infrastruktur ini.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Dorong gambar wadah Blu Age ke Amazon ECR.

Dorong wadah ke repositori Amazon ECR yang Anda buat di epik sebelumnya. Untuk petunjuk, lihat dokumentasi Amazon ECR.

Buat catatan URI gambar kontainer.

DevOps insinyur

Perbarui Terraform untuk mereferensikan gambar wadah Blu Age.

Perbarui file main.tf untuk mereferensikan gambar kontainer yang Anda unggah.

DevOps insinyur

Menerapkan ulang file Terraform.

Dari terminal Anda, jalankan terraform apply untuk menyebarkan semua sumber daya. Tinjau pembaruan yang disarankan dari Terraform, lalu masukkan ya untuk melanjutkan penerapan.

DevOps insinyur

Sumber daya terkait