Bagaimana AWS Proton ketentuan infrastruktur - AWS Proton

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

Bagaimana AWS Proton ketentuan infrastruktur

AWS Proton dapat menyediakan infrastruktur dengan salah satu dari beberapa cara:

  • AWS-managed provisioning — AWS Proton memanggil mesin penyediaan atas nama Anda. Metode ini hanya mendukung bundel AWS CloudFormation template. Untuk informasi selengkapnya, lihat AWS CloudFormation File iAc.

  • CodeBuild provisioning — AWS Proton digunakan AWS CodeBuild untuk menjalankan perintah shell yang Anda berikan. Perintah Anda dapat membaca input yang AWS Proton menyediakan, dan bertanggung jawab untuk penyediaan atau deprovisioning infrastruktur dan menghasilkan nilai output. Bundel template untuk metode ini menyertakan perintah Anda dalam file manifes dan program, skrip, atau file lain yang mungkin diperlukan oleh perintah ini.

    Sebagai contoh untuk menggunakan CodeBuild penyediaan, Anda dapat menyertakan kode yang menggunakan AWS sumber daya AWS Cloud Development Kit (AWS CDK) untuk menyediakan, dan manifes yang menginstal CDK dan menjalankan kode CDK Anda.

    Untuk informasi selengkapnya, lihat CodeBuild bundel templat penyediaan.

    catatan

    Anda dapat menggunakan CodeBuild penyediaan dengan lingkungan dan layanan. Saat ini Anda tidak dapat menyediakan komponen dengan cara ini.

  • Penyediaan yang dikelola sendiri — AWS Proton mengeluarkan permintaan tarik (PR) ke repositori yang Anda sediakan, tempat sistem penyebaran infrastruktur Anda sendiri menjalankan proses penyediaan. Metode ini hanya mendukung bundel template Terraform. Untuk informasi selengkapnya, lihat File Terraform IAc.

AWS Proton menentukan dan menetapkan metode penyediaan untuk setiap lingkungan dan layanan secara terpisah. Saat Anda membuat atau memperbarui lingkungan atau layanan, AWS Proton periksa bundel templat yang Anda berikan, dan tentukan metode penyediaan yang ditunjukkan oleh bundel templat. Pada tingkat lingkungan, Anda memberikan parameter yang mungkin dibutuhkan lingkungan dan layanan potensial untuk metode penyediaannya—AWS Identity and Access Management (IAM) peran, koneksi akun lingkungan, atau repositori infrastruktur.

Pengembang yang menggunakan AWS Proton untuk menyediakan layanan memiliki pengalaman yang sama terlepas dari metode penyediaan. Pengembang tidak perlu mengetahui metode penyediaan dan tidak perlu mengubah apa pun dalam proses penyediaan layanan. Templat layanan menetapkan metode penyediaan, dan setiap lingkungan yang digunakan pengembang layanan untuk menyediakan parameter yang diperlukan untuk penyediaan instance layanan.

Diagram berikut merangkum beberapa ciri utama dari metode penyediaan yang berbeda. Bagian yang mengikuti tabel memberikan rincian tentang setiap metode.

Metode penyediaan Template Disediakan oleh Status dilacak oleh

AWS-dikelola

manifes, skema, file IAc () CloudFormation

AWS Proton (melalui CloudFormation)

AWS Proton (melalui CloudFormation)

CodeBuild

manifes (dengan perintah), skema, dependensi perintah (misalnya kode) AWS CDK

AWS Proton (melalui CodeBuild)

AWS Proton (perintah Anda mengembalikan status melalui CodeBuild)

dikelola sendiri

manifes, skema, file IAc (Terraform)

Kode Anda (melalui tindakan Git)

Kode Anda (diteruskan AWS melalui panggilan API)

Cara kerja AWS-managed provisioning

Ketika lingkungan atau layanan menggunakan AWS-managed provisioning, infrastruktur disediakan sebagai berikut:

  1. AWS Proton Pelanggan (administrator atau pengembang) menciptakan AWS Proton sumber daya (lingkungan atau layanan). Pelanggan memilih templat untuk sumber daya dan menyediakan parameter yang diperlukan. Untuk informasi lebih lanjut, lihat bagian berikut,Pertimbangan untuk penyediaan AWS-managed.

  2. AWS Proton membuat AWS CloudFormation template lengkap untuk menyediakan sumber daya.

  3. AWS Proton panggilan AWS CloudFormation untuk memulai penyediaan menggunakan template yang dirender.

  4. AWS Proton terus memantau AWS CloudFormation penyebaran.

  5. Saat penyediaan selesai, AWS Proton laporkan kembali kesalahan jika terjadi kegagalan, dan menangkap output penyediaan, seperti ID VPC Amazon, jika berhasil.

