

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

# Siapkan CI/CD pipeline untuk beban kerja hybrid di Amazon ECS Anywhere dengan menggunakan AWS CDK dan GitLab
<a name="set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab"></a>

*Rafael Ortiz, Amazon Web Services*

## Ringkasan
<a name="set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab-summary"></a>

Amazon ECS Anywhere adalah perpanjangan dari Amazon Elastic Container Service (Amazon ECS). Ini memberikan dukungan untuk mendaftarkan *instans eksternal*, seperti server lokal atau mesin virtual (VM), ke kluster Amazon ECS Anda. adalah fitur yang membantu mengurangi biaya dan mengurangi orkestrasi dan operasi kontainer lokal yang kompleks. Anda dapat menggunakan ECS Anywhere untuk menyebarkan dan menjalankan aplikasi kontainer di lingkungan lokal dan cloud. Ini menghilangkan kebutuhan tim Anda untuk mempelajari beberapa domain dan keahlian, atau untuk mengelola perangkat lunak yang kompleks sendiri.

Pola ini menjelaskan step-by-step pendekatan untuk menyediakan cluster Amazon ECS dengan instans Amazon ECS Anywhere dengan menggunakan tumpukan Amazon Web Services (AWS) Cloud Development Kit (AWS CDK). Anda kemudian menggunakan AWS CodePipeline untuk menyiapkan pipeline integrasi berkelanjutan dan penerapan berkelanjutan (CI/CD). Kemudian, Anda mereplikasi repositori GitLab kode Anda ke AWS CodeCommit dan menerapkan aplikasi kontainer Anda di cluster Amazon ECS.

Pola ini dirancang untuk membantu mereka yang menggunakan infrastruktur lokal untuk menjalankan aplikasi kontainer dan menggunakannya GitLab untuk mengelola basis kode aplikasi. Anda dapat mengelola beban kerja tersebut dengan menggunakan layanan AWS Cloud, tanpa mengganggu infrastruktur lokal yang ada.

