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 Protondapat 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.

  • CodeBuildprovisioning — 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 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. Pada saat ini Anda tidak dapat menyediakan komponen dengan cara ini.

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

AWS Protonmenentukan dan menetapkan metode penyediaan untuk setiap lingkungan dan layanan secara terpisah. Saat Anda membuat atau memperbarui lingkungan atau layanan, AWS Proton periksa bundel template yang Anda berikan, dan tentukan metode penyediaan yang ditunjukkan oleh bundel cetakan. Di tingkat lingkungan, Anda memberikan parameter yang mungkin diperlukan lingkungan dan layanan potensinya untuk peran metode penyediaan - AWS Identity and Access Management (IAM), 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 menyadari metode penyediaan dan tidak perlu mengubah apa pun dalam proses penyediaan layanan. Template layanan menetapkan metode penyediaan, dan setiap lingkungan yang pengembang menerapkan layanan untuk menyediakan parameter yang diperlukan untuk penyediaan instans layanan.

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

Metode Penyediaan metode penyediaan metode penyediaan metode penyediaan metode penyediaan Template Disediakan oleh: Status dilacak oleh

AWS-dikelola

manifes, skema, berkas iAC () CloudFormation

AWS Proton(melaluiCloudFormation)

AWS Proton(melaluiCloudFormation)

CodeBuild

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

AWS Proton(melaluiCodeBuild)

AWS Proton(perintah Anda mengembalikan status melaluiCodeBuild)

dikelola sendiri yang dikelola sendiri

manifes, skema, file iAC (Terraform)

Kode Anda (melalui tindakan Git)

Kode Anda (dilewatkan AWS melalui panggilan API)

Cara kerja AWS -managed provisioning

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

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

  2. AWS Protonmerender AWS CloudFormation template lengkap untuk penyediaan sumber daya.

  3. AWS Protonpanggilan AWS CloudFormation untuk mulai penyediaan menggunakan template yang diberikan.

  4. AWS Protonterus memonitor AWS CloudFormation penyebaran.

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

Diagram berikut menunjukkan bahwa AWS Proton mengurus 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 instans 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 Protonmenggunakan peran ini untuk menyediakan infrastruktur sumber daya penyediaan AWS -managed ini. Peran harus memiliki izin untuk digunakan AWS CloudFormation untuk membuat semua sumber daya yang disertakan oleh template sumber daya ini.

    Untuk informasi selengkapnya, lihat IAM Role dan AWS Proton IAMcontoh kebijakan peran layanan.

  • Penyediaan layanan - Saat pengembang menerapkan instance layanan yang menggunakan penyediaan AWS -managed 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 mengubah peran ini.

  • Service with pipeline - Template layanan yang menggunakan AWS -managed provisioning dapat mencakup definisi pipeline yang ditulis dalam skema YAKL. AWS CloudFormation AWS Protonjuga menciptakan pipa dengan meneleponAWS CloudFormation. Peran yang AWS Proton digunakan untuk membuat pipeline 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 AWS yang dikelola. Peran ini harus memiliki izin untuk membuat jaringan pipa dan sumber daya lain yang dibutuhkan jaringan pipa Anda.

    Prosedur berikut menunjukkan cara menyediakan peran alur untuk melakukannyaAWS Proton.

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

    2. Gunakan bagian Peran AWS yang dikelola Pipeline untuk mengonfigurasi peran pipeline baru atau yang sudah ada untuk penyediaan AWS yang dikelola.

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

    2. Menyediakan Amazon Resource Name (ARN) dari peran layanan alur Anda dalam pipelineServiceRoleArn parameter tersebut.

    AWS CLI

    Untuk menyediakan 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 ProtonPelanggan (administrator atau pengembang) menciptakan AWS Proton sumber daya (lingkungan atau layanan). Pelanggan memilih template untuk sumber daya dan menyediakan parameter yang diperlukan. Untuk informasi selengkapnya, lihat bagian berikut,Pertimbangan untuk penyediaan penyediaan penyediaan untuk penyediaan penyediaan untuk penyediaan penyediaan untuk penyediaan penyediaan CodeBuild.

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

  3. AWS Protonpanggilan CodeBuild untuk memulai pekerjaan. CodeBuildPekerjaan menjalankan perintah shell pelanggan yang ditentukan dalam template. Perintah ini menyediakan infrastruktur yang diinginkan, sementara opsional membaca nilai masukan.

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

    penting

    Pastikan 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 instans layanan.

Diagram berikut menggambarkan langkah-langkah yang AWS Proton melakukan dan langkah-langkah yang perintah Anda lakukan dalam CodeBuild pekerjaan.

Diagram yang menggambarkan penyediaan CodeBuild berbasis di AWS Proton