Diagram berikut menunjukkan bahwa AWS Proton menangani sebagian besar langkah-langkah ini secara langsung.

Diagram yang menggambarkan AWS-managed provisioning di AWS Proton

Pertimbangan untuk penyediaan AWS-managed

  • Peran penyediaan infrastruktur — Ketika lingkungan atau salah satu instance layanan yang berjalan di dalamnya mungkin menggunakan AWS-managed provisioning, administrator perlu mengonfigurasi peran IAM (baik secara langsung atau sebagai bagian dari koneksi akun lingkungan). AWS Proton AWS Proton menggunakan peran ini untuk menyediakan infrastruktur sumber daya penyediaan AWS yang dikelola ini. Peran harus memiliki izin untuk digunakan AWS CloudFormation untuk membuat semua sumber daya yang disertakan dalam templat sumber daya ini.

    Untuk informasi selengkapnya, lihat Peran IAM dan AWS Proton Contoh kebijakan peran layanan IAM.

  • Penyediaan layanan — Saat pengembang menerapkan instance layanan yang menggunakan AWS-managed provisioning ke lingkungan, AWS Proton gunakan peran yang diberikan ke lingkungan tersebut untuk menyediakan infrastruktur untuk instance layanan. Pengembang tidak melihat peran ini dan tidak dapat mengubahnya.

  • Service with pipeline — Template layanan yang menggunakan AWS-managed provisioning dapat menyertakan definisi pipeline yang ditulis dalam skema YAMB. AWS CloudFormation AWS Proton juga membuat pipeline dengan menelepon AWS CloudFormation. Peran yang AWS Proton digunakan untuk membuat pipa terpisah dari peran untuk setiap lingkungan individu. Peran ini disediakan secara AWS Proton terpisah, hanya sekali di tingkat AWS akun, dan digunakan untuk menyediakan dan mengelola semua saluran pipa yang AWS dikelola. Peran ini harus memiliki izin untuk membuat saluran pipa dan sumber daya lain yang dibutuhkan saluran pipa Anda.

    Prosedur berikut menunjukkan bagaimana memberikan peran pipa ke AWS Proton.

    AWS Proton console
    Untuk memberikan peran pipa
    1. Di AWS Proton konsol, pada panel navigasi, pilih Pengaturan > Pengaturan akun, lalu pilih Konfigurasi.

    2. Gunakan bagian Pipeline AWS-managed role untuk mengonfigurasi peran pipeline baru atau yang sudah ada untuk penyediaan AWS-managed.

    AWS Proton API
    Untuk memberikan peran pipa
    1. Gunakan tindakan UpdateAccountSettingsAPI.

    2. Berikan Nama Sumber Daya Amazon (ARN) peran layanan pipeline Anda dalam parameter. pipelineServiceRoleArn

    AWS CLI

    Untuk memberikan peran pipa

    Jalankan perintah berikut:

    $ aws proton update-account-settings \ --pipeline-service-role-arn \ "arn:aws:iam::123456789012:role/my-pipeline-role"

Cara CodeBuild kerja penyediaan

Ketika lingkungan atau layanan menggunakan CodeBuild penyediaan, infrastruktur disediakan sebagai berikut:

  1. AWS Proton Pelanggan (administrator atau pengembang) menciptakan AWS Proton sumber daya (lingkungan atau layanan). Pelanggan memilih templat untuk sumber daya dan menyediakan parameter yang diperlukan. Untuk informasi lebih lanjut, lihat bagian berikut,Pertimbangan untuk penyediaan CodeBuild .

  2. AWS Proton merender file input dengan nilai parameter masukan untuk penyediaan sumber daya.

  3. AWS Proton panggilan CodeBuild untuk memulai pekerjaan. CodeBuild Pekerjaan menjalankan perintah shell pelanggan yang ditentukan dalam template. Perintah ini menyediakan infrastruktur yang diinginkan, sementara secara opsional membaca nilai input.

  4. Saat penyediaan selesai, perintah pelanggan akhir mengembalikan status penyediaan CodeBuild dan memanggil tindakan NotifyResourceDeploymentStatusChange AWS Proton API untuk memberikan output, seperti ID VPC Amazon, jika ada.

    penting

    Pastikan bahwa perintah Anda mengembalikan status penyediaan dengan benar CodeBuild dan memberikan output. Jika tidak, tidak AWS Proton dapat melacak status penyediaan dengan benar dan tidak dapat memberikan output yang benar ke instance layanan.

Diagram berikut menggambarkan langkah-langkah yang AWS Proton dilakukan dan langkah-langkah yang dilakukan perintah Anda dalam suatu CodeBuild pekerjaan.

Diagram yang menggambarkan penyediaan CodeBuild berbasis di AWS Proton