## Prasyarat dan batasan
<a name="set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ Aplikasi kontainer yang berjalan pada infrastruktur lokal.
+  GitLab Repositori tempat Anda mengelola basis kode aplikasi Anda. Untuk informasi selengkapnya, lihat [Repository](https://docs.gitlab.com/ee/user/project/repository/) ()GitLab.
+ AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat [Menginstal atau memperbarui versi terbaru AWS CLI (dokumentasi](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) AWS CLI).
+ AWS CDK Toolkit, diinstal dan dikonfigurasi secara global. Untuk informasi selengkapnya, lihat [Menginstal AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) (dokumentasi AWS CDK).
+ npm, diinstal dan dikonfigurasi untuk AWS CDK di. TypeScript Untuk informasi selengkapnya, lihat [Mengunduh dan menginstal Node.js dan npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) (dokumentasi npm).

**Batasan**
+ Untuk batasan dan pertimbangan, lihat [Instans eksternal (Amazon ECS Anywhere) di dokumentasi Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html#ecs-anywhere-considerations).

**Versi produk**
+ AWS CDK Toolkit versi 2.27.0 atau yang lebih baru
+ npm versi 7.20.3 atau yang lebih baru
+ Node.js versi 16.6.1 atau yang lebih baru

## Arsitektur
<a name="set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab-architecture"></a>

**Tumpukan teknologi target**
+ AWS CDK
+ AWS CloudFormation
+ AWS CodeBuild
+ AWS CodeCommit
+ AWS CodePipeline
+ Amazon ECS Anywhere
+ Amazon Elastic Container Registry (Amazon ECR)
+ AWS Identity and Access Management (IAM)
+ Manajer Sistem AWS
+ GitLab repositori

**Arsitektur target**

![\[Diagram arsitektur pengaturan cluster dan CI/CD pipeline Amazon ECS.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/b0f35986-a839-4b01-8eb0-4748182ddafc/images/85b8d4d9-3591-4d69-a54b-64aa543498f1.png)


Diagram ini mewakili dua alur kerja utama yang dijelaskan dalam pola ini, menyediakan kluster Amazon ECS dan menyiapkan CI/CD pipeline yang menyiapkan dan menyebarkan pipeline, sebagai CI/CD berikut:

1. **Penyediaan cluster Amazon ECS**

   1. Saat Anda menerapkan tumpukan AWS CDK pertama, itu membuat CloudFormation tumpukan di AWS.

   1.  CloudFormation Tumpukan ini menyediakan kluster Amazon ECS dan sumber daya AWS terkait.

   1. Untuk mendaftarkan instans eksternal dengan kluster Amazon ECS, Anda harus menginstal AWS Systems Manager Agent (Agen SSM) di VM Anda dan mendaftarkan VM sebagai instans yang dikelola AWS Systems Manager. 

   1. Anda juga harus menginstal agen penampung Amazon ECS dan Docker di VM Anda untuk mendaftarkannya sebagai instance eksternal dengan cluster Amazon ECS.

   1. Ketika instans eksternal terdaftar dan dikonfigurasi dengan cluster Amazon ECS, instans dapat menjalankan beberapa kontainer di VM Anda, yang terdaftar sebagai instance eksternal.

   1. Cluster Amazon ECS aktif dan dapat menjalankan beban kerja aplikasi melalui kontainer. Instans container Amazon ECS Anywhere berjalan di lingkungan lokal tetapi dikaitkan dengan cluster Amazon ECS di cloud.

1. **Menyiapkan dan menyebarkan pipa CI/CD **

   1. Saat Anda menerapkan tumpukan AWS CDK kedua, itu membuat CloudFormation tumpukan lain di AWS.

   1.  CloudFormation Tumpukan ini menyediakan pipeline CodePipeline dan sumber daya AWS terkait.

   1. Anda mendorong dan menggabungkan perubahan kode aplikasi ke repositori lokal GitLab . 

   1.  GitLab Repositori secara otomatis direplikasi ke repositori. CodeCommit 

   1. Pembaruan CodeCommit repo secara otomatis dimulai CodePipeline. 

   1. CodePipeline menyalin kode dari CodeCommit dan membuat build aplikasi yang dapat diterapkan. CodeBuild

   1. CodePipeline membuat image Docker dari lingkungan CodeBuild build dan mendorongnya ke repo Amazon ECR.

   1. CodePipeline memulai CodeDeploy tindakan yang menarik image container dari repo Amazon ECR.

   1. CodePipeline menyebarkan gambar kontainer di kluster Amazon ECS.

**Otomatisasi dan skala**

Pola ini menggunakan AWS CDK sebagai alat infrastruktur sebagai kode (IAc) untuk mengonfigurasi dan menerapkan arsitektur ini. AWS CDK membantu Anda mengatur sumber daya AWS dan menyiapkan Amazon ECS Anywhere dan pipeline. CI/CD 

## Alat
<a name="set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab-tools"></a>

**Layanan AWS**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) adalah layanan kontrol versi yang membantu Anda menyimpan dan mengelola repositori Git secara pribadi, tanpa perlu mengelola sistem kontrol sumber Anda sendiri.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) membantu Anda memodelkan dan mengonfigurasi berbagai tahapan rilis perangkat lunak dengan cepat dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak secara terus menerus.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) adalah layanan registri gambar kontainer terkelola yang aman, terukur, dan andal.
+ [Amazon Elastic Container Service (Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)) adalah layanan manajemen kontainer yang cepat dan dapat diskalakan yang membantu Anda menjalankan, menghentikan, dan mengelola kontainer di klaster. Pola ini juga menggunakan [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html) Anywhere, yang menyediakan dukungan untuk mendaftarkan server lokal atau VM ke cluster Amazon ECS Anda.