Pertimbangan untuk penyediaan penyediaan penyediaan untuk penyediaan penyediaan untuk penyediaan penyediaan untuk penyediaan penyediaan CodeBuild

  • Peran penyediaan infrastruktur - Ketika lingkungan atau salah satu instans 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 Protonmenggunakan peran ini untuk menyediakan infrastruktur sumber daya CodeBuild penyediaan ini. Peran harus memiliki izin untuk digunakan CodeBuild untuk membuat semua sumber daya yang perintah Anda dalam template penyediaan sumber daya ini.

    Untuk informasi selengkapnya, lihat IAM Role dan AWS Proton IAMcontoh kebijakan peran layanan.

  • Penyediaan layanan - Saat pengembang menerapkan instance layanan yang menggunakan CodeBuild penyediaan 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 mengubah peran ini.

  • Layanan dengan pipeline - Template layanan yang menggunakan CodeBuild penyediaan dapat mencakup perintah untuk menyediakan pipeline. AWS Protonjuga menciptakan pipa dengan meneleponCodeBuild. Peran yang AWS Proton digunakan untuk membuat pipeline terpisah dari peran untuk setiap lingkungan individu. Peran ini disediakan untuk AWS Proton secara terpisah, hanya sekali di tingkat AWS akun, dan digunakan untuk menyediakan dan mengelola semua pipeline CodeBuild berbasis. Peran ini harus memiliki izin untuk membuat jaringan pipa dan sumber daya lain yang dibutuhkan jaringan pipa Anda.

    Prosedur berikut menunjukkan cara menyediakan peran alur untuk melakukannyaAWS Proton.

    AWS Proton console
    Untuk menyediakan peran pipa
    1. Di AWS Protonkonsol, 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 menyediakan peran pipa
    1. Gunakan tindakan UpdateAccountSettingsAPI.

    2. Menyediakan Amazon Resource Name (ARN) dari peran layanan alur Anda dalam pipelineCodebuildRoleArn parameter tersebut.

    AWS CLI

    Untuk menyediakan 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 yang dikelola sendiri yang dikelola sendiri dengan cara

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

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

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

  3. AWS Protonmengirimkan PR ke repositori infrastruktur dengan template Terraform yang diberikan.

  4. Ketika pelanggan (administrator atau pengembang) menggabungkan PR, otomatisasi pelanggan memicu mesin penyediaan untuk mulai menyediakan infrastruktur menggunakan template gabungan.

    catatan

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

  5. Saat penyediaan selesai, otomatisasi pelanggan memanggil tindakan NotifyResourceDeploymentStatusChangeAWS ProtonAPI untuk menunjukkan penyelesaian, memberikan status (keberhasilan atau kegagalan), dan memberikan output, seperti Amazon VPC ID, jika ada.

    penting

    Pastikan kode otomatisasi Anda memanggil kembali AWS Proton dengan status penyediaan dan output. Jika tidak, AWS Proton mungkin mempertimbangkan penyediaan sebagai tertunda lebih lama dari yang seharusnya, dan terus menunjukkan status In progress.

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

Diagram yang menggambarkan penyediaan yang dikelola sendiri di AWS Proton

Pertimbangan untuk penyediaan yang dikelola sendiri yang dikelola sendiri yang dikelola sendiri.

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

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

  • Penyediaan layanan - Ketika pengembang menerapkan instans 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 disarikan dari mereka. Namun, dengan pengembang penyediaan yang dikelola sendiri mungkin mengalami respons yang lebih lambat, karena mereka harus menunggu sampai seseorang (yang mungkin bukan diri mereka sendiri) menggabungkan PR di repositori infrastruktur sebelum penyediaan dapat dimulai.

  • Layanan dengan pipeline - Template layanan untuk lingkungan dengan penyediaan yang dikelola sendiri dapat mencakup definisi pipeline (misalnya, AWS CodePipeline pipeline), yang ditulis dalam Terraform HCL. AWS ProtonUntuk mengaktifkan penyediaan pipeline ini, administrator menyediakan repositori pipeline yang terhubung ke. AWS Proton Saat menyediakan pipeline, tindakan otomatisasi milik pelanggan di repositori harus mengasumsikan peran IAM dengan izin untuk menyediakan pipeline, dan identitas yang mencerminkan akun tujuan. AWS Repositori dan peran pipeline 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 harus memiliki izin untuk membuat jaringan pipa dan sumber daya lain yang dibutuhkan jaringan pipa Anda.

    Prosedur berikut menunjukkan cara menyediakan alur dan peran untuk. AWS Proton

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

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

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

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

    AWS CLI

    Untuk menyediakan 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 dikelola 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 contoh layanan. Sebagai gantinya, AWS Proton tandai file untuk dihapus dan memperbarui bendera di metadata PR. Otomatisasi Anda dapat membaca bendera itu dan menggunakannya untuk memicu perintah terraform destroy.