Pertimbangan untuk penyediaan CodeBuild

  • Peran penyediaan infrastruktur - Ketika lingkungan atau salah satu instance layanan yang berjalan di dalamnya mungkin menggunakan penyediaan CodeBuild berbasis, administrator perlu mengonfigurasi peran IAM (baik secara langsung atau sebagai bagian dari koneksi akun lingkungan). AWS Proton AWS Proton menggunakan peran ini untuk menyediakan infrastruktur sumber daya CodeBuild penyediaan ini. Peran harus memiliki izin untuk digunakan CodeBuild untuk membuat semua sumber daya yang Anda perintahkan dalam templat penyediaan sumber daya ini.

    Untuk informasi selengkapnya, lihat Peran IAM dan AWS Proton Contoh kebijakan peran layanan IAM.

  • Penyediaan layanan — Saat pengembang menerapkan instance layanan yang menggunakan CodeBuild penyediaan ke lingkungan, AWS Proton gunakan peran yang disediakan ke lingkungan tersebut untuk menyediakan infrastruktur untuk instance layanan. Pengembang tidak melihat peran ini dan tidak dapat mengubahnya.

  • Service with pipeline — Template layanan yang menggunakan CodeBuild provisioning dapat menyertakan perintah untuk menyediakan pipeline. AWS Proton juga membuat pipeline dengan menelepon CodeBuild. Peran yang AWS Proton digunakan untuk membuat pipa terpisah dari peran untuk setiap lingkungan individu. Peran ini disediakan secara AWS Proton terpisah, hanya sekali di tingkat AWS akun, dan digunakan untuk menyediakan dan mengelola semua pipeline CodeBuild berbasis. Peran ini harus memiliki izin untuk membuat saluran pipa dan sumber daya lain yang dibutuhkan saluran pipa Anda.

    Prosedur berikut menunjukkan bagaimana memberikan peran pipa ke AWS Proton.

    AWS Proton console
    Untuk memberikan peran pipa
    1. Di AWS Proton konsol, pada panel navigasi, pilih Pengaturan > Pengaturan akun, lalu pilih Konfigurasi.

    2. Gunakan bagian peran penyediaan pipeline Codebuild untuk mengonfigurasi peran pipeline baru atau yang sudah ada untuk penyediaan. CodeBuild

    AWS Proton API
    Untuk memberikan peran pipa
    1. Gunakan tindakan UpdateAccountSettingsAPI.

    2. Berikan Nama Sumber Daya Amazon (ARN) peran layanan pipeline Anda dalam parameter. pipelineCodebuildRoleArn

    AWS CLI

    Untuk memberikan peran pipa

    Jalankan perintah berikut:

    $ aws proton update-account-settings \ --pipeline-codebuild-role-arn \ "arn:aws:iam::123456789012:role/my-pipeline-role"

Cara kerja penyediaan yang dikelola sendiri

Ketika lingkungan dikonfigurasi untuk menggunakan penyediaan yang dikelola sendiri, infrastruktur disediakan sebagai berikut:

  1. AWS Proton Pelanggan (administrator atau pengembang) menciptakan AWS Proton sumber daya (lingkungan atau layanan). Pelanggan memilih templat untuk sumber daya dan menyediakan parameter yang diperlukan. Untuk lingkungan, pelanggan juga menyediakan repositori infrastruktur terkait. Untuk informasi lebih lanjut, lihat bagian berikut,Pertimbangan untuk penyediaan yang dikelola sendiri.

  2. AWS Proton membuat template Terraform lengkap. Ini terdiri dari satu atau lebih file Terraform, berpotensi dalam beberapa folder, dan file .tfvars variabel. AWS Proton menulis nilai parameter yang disediakan pada panggilan pembuatan sumber daya ke dalam file variabel ini.

  3. AWS Proton mengirimkan PR ke repositori infrastruktur dengan template Terraform yang dirender.

  4. Saat pelanggan (administrator atau pengembang) menggabungkan PR, otomatisasi pelanggan memicu mesin penyediaan untuk memulai penyediaan infrastruktur menggunakan templat gabungan.

    catatan

    Jika pelanggan (administrator atau pengembang) menutup PR, AWS Proton mengenali PR sebagai tertutup dan menandai penerapan sebagai dibatalkan.

  5. Saat penyediaan selesai, otomatisasi pelanggan akan memanggil tindakan NotifyResourceDeploymentStatusChange AWS Proton API untuk menunjukkan penyelesaian, memberikan status (berhasil atau gagal), dan memberikan output, seperti ID VPC Amazon, jika ada.

    penting

    Pastikan kode otomatisasi Anda memanggil kembali AWS Proton dengan status penyediaan dan output. Jika tidak, AWS Proton mungkin menganggap penyediaan sebagai tertunda lebih lama dari yang seharusnya, dan terus tampilkan status Dalam proses.