**Alat lainnya**
+ [Node.js](https://nodejs.org/en/docs/) adalah lingkungan JavaScript runtime berbasis peristiwa yang dirancang untuk membangun aplikasi jaringan yang dapat diskalakan.
+ [npm](https://docs.npmjs.com/about-npm) adalah registri perangkat lunak yang berjalan di lingkungan Node.js dan digunakan untuk berbagi atau meminjam paket dan mengelola penyebaran paket pribadi.
+ [Vagrant](https://developer.hashicorp.com/vagrant/docs) adalah utilitas open-source untuk membangun dan memelihara lingkungan pengembangan perangkat lunak virtual portabel. Untuk tujuan demonstrasi, pola ini menggunakan Vagrant untuk membuat VM lokal.

**Repositori kode**

Kode untuk pola ini tersedia di [pipeline GitHub CI/CD untuk Amazon ECS Anywhere menggunakan repositori AWS](https://github.com/aws-samples/amazon-ecs-anywhere-cicd-pipeline-cdk-sample) CDK.

## Praktik terbaik
<a name="set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab-best-practices"></a>

Pertimbangkan praktik terbaik berikut saat menerapkan pola ini:
+ [Praktik terbaik untuk mengembangkan dan menerapkan infrastruktur cloud dengan AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/best-practices.html)
+ [Praktik terbaik untuk mengembangkan aplikasi cloud dengan AWS CDK](https://aws.amazon.com/blogs/devops/best-practices-for-developing-cloud-applications-with-aws-cdk/) (postingan blog AWS)

## Epik
<a name="set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab-epics"></a>

### Verifikasi konfigurasi AWS CDK
<a name="verify-the-aws-cdk-configuration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi versi AWS CDK. | Verifikasi versi AWS CDK Toolkit dengan memasukkan perintah berikut.<pre>cdk --version</pre>Pola ini membutuhkan versi 2.27.0 atau yang lebih baru. Jika Anda memiliki versi sebelumnya, ikuti petunjuk dalam [dokumentasi AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) untuk memperbaruinya. | DevOps insinyur | 
| Verifikasi versi npm. | Verifikasi versi npm dengan memasukkan perintah berikut.<pre>npm --version</pre>Pola ini membutuhkan versi 7.20.3 atau yang lebih baru. Jika Anda memiliki versi sebelumnya, ikuti petunjuk dalam [dokumentasi npm](https://docs.npmjs.com/try-the-latest-stable-version-of-npm) untuk memperbaruinya. | DevOps insinyur | 
| Siapkan kredensi AWS. | Siapkan kredensi AWS dengan memasukkan `aws configure` perintah dan mengikuti petunjuknya.<pre>$aws configure<br />AWS Access Key ID [None]: <your-access-key-ID><br />AWS Secret Access Key [None]: <your-secret-access-key><br />Default region name [None]: <your-Region-name><br />Default output format [None]:</pre> | DevOps insinyur | 

### Bootstrap lingkungan AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori kode AWS CDK. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab.html) | DevOps insinyur | 
| Bootstrap lingkungan. | Menerapkan CloudFormation template ke akun dan Wilayah AWS yang ingin Anda gunakan dengan memasukkan perintah berikut.<pre>cdk bootstrap <account-number>/<Region></pre>Untuk informasi selengkapnya, lihat [Bootstrapping di dokumentasi](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) AWS CDK. | DevOps insinyur | 

### Membangun dan menerapkan infrastruktur untuk Amazon ECS Anywhere
<a name="build-and-deploy-the-infrastructure-for-amazon-ecs-anywhere"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal dependensi paket dan kompilasi file. TypeScript  | Instal dependensi paket dan kompilasi TypeScript file dengan memasukkan perintah berikut.<pre>$cd EcsAnywhereCdk<br />$npm install<br />$npm fund </pre>Perintah ini menginstal semua paket dari repositori sampel. Untuk informasi selengkapnya, lihat [npm ci](https://docs.npmjs.com/cli/v7/commands/npm-ci) dan [npm install](https://docs.npmjs.com/cli/v7/commands/npm-install) di dokumentasi npm. Jika Anda mendapatkan kesalahan tentang paket yang hilang saat Anda memasukkan perintah ini, lihat bagian [Pemecahan Masalah](#set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab-troubleshooting) dari pola ini. | DevOps insinyur | 
| Bangun proyek. | Untuk membangun kode proyek, masukkan perintah berikut.<pre>npm run build</pre>Untuk informasi selengkapnya tentang membangun dan menerapkan project, lihat [aplikasi AWS CDK pertama Anda di dokumentasi](https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html#:~:text=the%20third%20parameter.-,Synthesize%20an%20AWS%20CloudFormation%20template,-Synthesize%20an%20AWS) AWS CDK. | DevOps insinyur | 
| Terapkan tumpukan infrastruktur Amazon ECS Anywhere. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab.html) | DevOps insinyur | 
| Verifikasi pembuatan dan output tumpukan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab.html) | DevOps insinyur | 

### Mengatur VM lokal
<a name="set-up-an-on-premises-vm"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan VM Anda. | Buat VM Vagrant dengan memasukkan `vagrant up` perintah dari direktori root tempat Vagrantfile berada. Untuk informasi lebih lanjut, lihat [dokumentasi Vagrant](https://developer.hashicorp.com/vagrant/docs/cli/up). | DevOps insinyur | 
| Daftarkan VM Anda sebagai instance eksternal. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab.html)Ini mengatur VM Anda sebagai instans eksternal Amazon ECS Anywhere dan mendaftarkan instans di cluster Amazon ECS. Untuk informasi selengkapnya, lihat [Mendaftarkan instance eksternal ke klaster](https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/ecs-anywhere-registration.html) di dokumentasi Amazon ECS. Jika Anda mengalami masalah apa pun, lihat bagian [Pemecahan Masalah](#set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab-troubleshooting). | DevOps insinyur | 
| Verifikasi status Amazon ECS Anywhere dan VM eksternal. | Untuk memverifikasi apakah VM Anda terhubung ke bidang kontrol Amazon ECS dan berjalan, gunakan perintah berikut.<pre>$aws ssm describe-instance-information<br />$aws ecs list-container-instances --cluster $CLUSTER_NAME</pre> | DevOps insinyur | 

### Menyebarkan pipa CI/CD
<a name="deploy-the-ci-cd-pipeline"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat cabang di CodeCommit repo. | Buat cabang bernama `main` dalam CodeCommit repo dengan membuat komit pertama untuk repositori. Anda dapat mengikuti dokumentasi AWS untuk [Membuat komit CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html#create-first-commit). Berikut adalah contoh perintah tersebut.<pre>aws codecommit put-file \<br />  --repository-name EcsAnywhereRepo \<br />  --branch-name main \<br />  --file-path README.md \<br />  --file-content "Test" \<br />  --name "Dev Ops" \<br />  --email "devops@example.com" \<br />  --commit-message "Adding README."</pre> | DevOps insinyur | 
| Siapkan pencerminan repo. | Anda dapat mencerminkan GitLab repositori ke dan dari sumber eksternal. Anda dapat memilih repositori mana yang berfungsi sebagai sumber. Cabang, tag, dan komit disinkronkan secara otomatis. Siapkan cermin dorong antara GitLab repositori yang menghosting aplikasi Anda dan repositori. CodeCommit Untuk petunjuk, lihat [Mengatur cermin dorong dari GitLab ke CodeCommit](https://docs.gitlab.com/ee/user/project/repository/mirror/push.html#set-up-a-push-mirror-from-gitlab-to-aws-codecommit) (GitLab dokumentasi).Secara default, mirroring secara otomatis menyinkronkan repositori. Jika Anda ingin memperbarui repositori secara manual, lihat [Memperbarui cermin](https://docs.gitlab.com/ee/user/project/repository/mirror/#update-a-mirror) (GitLab dokumentasi). | DevOps insinyur | 
| Menyebarkan tumpukan CI/CD pipa. | Menyebarkan `EcsAnywherePipelineStack` tumpukan dengan memasukkan perintah berikut.<pre>$cdk  deploy EcsAnywherePipelineStack</pre> | DevOps insinyur | 
| Uji CI/CD pipa. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab.html) | DevOps insinyur | 

### Bersihkan
<a name="clean-up"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersihkan dan hapus sumber daya. | Setelah Anda berjalan melalui pola ini, Anda harus menghapus proof-of-concept sumber daya yang Anda buat. Untuk membersihkan, masukkan perintah berikut.<pre>$cdk destroy EcsAnywherePipelineStack<br />$cdk destroy EcsAnywhereInfraStack</pre> | DevOps insinyur | 

## Pemecahan masalah
<a name="set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Kesalahan tentang paket yang hilang saat menginstal dependensi paket. | Masukkan salah satu perintah berikut untuk menyelesaikan paket yang hilang.<pre>$npm ci</pre>atau<pre>$npm install -g @aws-cdk/<package_name></pre> | 
| Ketika Anda menjalankan `aws ssm create-activation` perintah pada VM, Anda menerima kesalahan berikut.`An error occurred (ValidationException) when calling the CreateActivation operation: Nonexistent role or missing ssm service principal in trust policy: arn:aws:iam::000000000000:role/EcsAnywhereInstanceRole` | `EcsAnywhereInfraStack`Tumpukan belum sepenuhnya digunakan, dan peran IAM yang diperlukan untuk menjalankan perintah ini belum dibuat. Periksa status tumpukan di CloudFormation konsol. Coba lagi perintah setelah status berubah menjadi`CREATE_COMPLETE`. | 
| Pemeriksaan kesehatan Amazon ECS kembali`UNHEALTHY`, dan Anda melihat kesalahan berikut di bagian **Layanan** klaster di konsol Amazon ECS.`service EcsAnywhereService was unable to place a task because no container instance met all of its requirements. Reason: No Container Instances were found in your cluster.` | Mulai ulang agen Amazon ECS di Vagrant VM Anda dengan memasukkan perintah berikut.<pre>$vagrant ssh<br />$sudo systemctl restart ecs<br />$sudo systemctl status ecs</pre> | 

## Sumber daya terkait
<a name="set-up-a-ci-cd-pipeline-for-hybrid-workloads-on-amazon-ecs-anywhere-by-using-aws-cdk-and-gitlab-resources"></a>
+ [Halaman pemasaran Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/)
+ [Dokumentasi Amazon ECS Anywhere](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html#ecs-anywhere-considerations)
+ [Amazon ECS Anywhere](https://www.youtube.com/watch?v=-eud6yUXsJM) demo (video)
+ Sampel [GitHublokakarya Amazon ECS Anywhere](https://github.com/aws-samples/aws-ecs-anywhere-workshop-samples) ()
+ [Pencerminan repositori](https://docs.gitlab.com/ee/user/project/repository/mirror/) (dokumentasi) GitLab 