

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

# Memusatkan distribusi paket perangkat lunak di AWS Organizations dengan menggunakan Terraform
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform"></a>

*Pradip Kumar Pandey, Chintamani Aphale, T.V.R.L.Phani Kumar Dadi, Pratap Kumar Nanda, Aarti Rajput, dan Mayuri Shinde, Amazon Web Services*

## Ringkasan
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-summary"></a>

Perusahaan sering mempertahankan beberapa Akun AWS yang tersebar Wilayah AWS di beberapa untuk menciptakan penghalang isolasi yang kuat antara beban kerja. [Agar tetap aman dan patuh, tim administrasi mereka memasang alat berbasis agen seperti [CrowdStrike](https://www.crowdstrike.com/falcon-platform/),, atau [TrendMicro](https://www.trendmicro.com/en_sg/business.html)alat untuk pemindaian keamanan [SentinelOne](https://www.sentinelone.com/platform/), dan [ CloudWatch agen Amazon, Agen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)[Datadog, atau agen](https://www.datadoghq.com/) untuk pemantauan. AppDynamics ](https://www.appdynamics.com/product/how-it-works/agents-and-controller) Tim-tim ini sering menghadapi tantangan ketika mereka ingin mengotomatiskan manajemen dan distribusi paket perangkat lunak secara terpusat di seluruh lanskap besar ini.

[Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html), kemampuan [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html), mengotomatiskan proses pengemasan dan penerbitan perangkat lunak ke instans Microsoft Windows dan Linux yang dikelola di seluruh cloud dan server lokal melalui satu antarmuka yang disederhanakan. Pola ini menunjukkan bagaimana Anda dapat menggunakan Terraform untuk lebih menyederhanakan proses pengelolaan instalasi perangkat lunak dan menjalankan skrip di sejumlah besar instance dan akun anggota di dalamnya dengan sedikit usaha. AWS Organizations 

Solusi ini berfungsi untuk instans Amazon, Linux, dan Windows yang dikelola oleh Systems Manager.

## Prasyarat dan batasan
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-prereqs"></a>
+ [Paket Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-create.html) yang memiliki perangkat lunak yang akan diinstal
+ [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) versi 0.15.0 atau yang lebih baru
+ Instans Amazon Elastic Compute Cloud (Amazon EC2) yang [dikelola oleh Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/managed_instances.html) dan memiliki [izin dasar untuk mengakses Amazon Simple Storage Service (Amazon S3](https://repost.aws/knowledge-center/ec2-instance-access-s3-bucket)) di akun target
+ Sebuah landing zone untuk organisasi Anda yang disiapkan dengan menggunakan [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)
+ (Opsional) [Account Factory untuk Terraform (](https://catalog.workshops.aws/control-tower/en-US/customization/aft)AFT)

## Arsitektur
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-architecture"></a>

**Detail sumber daya**

Pola ini menggunakan [Account Factory for Terraform (AFT)](https://catalog.workshops.aws/control-tower/en-US/customization/aft) untuk membuat semua AWS sumber daya yang diperlukan dan pipeline kode untuk menyebarkan sumber daya di akun penerapan. Pipeline kode berjalan di dua repositori:
+ **Kustomisasi global** berisi kode Terraform yang akan berjalan di semua akun yang terdaftar di AFT.
+ **Kustomisasi akun** berisi kode Terraform yang akan berjalan di akun penerapan.

Anda juga dapat menerapkan solusi ini tanpa menggunakan AFT, dengan menjalankan perintah [Terraform](https://developer.hashicorp.com/terraform/intro) di folder penyesuaian akun.

Kode Terraform menerapkan sumber daya berikut:
+ AWS Identity and Access Management (IAM) peran dan kebijakan
  + [SystemsManager- AutomationExecutionRole](https://docs.aws.amazon.com/systems-manager/latest/userguide/running-automations-multiple-accounts-regions.html) memberikan izin pengguna untuk menjalankan otomatisasi di akun target.
  + [SystemsManager- AutomationAdministrationRole](https://docs.aws.amazon.com/systems-manager/latest/userguide/running-automations-multiple-accounts-regions.html) memberikan izin pengguna untuk menjalankan otomatisasi di beberapa akun dan unit organisasi (). OUs
+ File terkompresi dan manifest.json untuk paket
  + Di Systems Manager, sebuah [paket](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-create.html) mencakup setidaknya satu file.zip perangkat lunak atau aset yang dapat diinstal.
  + Manifes JSON menyertakan pointer ke file kode paket Anda.
+ Bucket S3
  + Paket terdistribusi yang dibagikan di seluruh organisasi disimpan dengan aman di bucket Amazon S3.
+ AWS Systems Manager dokumen (dokumen SSM)
  + `DistributeSoftwarePackage`berisi logika untuk mendistribusikan paket perangkat lunak ke setiap instance target di akun anggota.
  + `AddSoftwarePackageToDistributor`berisi logika untuk mengemas aset perangkat lunak yang dapat diinstal dan menambahkannya ke Otomasi, kemampuan. AWS Systems Manager
+ Asosiasi Systems Manager
  + Asosiasi Systems Manager digunakan untuk menyebarkan solusi.

**Arsitektur dan alur kerja**

![\[Diagram arsitektur untuk memusatkan distribusi paket perangkat lunak di AWS Organizations\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/da584449-e12b-4878-a61d-00d8cea3d3d7/images/2718f2c4-f816-4e34-89b8-8182c128e6db.png)


Diagram ini menggambarkan langkah-langkah berikut:

1. Untuk menjalankan solusi dari akun terpusat, Anda mengunggah paket atau perangkat lunak Anda bersama dengan langkah-langkah penerapan ke bucket S3.

1. Paket kustom Anda akan tersedia di bagian [Dokumen](https://ap-southeast-2.console.aws.amazon.com/systems-manager/documents?region=ap-southeast-2) konsol Systems Manager, di tab **Dimiliki oleh saya**.

1. State Manager, kemampuan Systems Manager, membuat, menjadwalkan, dan menjalankan asosiasi untuk paket di seluruh organisasi. Asosiasi menentukan bahwa paket perangkat lunak harus diinstal dan berjalan pada node terkelola sebelum dapat diinstal pada node target.

1. Asosiasi menginstruksikan Systems Manager untuk menginstal paket pada node target.

1. Untuk penginstalan atau perubahan berikutnya, pengguna dapat menjalankan asosiasi yang sama secara berkala atau manual dari satu lokasi untuk melakukan penerapan di seluruh akun.

1. Di akun anggota, Automation mengirimkan perintah deployment ke Distributor.

1. Distributor mendistribusikan paket perangkat lunak di seluruh instance.

Solusi ini menggunakan akun manajemen di dalamnya AWS Organizations, tetapi Anda juga dapat menunjuk akun (administrator yang didelegasikan) untuk mengelola ini atas nama organisasi.

## Alat
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-tools"></a>

**Layanan AWS**
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data. Pola ini menggunakan Amazon S3 untuk memusatkan dan menyimpan paket terdistribusi dengan aman.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)membantu Anda mengelola aplikasi dan infrastruktur yang berjalan di AWS Cloud. Ini menyederhanakan aplikasi dan manajemen sumber daya, mempersingkat waktu untuk mendeteksi dan menyelesaikan masalah operasional, dan membantu Anda mengelola AWS sumber daya Anda dengan aman dalam skala besar. Pola ini menggunakan kemampuan Systems Manager berikut:
  + [Distributor](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) membantu Anda mengemas dan mempublikasikan perangkat lunak ke instans yang dikelola Systems Manager.
  + [Otomasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) menyederhanakan tugas pemeliharaan, penyebaran, dan remediasi umum untuk banyak layanan. AWS 
  + [Documents](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents.html) melakukan tindakan pada instans terkelola Systems Manager di seluruh organisasi dan akun Anda.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)adalah layanan manajemen akun yang membantu Anda mengkonsolidasikan beberapa AWS akun ke dalam organisasi yang Anda buat dan kelola secara terpusat.

**Alat-alat lainnya**
+ [Terraform](https://www.terraform.io/) adalah alat infrastruktur sebagai kode (IAc) HashiCorp yang membantu Anda membuat dan mengelola sumber daya cloud dan lokal.

**Repositori kode**

Instruksi dan kode untuk pola ini tersedia di repositori [distribusi paket GitHub Terpusat](https://github.com/aws-samples/aws-organization-centralised-package-distribution).

## Praktik terbaik
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-best-practices"></a>
+ Untuk menetapkan tag ke asosiasi, gunakan [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) atau. [Alat AWS untuk PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-welcome.html) Menambahkan tag ke asosiasi menggunakan konsol Systems Manager tidak didukung. Untuk informasi selengkapnya, lihat [Menandai sumber daya Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/tagging-resources.html) di dokumentasi Systems Manager.
+ Untuk menjalankan asosiasi dengan menggunakan versi baru dokumen yang dibagikan dari akun lain, setel versi dokumen ke`default`.
+ Untuk menandai hanya node target, gunakan satu kunci tag. Jika Anda ingin menargetkan node Anda dengan menggunakan beberapa kunci tag, gunakan opsi grup sumber daya.

## Epik
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-epics"></a>

### Konfigurasikan file sumber dan akun
<a name="configure-source-files-and-accounts"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps insinyur | 
| Perbarui variabel global. | Perbarui parameter input berikut dalam `global-customization/variables.tf` file. Variabel ini berlaku untuk semua akun yang dibuat dan dikelola oleh AFT.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps insinyur | 
| Perbarui variabel akun. | Perbarui parameter input berikut dalam `account-customization/variables.tf` file. Variabel ini hanya berlaku untuk akun tertentu yang dibuat dan dikelola oleh AFT.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps insinyur | 

### Kustomisasi parameter dan file penyebaran
<a name="customize-parameters-and-deployment-files"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Perbarui parameter input untuk asosiasi Manajer Negara. | Perbarui parameter input berikut dalam `account-customization/association.tf` file untuk menentukan status yang ingin Anda pertahankan pada instance Anda. Anda dapat menggunakan nilai parameter default jika mereka mendukung kasus penggunaan Anda.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps insinyur | 
| Siapkan file terkompresi dan `manifest.json` file untuk paket. | Pola ini menyediakan contoh file PowerShell yang dapat diinstal (.msi untuk Windows dan.rpm untuk Linux) dengan skrip instal dan hapus instalan di folder. `account-customization/package`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps insinyur | 

### Jalankan perintah Terraform untuk menyediakan sumber daya
<a name="run-terraform-commands-to-provision-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Inisialisasi konfigurasi Terraform. | Untuk menerapkan solusi secara otomatis dengan AFT, tekan kode ke AWS CodeCommit:<pre>$ git add *<br />$ git commit -m "message"<br />$ git push</pre>Anda juga dapat menerapkan solusi ini tanpa menggunakan AFT dengan menjalankan perintah Terraform dari folder. `account-customization` Untuk menginisialisasi direktori kerja yang berisi file Terraform, jalankan:<pre>$ terraform init</pre> | DevOps insinyur | 
| Pratinjau perubahan. | Untuk melihat pratinjau perubahan yang akan dilakukan Terraform pada infrastruktur, jalankan perintah:<pre>$ terraform plan</pre>Perintah ini mengevaluasi konfigurasi Terraform untuk menentukan status sumber daya yang diinginkan yang telah dideklarasikan. Ini juga membandingkan keadaan yang diinginkan dengan infrastruktur aktual untuk penyediaan di dalam ruang kerja. | DevOps insinyur | 
| Terapkan perubahan. | Jalankan perintah berikut untuk mengimplementasikan perubahan yang Anda buat pada `variables.tf` file:<pre>$ terraform apply</pre> | DevOps insinyur | 

### Validasi sumber daya
<a name="validate-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Validasi pembuatan dokumen SSM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html)Anda harus melihat `DistributeSoftwarePackage` dan `AddSoftwarePackageToDistributor` paket. | DevOps insinyur | 
| Validasi keberhasilan penerapan otomatisasi. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps insinyur | 
| Validasi bahwa paket disebarkan ke instance akun anggota yang ditargetkan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/centralize-software-package-distribution-in-aws-organizations-by-using-terraform.html) | DevOps insinyur | 

## Pemecahan masalah
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Asosiasi Manajer Negara gagal atau terjebak dalam status tertunda. | Lihat [informasi pemecahan masalah](https://repost.aws/knowledge-center/ssm-state-manager-association-fail) di Pusat AWS Pengetahuan. | 
| Asosiasi terjadwal gagal dijalankan. | Spesifikasi jadwal Anda mungkin tidak valid. State Manager saat ini tidak mendukung menentukan bulan dalam ekspresi cron untuk asosiasi. Gunakan [ekspresi cron atau rate](https://docs.aws.amazon.com/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html) untuk mengonfirmasi jadwal. | 

## Sumber daya terkait
<a name="centralize-software-package-distribution-in-aws-organizations-by-using-terraform-resources"></a>
+ [Distribusi paket terpusat](https://github.com/aws-samples/aws-organization-centralised-package-distribution) (GitHub repositori)
+ [Account Factory untuk Terraform (AFT)](https://catalog.workshops.aws/control-tower/en-US/customization/aft)
+ [Kasus penggunaan dan praktik terbaik](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-best-practices.html) (AWS Systems Manager dokumentasi)