Diagram berikut menggambarkan langkah-langkah yang AWS Proton dilakukan dan langkah-langkah yang dilakukan oleh sistem penyediaan Anda sendiri.

Diagram yang menggambarkan penyediaan yang dikelola sendiri di AWS Proton

Pertimbangan untuk penyediaan yang dikelola sendiri

  • Repositori infrastruktur — Ketika administrator mengonfigurasi lingkungan untuk penyediaan yang dikelola sendiri, mereka perlu menyediakan repositori infrastruktur yang ditautkan. AWS Proton mengirimkan PRs ke repositori ini untuk menyediakan infrastruktur lingkungan dan semua instance layanan yang digunakan untuk itu. Tindakan otomatisasi milik pelanggan di repositori harus mengambil peran IAM dengan izin untuk membuat semua sumber daya yang disertakan dalam templat lingkungan dan layanan Anda, dan identitas yang mencerminkan akun tujuan. AWS Untuk contoh GitHub Tindakan yang mengasumsikan peran, lihat Mengasumsikan Peran dalam dokumentasi Tindakan Untuk Tindakan “Konfigurasi AWS Kredensial”. GitHub

  • Izin - Kode penyediaan Anda harus mengautentikasi dengan akun seperlunya (misalnya, mengautentikasi ke AWS akun) dan memberikan otorisasi penyediaan sumber daya (misalnya, memberikan peran).

  • Penyediaan layanan — Saat pengembang menerapkan instance layanan yang menggunakan penyediaan yang dikelola sendiri ke lingkungan, AWS Proton mengirimkan PR ke repositori yang terkait dengan lingkungan untuk menyediakan infrastruktur untuk instance layanan. Pengembang tidak melihat repositori dan tidak dapat mengubahnya.

    catatan

    Pengembang yang membuat layanan menggunakan proses yang sama terlepas dari metode penyediaan, dan perbedaannya diabstraksikan dari mereka. Namun, dengan penyediaan yang dikelola sendiri, pengembang mungkin mengalami respons yang lebih lambat, karena mereka perlu menunggu sampai seseorang (yang mungkin bukan diri mereka sendiri) menggabungkan PR dalam repositori infrastruktur sebelum penyediaan dapat dimulai.

  • Layanan dengan pipa — Templat layanan untuk lingkungan dengan penyediaan yang dikelola sendiri dapat mencakup definisi pipa (misalnya, AWS CodePipeline pipa), yang ditulis dalam Terraform HCL. AWS Proton Untuk mengaktifkan penyediaan pipeline ini, administrator menyediakan repositori pipeline tertaut ke. AWS Proton Saat menyediakan pipeline, tindakan otomatisasi milik pelanggan di repositori harus mengambil peran IAM dengan izin untuk menyediakan pipeline, dan identitas yang mencerminkan akun tujuan. AWS Repositori dan peran pipa terpisah dari yang digunakan untuk setiap lingkungan individu. Repositori tertaut disediakan secara AWS Proton terpisah, hanya sekali di tingkat AWS akun, dan digunakan untuk menyediakan dan mengelola semua pipeline. Peran tersebut harus memiliki izin untuk membuat saluran pipa dan sumber daya lain yang dibutuhkan saluran pipa Anda.

    Prosedur berikut menunjukkan bagaimana menyediakan repositori dan peran pipa. AWS Proton

    AWS Proton console
    Untuk memberikan peran pipa
    1. Di AWS Proton konsol, pada panel navigasi, pilih Pengaturan > Pengaturan akun, lalu pilih Konfigurasi.

    2. Gunakan bagian repositori pipa CI/CD untuk mengonfigurasi tautan repositori baru atau yang sudah ada.

    AWS Proton API
    Untuk memberikan peran pipa
    1. Gunakan tindakan UpdateAccountSettingsAPI.

    2. Berikan penyedia, nama, dan cabang repositori pipeline Anda dalam parameter. pipelineProvisioningRepository

    AWS CLI

    Untuk memberikan peran pipa

    Jalankan perintah berikut:

    $ aws proton update-account-settings \ --pipeline-provisioning-repository \ "provider=GITHUB,name=my-pipeline-repo-name,branch=my-branch"
  • Penghapusan sumber daya yang disediakan sendiri — Modul Terraform dapat mencakup elemen konfigurasi yang diperlukan untuk operasi Terraform, selain definisi sumber daya. Oleh karena itu, tidak AWS Proton dapat menghapus semua file Terraform untuk lingkungan atau instance layanan. Sebagai gantinya, AWS Proton tandai file untuk dihapus dan perbarui bendera di metadata PR. Otomatisasi Anda dapat membaca flag itu dan menggunakannya untuk memicu perintah terraform destroy.