

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

# Apa itu CodeDeploy?
<a name="welcome"></a>

CodeDeploy adalah layanan penerapan yang mengotomatiskan penerapan aplikasi ke instans Amazon EC2, instans lokal, fungsi Lambda tanpa server, atau layanan Amazon ECS.

Anda dapat menyebarkan berbagai konten aplikasi yang hampir tidak terbatas, termasuk:
+ Kode
+ Fungsi tanpa server AWS Lambda 
+ File web dan konfigurasi
+ Dapat dieksekusi
+ Paket
+ Skrip
+ File multimedia

CodeDeploy dapat menyebarkan konten aplikasi yang berjalan di server dan disimpan di bucket Amazon S3, repositori GitHub , atau repositori Bitbucket. CodeDeploy juga dapat menerapkan fungsi Lambda tanpa server. Anda tidak perlu membuat perubahan pada kode yang ada sebelum Anda dapat menggunakannya CodeDeploy. 

CodeDeploy membuatnya lebih mudah bagi Anda untuk:
+ Rilis fitur baru dengan cepat.
+ Perbarui versi AWS Lambda fungsi.
+ Hindari waktu henti selama penerapan aplikasi.
+ Tangani kompleksitas memperbarui aplikasi Anda, tanpa banyak risiko yang terkait dengan penerapan manual yang rawan kesalahan.

Skala layanan dengan infrastruktur Anda sehingga Anda dapat dengan mudah menyebarkan ke satu instans atau ribuan.

CodeDeploy bekerja dengan berbagai sistem untuk manajemen konfigurasi, kontrol sumber, [integrasi berkelanjutan](https://aws.amazon.com/devops/continuous-integration/), [pengiriman berkelanjutan](https://aws.amazon.com/devops/continuous-delivery/), dan penyebaran berkelanjutan. Untuk informasi selengkapnya, lihat [Integrasi produk](https://aws.amazon.com/codedeploy/product-integrations/).

 CodeDeploy Konsol juga menyediakan cara untuk mencari sumber daya Anda dengan cepat, seperti repositori, membangun proyek, aplikasi penerapan, dan saluran pipa. Pilih **Pergi ke sumber daya** atau tekan tombol `/`, dan kemudian ketik nama sumber daya. Setiap kecocokan akan muncul di daftar. Pencarian peka huruf besar/kecil. Anda hanya melihat sumber daya yang izin untuk menampilkannya Anda memiliki. Untuk informasi selengkapnya, lihat [Manajemen identitas dan akses untuk AWS CodeDeploy](security-iam.md). 

**Topics**
+ [Manfaat dari AWS CodeDeploy](#benefits)
+ [Ikhtisar CodeDeploy platform komputasi](#compute-platform)
+ [Ikhtisar jenis CodeDeploy penerapan](#welcome-deployment-overview)
+ [Kami ingin mendengar pendapat Anda](#welcome-contact-us)
+ [Primary Components](primary-components.md)
+ [Deployments](deployment-steps.md)
+ [Application Specification Files](application-specification-files.md)

## Manfaat dari AWS CodeDeploy
<a name="benefits"></a>

CodeDeploy menawarkan manfaat ini:
+ **Aplikasi server, tanpa server, dan kontainer**. CodeDeploymemungkinkan Anda menyebarkan aplikasi tradisional pada server dan aplikasi yang menyebarkan versi AWS Lambda fungsi tanpa server atau aplikasi Amazon ECS.
+ **Penerapan otomatis.** CodeDeploy sepenuhnya mengotomatiskan penerapan aplikasi Anda di seluruh lingkungan pengembangan, pengujian, dan produksi Anda. CodeDeployskala dengan infrastruktur Anda sehingga Anda dapat menyebarkan ke satu instance atau ribuan.
+ **Minimalkan waktu henti**. Jika aplikasi Anda menggunakan platform komputasi EC2/On-premise, CodeDeploy membantu memaksimalkan ketersediaan aplikasi Anda. Selama penerapan di tempat, CodeDeploy melakukan pembaruan bergulir di seluruh instans Amazon EC2. Anda dapat menentukan jumlah instance yang akan diambil offline pada satu waktu untuk pembaruan. Selama blue/green penerapan, revisi aplikasi terbaru diinstal pada instance pengganti. Lalu lintas dialihkan ke contoh ini ketika Anda memilih, baik segera atau segera setelah Anda selesai menguji lingkungan baru. Untuk kedua jenis penerapan, CodeDeploy melacak kesehatan aplikasi sesuai dengan aturan yang Anda konfigurasikan. 
+ **Berhenti dan putar kembali**. Anda dapat secara otomatis atau manual menghentikan dan memutar kembali penerapan jika ada kesalahan. 
+ **Kontrol terpusat**. Anda dapat meluncurkan dan melacak status penerapan Anda melalui CodeDeploy konsol atau. AWS CLI Anda menerima laporan yang mencantumkan kapan setiap revisi aplikasi diterapkan dan instans Amazon EC2 mana. 
+ **Mudah diadopsi**. CodeDeploy adalah platform-agnostik dan bekerja dengan aplikasi apa pun. Anda dapat dengan mudah menggunakan kembali kode pengaturan Anda. CodeDeploy juga dapat berintegrasi dengan proses rilis perangkat lunak Anda atau rantai alat pengiriman berkelanjutan.
+ **Penerapan bersamaan**. Jika Anda memiliki lebih dari satu aplikasi yang menggunakan platform komputasi EC2/On-premise, CodeDeploy dapat menerapkannya secara bersamaan ke kumpulan instans yang sama.



## Ikhtisar CodeDeploy platform komputasi
<a name="compute-platform"></a>

CodeDeploy mampu menyebarkan aplikasi ke tiga platform komputasi:
+ **EC2/Lokal**: Menjelaskan instance server fisik yang dapat berupa instans cloud Amazon EC2, server lokal, atau keduanya. Aplikasi yang dibuat menggunakan platform komputasi EC2/On-premise dapat terdiri dari file yang dapat dieksekusi, file konfigurasi, gambar, dan banyak lagi.

  Penerapan yang menggunakan platform komputasi EC2/Lokal mengelola cara lalu lintas diarahkan ke instance dengan menggunakan tipe penerapan di tempat atau biru/hijau. Untuk informasi selengkapnya, lihat [Ikhtisar jenis CodeDeploy penerapan](#welcome-deployment-overview).
+ **AWS Lambda**: Digunakan untuk menyebarkan aplikasi yang terdiri dari versi terbaru dari fungsi Lambda. AWS Lambda mengelola fungsi Lambda dalam lingkungan komputasi tanpa server yang terdiri dari struktur komputasi ketersediaan tinggi. Semua administrasi sumber daya komputasi dilakukan oleh AWS Lambda. Untuk informasi selengkapnya, lihat [Komputasi dan Aplikasi Tanpa Server](https://aws.amazon.com/serverless/). Untuk informasi selengkapnya tentang AWS Lambda dan fungsi Lambda, lihat. [AWS Lambda](https://aws.amazon.com/lambda/)

  Anda dapat mengelola cara lalu lintas dialihkan ke versi fungsi Lambda yang diperbarui selama penerapan dengan memilih kenari, linier, atau konfigurasi. all-at-once 
+ **Amazon ECS**: Digunakan untuk menyebarkan aplikasi kontainer Amazon ECS sebagai set tugas. CodeDeploy melakukan blue/green penyebaran dengan menginstal versi aplikasi yang diperbarui sebagai set tugas pengganti baru. CodeDeploy mengubah rute lalu lintas produksi dari tugas aplikasi asli yang disetel ke set tugas pengganti. Set tugas asli dihentikan setelah penerapan berhasil. Untuk informasi selengkapnya tentang Amazon ECS, lihat [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).

  Anda dapat mengelola cara lalu lintas dialihkan ke set tugas yang diperbarui selama penerapan dengan memilih kenari, linier, atau konfigurasi. all-at-once
**catatan**  
 blue/green Penerapan Amazon ECS didukung menggunakan keduanya dan. CodeDeploy CloudFormation Detail untuk penerapan ini dijelaskan di bagian berikutnya.

Tabel berikut menjelaskan bagaimana CodeDeploy komponen digunakan dengan setiap platform komputasi. Untuk informasi lebih lanjut, lihat: 
+  [Bekerja dengan grup penyebaran di CodeDeploy](deployment-groups.md) 
+  [Bekerja dengan penerapan di CodeDeploy](deployments.md) 
+  [Bekerja dengan konfigurasi penerapan di CodeDeploy](deployment-configurations.md) 
+  [Bekerja dengan revisi aplikasi untuk CodeDeploy](application-revisions.md) 
+  [Bekerja dengan aplikasi di CodeDeploy](applications.md) 


| CodeDeploy komponen | EC2/On-premise | AWS Lambda | Amazon ECS | 
| --- | --- | --- | --- | 
| Grup deployment | Menyebarkan revisi ke serangkaian instance. | Menerapkan versi baru fungsi Lambda tanpa server pada infrastruktur komputasi ketersediaan tinggi. | Menentukan layanan Amazon ECS dengan aplikasi kontainer yang akan diterapkan sebagai set tugas, pendengar pengujian produksi dan opsional yang digunakan untuk menyajikan lalu lintas ke aplikasi yang diterapkan, kapan mengalihkan lalu lintas dan menghentikan set tugas asli aplikasi yang diterapkan, serta pengaturan pemicu, alarm, dan rollback opsional. | 
| Deployment | Menyebarkan revisi baru yang terdiri dari aplikasi dan AppSpec file. AppSpec Menentukan cara menyebarkan aplikasi ke instance dalam grup penyebaran. | Menggeser lalu lintas produksi dari satu versi fungsi Lambda ke versi baru dari fungsi yang sama. AppSpec File menentukan versi fungsi Lambda mana yang akan digunakan. | Menerapkan versi terbaru dari aplikasi kontainer Amazon ECS sebagai set tugas pengganti baru. CodeDeploy mengubah rute lalu lintas produksi dari set tugas dengan versi asli ke set tugas pengganti baru dengan versi yang diperbarui. Ketika penerapan selesai, set tugas asli dihentikan. | 
| Konfigurasi deployment | Pengaturan yang menentukan kecepatan penerapan dan jumlah minimum instance yang harus sehat kapan saja selama penerapan. | Pengaturan yang menentukan bagaimana lalu lintas dialihkan ke versi fungsi Lambda yang diperbarui. | Pengaturan yang menentukan bagaimana lalu lintas dialihkan ke set tugas Amazon ECS yang diperbarui. | 
| Revisi | Kombinasi AppSpec file dan file aplikasi, seperti executable, file konfigurasi, dan sebagainya. |  AppSpec File yang menentukan fungsi Lambda mana yang akan digunakan dan fungsi Lambda yang dapat menjalankan pengujian validasi selama kait peristiwa siklus hidup penerapan. |   AppSpec File yang menentukan: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/welcome.html)  | 
| Aplikasi | Kumpulan grup penyebaran dan revisi. Aplikasi EC2/Lokal menggunakan platform komputasi EC2/On-premise. | Kumpulan grup penyebaran dan revisi. Aplikasi yang digunakan untuk AWS Lambda penyebaran menggunakan platform komputasi AWS Lambda tanpa server. | Kumpulan grup penyebaran dan revisi. Aplikasi yang digunakan untuk penyebaran Amazon ECS menggunakan platform komputasi Amazon ECS. | 

## Ikhtisar jenis CodeDeploy penerapan
<a name="welcome-deployment-overview"></a>

CodeDeploy menyediakan dua opsi jenis penerapan:
+ **Penyebaran di tempat**: Aplikasi pada setiap instance dalam grup penyebaran dihentikan, revisi aplikasi terbaru diinstal, dan versi baru aplikasi dimulai dan divalidasi. Anda dapat menggunakan penyeimbang beban sehingga setiap instance dideregistrasi selama penerapannya dan kemudian dikembalikan ke layanan setelah penerapan selesai. Hanya penerapan yang menggunakan platform komputasi EC2/Lokal yang dapat menggunakan penerapan di tempat. Untuk informasi selengkapnya tentang penerapan di tempat, lihat. [Ikhtisar penerapan di tempat](#welcome-deployment-overview-in-place)
**catatan**  
AWS Penerapan Lambda dan Amazon ECS tidak dapat menggunakan jenis penerapan di tempat.
+ Penerapan **biru/hijau: Perilaku penerapan** Anda bergantung pada platform komputasi yang Anda gunakan:
  + **Blue/green on an EC2/OnPlatform komputasi -Premises**: Instance dalam grup penerapan (lingkungan asli) digantikan oleh serangkaian instance yang berbeda (lingkungan pengganti) menggunakan langkah-langkah berikut:
    + Instans disediakan untuk lingkungan pengganti.
    + Revisi aplikasi terbaru diinstal pada instance pengganti.
    + Waktu tunggu opsional terjadi untuk kegiatan seperti pengujian aplikasi dan verifikasi sistem.
    + Instans di lingkungan penggantian terdaftar dengan satu atau lebih penyeimbang beban Elastic Load Balancing, menyebabkan lalu lintas dialihkan ke sana. Contoh di lingkungan asli dideregistrasi dan dapat dihentikan atau terus berjalan untuk penggunaan lain.
**catatan**  
Jika Anda menggunakan platform komputasi EC2/Lokal, ketahuilah bahwa blue/green penerapan hanya berfungsi dengan instans Amazon EC2.
  + **Biru/hijau pada platform komputasi AWS Lambda Amazon ECS** **atau Amazon: Lalu lintas digeser secara bertahap sesuai dengan konfigurasi **kenari**, linier, atau penerapan. **all-at-once****
  + **Penerapan biru/hijau melalui CloudFormation**: Lalu lintas dialihkan dari sumber daya Anda saat ini ke sumber daya yang diperbarui sebagai bagian dari pembaruan tumpukan. CloudFormation Saat ini, hanya blue/green penerapan ECS yang didukung. 

  Untuk informasi selengkapnya tentang blue/green penerapan, lihat. [Ikhtisar blue/green penerapan](#welcome-deployment-overview-blue-green)

**catatan**  
Dengan menggunakan CodeDeploy agen, Anda dapat melakukan penerapan pada instans yang Anda masuki tanpa memerlukan aplikasi, grup penyebaran, atau bahkan akun AWS . Untuk informasi, lihat [Gunakan CodeDeploy agen untuk memvalidasi paket penerapan pada mesin lokal](deployments-local.md).

**Topics**
+ [Ikhtisar penerapan di tempat](#welcome-deployment-overview-in-place)
+ [Ikhtisar blue/green penerapan](#welcome-deployment-overview-blue-green)

### Ikhtisar penerapan di tempat
<a name="welcome-deployment-overview-in-place"></a>

**catatan**  
AWS Penerapan Lambda dan Amazon ECS tidak dapat menggunakan jenis penerapan di tempat.

Inilah cara kerja penerapan di tempat:

1. Pertama, Anda membuat konten deployable pada mesin pengembangan lokal Anda atau lingkungan serupa, dan kemudian Anda menambahkan *file spesifikasi aplikasi (AppSpec file*). AppSpec File ini unik untuk CodeDeploy. Ini mendefinisikan tindakan penerapan yang CodeDeploy ingin Anda jalankan. Anda menggabungkan konten yang dapat di-deploy dan AppSpec file ke dalam file arsip, lalu mengunggahnya ke bucket Amazon S3 atau repositori. GitHub File arsip ini disebut *revisi aplikasi* (atau hanya *revisi*).

1. Selanjutnya, Anda memberikan CodeDeploy informasi tentang penerapan Anda, seperti bucket GitHub atau repositori Amazon S3 untuk menarik revisi dari dan ke set instans Amazon EC2 mana yang akan menyebarkan kontennya. CodeDeploy *memanggil satu set instans Amazon EC2 grup penerapan.* Grup penerapan berisi instans Amazon EC2 yang ditandai secara individual, instans Amazon EC2 di grup Penskalaan Otomatis Amazon EC2, atau keduanya.

   Setiap kali Anda berhasil mengunggah revisi aplikasi baru yang ingin Anda terapkan ke grup penerapan, bundel tersebut ditetapkan sebagai *revisi target* untuk grup penerapan. Dengan kata lain, revisi aplikasi yang saat ini ditargetkan untuk penerapan adalah revisi target. Ini juga merupakan revisi yang ditarik untuk penerapan otomatis.

1. Selanjutnya, CodeDeploy agen pada setiap instans melakukan polling CodeDeploy untuk menentukan apa dan kapan harus menarik dari bucket GitHub atau repositori Amazon S3 yang ditentukan.

1. Terakhir, CodeDeploy agen pada setiap instance menarik revisi target dari bucket GitHub atau repositori Amazon S3 dan, menggunakan instruksi dalam file, menyebarkan AppSpec konten ke instance.

 CodeDeploy menyimpan catatan penerapan Anda sehingga Anda bisa mendapatkan status penerapan, parameter konfigurasi penerapan, kesehatan instance, dan sebagainya.

### Ikhtisar blue/green penerapan
<a name="welcome-deployment-overview-blue-green"></a>

 blue/green Penerapan digunakan untuk memperbarui aplikasi Anda sambil meminimalkan gangguan yang disebabkan oleh perubahan versi aplikasi baru. CodeDeploy menyediakan versi aplikasi baru Anda di samping versi lama sebelum mengalihkan lalu lintas produksi Anda. 
+  **AWS Lambda**: Lalu lintas digeser dari satu versi fungsi Lambda ke versi baru dari fungsi Lambda yang sama. 
+  **Amazon ECS**: Lalu lintas dialihkan dari tugas yang ditetapkan di layanan Amazon ECS Anda ke tugas pengganti yang diperbarui yang disetel dalam layanan Amazon ECS yang sama. 
+  **EC2/On-premise**: Lalu lintas digeser dari satu set instance di lingkungan asli ke seperangkat instance pengganti. 

Semua penerapan AWS Lambda dan Amazon ECS adalah penyebaran menawarkan sejumlah blue/green. An EC2/On-Premises deployment can be in-place or blue/green. A blue/green keunggulan dibandingkan penerapan di tempat:
+ Anda dapat menginstal dan menguji aplikasi di lingkungan pengganti baru dan menyebarkannya ke produksi hanya dengan mengalihkan lalu lintas.
+  Jika Anda menggunakan platform komputasi EC2/On-premise, beralih kembali ke versi terbaru aplikasi akan lebih cepat dan lebih andal. Itu karena lalu lintas dapat dialihkan kembali ke instance asli selama mereka belum dihentikan. Dengan penerapan di tempat, versi harus diputar kembali dengan menerapkan kembali versi aplikasi sebelumnya.
+ Jika Anda menggunakan platform komputasi EC2/Lokal, instance baru disediakan untuk blue/green penerapan dan mencerminkan sebagian besar konfigurasi server. up-to-date Ini membantu Anda menghindari jenis masalah yang terkadang terjadi pada kasus yang berjalan lama.
+ Jika Anda menggunakan platform komputasi AWS Lambda, Anda mengontrol bagaimana lalu lintas digeser dari versi fungsi Lambda asli Anda ke versi fungsi AWS Lambda baru Anda. AWS 
+ Jika Anda menggunakan platform komputasi Amazon ECS, Anda mengontrol bagaimana lalu lintas digeser dari tugas awal yang disetel ke set tugas baru Anda.

 blue/green Penerapan dengan CloudFormation dapat menggunakan salah satu metode berikut:
+ **CloudFormation template untuk penerapan**: Saat Anda mengonfigurasi penerapan dengan CloudFormation templat, penerapan Anda dipicu oleh pembaruan. CloudFormation Saat Anda mengubah sumber daya dan mengunggah perubahan templat, pembaruan tumpukan akan CloudFormation memulai penerapan baru. Untuk daftar sumber daya yang dapat Anda gunakan dalam CloudFormation templat, lihat[CloudFormation template untuk CodeDeploy referensi](reference-cloudformation-templates.md).
+ **Penerapan biru/hijau melalui CloudFormation**: Anda dapat menggunakan CloudFormation untuk mengelola blue/green penerapan Anda melalui pembaruan tumpukan. Anda menentukan sumber daya biru dan hijau Anda, selain menentukan pengaturan perutean dan stabilisasi lalu lintas, dalam template tumpukan. Kemudian, jika Anda memperbarui sumber daya yang dipilih selama pembaruan tumpukan, CloudFormation menghasilkan semua sumber daya hijau yang diperlukan, menggeser lalu lintas berdasarkan parameter perutean lalu lintas yang ditentukan, dan menghapus sumber daya biru. *Untuk informasi selengkapnya, lihat [Mengotomatiskan blue/green penerapan Amazon ECS melalui CodeDeploy penggunaan CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html) di Panduan Pengguna.AWS CloudFormation *
**catatan**  
Didukung hanya untuk blue/green penerapan Amazon ECS.

Cara Anda mengonfigurasi blue/green penerapan tergantung pada platform komputasi mana yang digunakan penerapan Anda.



#### Penerapan Biru/Hijau pada platform komputasi AWS Lambda Amazon ECS atau Amazon
<a name="blue-green-lambda-compute-type"></a>

Jika Anda menggunakan platform komputasi Amazon ECS AWS Lambda atau Amazon, Anda harus menunjukkan bagaimana lalu lintas digeser dari fungsi asli AWS Lambda atau tugas Amazon ECS yang disetel ke fungsi atau set tugas baru. Untuk menunjukkan bagaimana lalu lintas digeser, Anda harus menentukan salah satu konfigurasi penerapan berikut:
+ **kenari**
+ **linier**
+ **all-at-once**

Untuk informasi tentang bagaimana lalu lintas digeser dalam konfigurasi kenari, linier, atau all-at-once penerapan, lihat. [Konfigurasi deployment](primary-components.md#primary-components-deployment-configuration)

Untuk detail tentang konfigurasi penerapan Lambda, lihat. [Konfigurasi penerapan pada platform komputasi AWS Lambda](deployment-configurations.md#deployment-configuration-lambda)

Untuk detail tentang konfigurasi penerapan Amazon ECS, lihat. [Konfigurasi deployment pada platform komputasi Amazon ECS](deployment-configurations.md#deployment-configuration-ecs)

#### Blue/Green deployment on an EC2/onplatform komputasi -premis
<a name="blue-green-server-compute-type"></a>

**catatan**  
Anda harus menggunakan instans Amazon EC2 untuk blue/green penerapan di platform komputasi EC2/On-premise. Instance lokal tidak didukung untuk jenis blue/green penerapan.

Jika Anda menggunakan platform komputasi EC2/Lokal, berikut ini berlaku:

 Anda harus memiliki satu atau beberapa instans Amazon EC2 dengan mengidentifikasi tag Amazon EC2 atau grup Amazon EC2 Auto Scaling. Contoh harus memenuhi persyaratan tambahan ini:
+ Setiap instans Amazon EC2 harus memiliki profil instans IAM yang benar.
+  CodeDeploy Agen harus diinstal dan dijalankan pada setiap instance.

**catatan**  
Anda biasanya juga memiliki revisi aplikasi yang berjalan pada instance di lingkungan asli Anda, tetapi ini bukan persyaratan untuk penerapan. blue/green 

Saat Anda membuat grup penyebaran yang digunakan dalam blue/green penerapan, Anda dapat memilih bagaimana lingkungan pengganti Anda ditentukan:

**Salin grup Penskalaan Otomatis Amazon EC2 yang ada**: blue/green Selama CodeDeploy penerapan, buat instans untuk lingkungan pengganti Anda selama penerapan. Dengan opsi ini, CodeDeploy gunakan grup Amazon EC2 Auto Scaling yang Anda tentukan sebagai templat untuk lingkungan pengganti, termasuk jumlah instans yang sedang berjalan dan banyak opsi konfigurasi lainnya.

**Pilih instans secara manual**: Anda dapat menentukan instans yang akan dihitung sebagai pengganti menggunakan tag instans Amazon EC2, nama grup Amazon EC2 Auto Scaling, atau keduanya. Jika Anda memilih opsi ini, Anda tidak perlu menentukan instance untuk lingkungan pengganti sampai Anda membuat penerapan.

Begini cara kerjanya:

1. Anda sudah memiliki instans atau grup Amazon EC2 Auto Scaling yang berfungsi sebagai lingkungan asli Anda. Saat pertama kali menjalankan blue/green penerapan, Anda biasanya menggunakan instance yang sudah digunakan dalam penerapan di tempat.

1. Di CodeDeploy aplikasi yang ada, Anda membuat grup blue/green penyebaran di mana, selain opsi yang diperlukan untuk penerapan di tempat, Anda menentukan hal berikut:
   + Penyeimbang beban atau penyeimbang beban yang merutekan lalu lintas dari lingkungan asli Anda ke lingkungan pengganti Anda selama proses penyebaran. blue/green 
   + Apakah akan mengalihkan lalu lintas ke lingkungan pengganti segera atau menunggu Anda untuk mengubah rute secara manual. 
   + Tingkat di mana lalu lintas dialihkan ke instance penggantian.
   + Apakah instance yang diganti dihentikan atau terus berjalan.

1. Anda membuat penerapan untuk grup penerapan ini selama hal berikut terjadi:

   1. Jika Anda memilih untuk menyalin grup Amazon EC2 Auto Scaling, instans akan disediakan untuk lingkungan pengganti Anda.

   1. Revisi aplikasi yang Anda tentukan untuk penerapan diinstal pada instance pengganti.

   1. Jika Anda menentukan waktu tunggu dalam pengaturan grup penerapan, penerapan akan dijeda. Ini adalah waktu ketika Anda dapat menjalankan tes dan verifikasi di lingkungan pengganti Anda. Jika Anda tidak mengubah rute lalu lintas secara manual sebelum akhir periode tunggu, penerapan dihentikan.

   1. Instans di lingkungan penggantian terdaftar dengan penyeimbang beban Elastic Load Balancing dan lalu lintas mulai diarahkan ke sana.

   1. Instance di lingkungan asli dideregistrasi dan ditangani sesuai dengan spesifikasi Anda di grup penerapan, baik dihentikan atau terus berjalan.

#### Penerapan Biru/Hijau melalui CloudFormation
<a name="blue-green-cfn-config-type"></a>

Anda dapat mengelola penerapan CodeDeploy biru/hijau dengan memodelkan sumber daya Anda dengan templat. CloudFormation 

Saat Anda memodelkan blue/green sumber daya menggunakan CloudFormation templat, Anda membuat pembaruan tumpukan CloudFormation yang memperbarui set tugas Anda. Lalu lintas produksi bergeser dari tugas asli layanan Anda yang disetel ke set tugas pengganti sekaligus, dengan penerapan linier dan waktu pemanggangan, atau dengan penerapan kenari. Pembaruan tumpukan memulai penerapan di. CodeDeploy Anda dapat melihat status dan riwayat penerapan di CodeDeploy, tetapi Anda tidak membuat atau mengelola CodeDeploy sumber daya di luar CloudFormation templat.

**catatan**  
Untuk blue/green penerapan melalui CloudFormation, Anda tidak membuat CodeDeploy aplikasi atau grup penyebaran.

Metode ini hanya mendukung blue/green penerapan Amazon ECS. Untuk informasi selengkapnya tentang blue/green penerapan CloudFormation, lihat. [Buat blue/green penyebaran Amazon ECS melalui CloudFormation](deployments-create-ecs-cfn.md)

## Kami ingin mendengar pendapat Anda
<a name="welcome-contact-us"></a>

Kami menyambut umpan balik Anda. Untuk menghubungi kami, kunjungi [ CodeDeploy forum](https://forums.aws.amazon.com/forum.jspa?forumID=179).

**Topik**
+ [Primary Components](primary-components.md)
+ [Deployments](deployment-steps.md)
+ [Application Specification Files](application-specification-files.md)

# CodeDeploy komponen utama
<a name="primary-components"></a>

Sebelum Anda mulai bekerja dengan layanan ini, Anda harus membiasakan diri dengan komponen utama dari proses CodeDeploy penyebaran.

**Topics**
+ [Aplikasi](#primary-components-application)
+ [Platform komputasi](#primary-components-compute-platform)
+ [Konfigurasi deployment](#primary-components-deployment-configuration)
+ [Grup deployment](#primary-components-deployment-group)
+ [Tipe deployment](#primary-components-deployment-type)
+ [Profil instans IAM](#primary-components-iam-instance-profile)
+ [Revisi](#primary-components-revision)
+ [Peran layanan](#primary-components-service-role)
+ [Revisi target](#primary-components-target-revision)
+ [Komponen lainnya](#primary-components-other-components)

## Aplikasi
<a name="primary-components-application"></a>

*Aplikasi* adalah nama yang secara unik mengidentifikasi aplikasi yang ingin Anda terapkan. CodeDeploy menggunakan nama ini, yang berfungsi sebagai wadah, untuk memastikan kombinasi yang benar dari revisi, konfigurasi penerapan, dan grup penyebaran direferensikan selama penerapan.

## Platform komputasi
<a name="primary-components-compute-platform"></a>

*Platform komputasi* adalah platform tempat CodeDeploy menyebarkan aplikasi. Ada tiga platform komputasi:
+ **EC2/On-Premise**: Menjelaskan instance server fisik yang dapat berupa instance EC2 cloud Amazon, server lokal, atau keduanya. Aplikasi yang dibuat menggunakan platform komputasi EC2 /On-Premises dapat terdiri dari file yang dapat dieksekusi, file konfigurasi, gambar, dan banyak lagi.

  Penerapan yang menggunakan platform komputasi EC2 /On-Premises mengelola cara lalu lintas diarahkan ke instance dengan menggunakan tipe penerapan di tempat atau biru/hijau. Untuk informasi selengkapnya, lihat [Ikhtisar jenis CodeDeploy penerapan](welcome.md#welcome-deployment-overview).
+ **AWS Lambda**: Digunakan untuk menyebarkan aplikasi yang terdiri dari versi terbaru dari fungsi Lambda. AWS Lambda mengelola fungsi Lambda dalam lingkungan komputasi tanpa server yang terdiri dari struktur komputasi ketersediaan tinggi. Semua administrasi sumber daya komputasi dilakukan oleh AWS Lambda. Untuk informasi selengkapnya, lihat [Komputasi dan Aplikasi Tanpa Server](https://aws.amazon.com/serverless/). Untuk informasi selengkapnya tentang AWS Lambda dan fungsi Lambda, lihat. [AWS Lambda](https://aws.amazon.com/lambda/)

  Anda dapat mengelola cara lalu lintas dialihkan ke versi fungsi Lambda yang diperbarui selama penerapan dengan memilih kenari, linier, atau konfigurasi. all-at-once 
+ **Amazon ECS**: Digunakan untuk menyebarkan aplikasi kontainer Amazon ECS sebagai set tugas. CodeDeploy melakukan blue/green penyebaran dengan menginstal versi aplikasi yang diperbarui sebagai set tugas pengganti baru. CodeDeploy mengubah rute lalu lintas produksi dari tugas aplikasi asli yang disetel ke set tugas pengganti. Set tugas asli dihentikan setelah penerapan berhasil. Untuk informasi selengkapnya tentang Amazon ECS, lihat [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).

  Anda dapat mengelola cara lalu lintas dialihkan ke set tugas yang diperbarui selama penerapan dengan memilih kenari, linier, atau konfigurasi. all-at-once

**catatan**  
 blue/green Penerapan Amazon ECS didukung melalui keduanya dan. CodeDeploy CloudFormation Detail untuk penerapan ini dijelaskan di bagian berikutnya.

## Konfigurasi deployment
<a name="primary-components-deployment-configuration"></a>

*Konfigurasi penerapan* adalah seperangkat aturan penerapan dan kondisi keberhasilan dan kegagalan penerapan yang digunakan CodeDeploy selama penerapan. Jika penerapan Anda menggunakan platform komputasi EC2 /On-Premises, Anda dapat menentukan jumlah minimum instans sehat untuk penerapan. Jika penerapan Anda menggunakan AWS Lambda atau platform komputasi Amazon ECS, Anda dapat menentukan cara lalu lintas dirutekan ke fungsi Lambda atau set tugas ECS yang diperbarui.

Untuk informasi selengkapnya tentang menentukan jumlah minimum host sehat untuk penerapan yang menggunakan platform komputasi EC2 /On-Premises, lihat. [Tentang jumlah minimum contoh sehat](instances-health.md#minimum-healthy-hosts)

Konfigurasi penerapan berikut menentukan cara lalu lintas dirutekan selama penerapan yang menggunakan Lambda atau platform komputasi ECS:
+ **Canary**: Lalu lintas dialihkan dalam dua peningkatan. Anda dapat memilih dari opsi kenari yang telah ditentukan sebelumnya yang menentukan persentase lalu lintas yang digeser ke fungsi Lambda Anda yang diperbarui atau tugas ECS yang ditetapkan dalam kenaikan pertama dan interval, dalam hitungan menit, sebelum lalu lintas yang tersisa digeser dalam kenaikan kedua. 
+ **Linier**: Lalu lintas dialihkan dalam peningkatan yang sama dengan jumlah menit yang sama di antara setiap kenaikan. Anda dapat memilih dari opsi linier yang telah ditentukan sebelumnya yang menentukan persentase lalu lintas yang bergeser dalam setiap kenaikan dan jumlah menit di antara setiap kenaikan.
+ **J ll-at-once**: Semua lalu lintas digeser dari fungsi Lambda asli atau tugas ECS diatur ke fungsi yang diperbarui atau set tugas sekaligus.

## Grup deployment
<a name="primary-components-deployment-group"></a>

*Grup penyebaran adalah sekumpulan* instance individual. Grup penerapan berisi instance yang ditandai secara individual, instans Amazon di grup Amazon EC2 Auto EC2 Scaling, atau keduanya. Untuk informasi tentang tag EC2 instans Amazon, lihat [Bekerja dengan Tag Menggunakan Konsol](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_Console). Untuk informasi tentang instance lokal, lihat. [Bekerja dengan instans lokal untuk CodeDeploy](instances-on-premises.md) Untuk informasi tentang EC2 Auto Scaling Amazon, lihat. [Mengintegrasikan CodeDeploy dengan Amazon EC2 Auto Scaling](integrations-aws-auto-scaling.md)

## Tipe deployment
<a name="primary-components-deployment-type"></a>

*Jenis penyebaran* adalah metode yang digunakan untuk membuat revisi aplikasi terbaru tersedia pada instance dalam grup penyebaran. Ada dua jenis penyebaran:
+ **Penyebaran di tempat**: Aplikasi pada setiap instance dalam grup penyebaran dihentikan, revisi aplikasi terbaru diinstal, dan versi baru aplikasi dimulai dan divalidasi. Anda dapat menggunakan penyeimbang beban sehingga setiap instance dideregistrasi selama penerapannya dan kemudian dikembalikan ke layanan setelah penerapan selesai. Hanya penerapan yang menggunakan platform komputasi EC2 /On-Premises yang dapat menggunakan penerapan di tempat. Untuk informasi selengkapnya tentang penerapan di tempat, lihat. [Ikhtisar penerapan di tempat](welcome.md#welcome-deployment-overview-in-place)
+ Penerapan **biru/hijau: Perilaku penerapan** Anda bergantung pada platform komputasi yang Anda gunakan:
  + **Blue/green on an EC2/OnPlatform komputasi -Premises**: Instance dalam grup penerapan (lingkungan asli) digantikan oleh serangkaian instance yang berbeda (lingkungan pengganti) menggunakan langkah-langkah berikut:
    + Instans disediakan untuk lingkungan pengganti.
    + Revisi aplikasi terbaru diinstal pada instance pengganti.
    + Waktu tunggu opsional terjadi untuk kegiatan seperti pengujian aplikasi dan verifikasi sistem.
    + Instans di lingkungan penggantian terdaftar dengan satu atau lebih penyeimbang beban Elastic Load Balancing, menyebabkan lalu lintas dialihkan ke sana. Contoh di lingkungan asli dideregistrasi dan dapat dihentikan atau terus berjalan untuk penggunaan lain.
**catatan**  
Jika Anda menggunakan platform komputasi EC2 /Lokal, ketahuilah bahwa blue/green penerapan hanya berfungsi dengan instans Amazon. EC2 
  + **Biru/hijau pada platform komputasi AWS Lambda Amazon ECS** **atau Amazon: Lalu lintas digeser secara bertahap sesuai dengan konfigurasi **kenari**, linier, atau penerapan. **all-at-once****
  + **Penerapan biru/hijau melalui CloudFormation**: Lalu lintas dialihkan dari sumber daya Anda saat ini ke sumber daya yang diperbarui sebagai bagian dari pembaruan tumpukan. CloudFormation Saat ini, hanya blue/green penerapan ECS yang didukung. 

  Untuk informasi selengkapnya tentang blue/green penerapan, lihat. [Ikhtisar blue/green penerapan](welcome.md#welcome-deployment-overview-blue-green)

**catatan**  
 blue/green Penerapan Amazon ECS didukung menggunakan keduanya dan. CodeDeploy CloudFormation Detail untuk penerapan ini dijelaskan di bagian berikutnya.

## Profil instans IAM
<a name="primary-components-iam-instance-profile"></a>

*Profil instans IAM* adalah peran IAM yang Anda lampirkan ke instans Amazon EC2 Anda. Profil ini mencakup izin yang diperlukan untuk mengakses bucket Amazon S3 GitHub atau repositori tempat aplikasi disimpan. Untuk informasi selengkapnya, lihat [Langkah 4: Buat profil instans IAM untuk instans Amazon EC2 Anda](getting-started-create-iam-instance-profile.md).

## Revisi
<a name="primary-components-revision"></a>

*Revisi* adalah versi aplikasi Anda. Revisi penyebaran AWS Lambda adalah file berformat YAMAL atau JSON yang menentukan informasi tentang fungsi Lambda yang akan digunakan. Revisi penyebaran EC2 /On-Premise adalah file arsip yang berisi konten sumber (kode sumber, halaman web, file yang dapat dieksekusi, dan skrip penerapan) dan file spesifikasi aplikasi (file). AppSpec AWS Revisi Lambda dapat disimpan di ember Amazon S3. EC2/Revisi di Tempat disimpan di bucket atau repositori Amazon S3. GitHub Untuk Amazon S3, revisi diidentifikasi secara unik oleh kunci objek Amazon S3 dan versi, atau keduanya. ETag Untuk GitHub, revisi diidentifikasi secara unik oleh ID komitnya.

## Peran layanan
<a name="primary-components-service-role"></a>

*Peran layanan adalah peran* IAM yang memberikan izin ke AWS layanan sehingga dapat mengakses sumber daya. AWS Kebijakan yang Anda lampirkan ke peran layanan menentukan AWS sumber daya yang dapat diakses oleh layanan dan tindakan yang dapat dilakukan dengan sumber daya tersebut. Untuk CodeDeploy, peran layanan digunakan untuk hal berikut:
+ Untuk membaca tag yang diterapkan ke instance atau nama grup Amazon EC2 Auto Scaling yang terkait dengan instans. Ini memungkinkan CodeDeploy untuk mengidentifikasi instance yang dapat digunakan aplikasi.
+ Untuk melakukan operasi pada instans, Amazon EC2 Auto Scaling mengelompokkan, dan penyeimbang beban Elastic Load Balancing.
+ Untuk mempublikasikan informasi ke topik Amazon SNS sehingga notifikasi dapat dikirim saat penerapan atau kejadian instans tertentu terjadi.
+ Untuk mengambil informasi tentang CloudWatch alarm untuk mengatur pemantauan alarm untuk penyebaran.

Untuk informasi selengkapnya, lihat [Langkah 2: Buat peran layanan untuk CodeDeploy](getting-started-create-service-role.md).

## Revisi target
<a name="primary-components-target-revision"></a>

*Revisi target* adalah versi terbaru dari revisi aplikasi yang telah Anda unggah ke repositori Anda dan ingin menyebarkan ke instance dalam grup penyebaran. Dengan kata lain, revisi aplikasi saat ini ditargetkan untuk deployment. Ini juga merupakan revisi yang ditarik untuk penerapan otomatis.

## Komponen lainnya
<a name="primary-components-other-components"></a>

Untuk informasi tentang komponen lain dalam CodeDeploy alur kerja, lihat topik berikut:
+ [Pilih jenis CodeDeploy repositori](application-revisions-repository-type.md)
+  [CodeDeploy penyebaran](deployment-steps.md)
+  [CodeDeploy spesifikasi aplikasi (AppSpec) file](application-specification-files.md)
+  [CodeDeploy misalnya kesehatan](instances-health.md)
+  [Bekerja dengan CodeDeploy agen](codedeploy-agent.md)
+  [Bekerja dengan instans lokal untuk CodeDeploy](instances-on-premises.md)

# CodeDeploy penyebaran
<a name="deployment-steps"></a>

Topik ini memberikan informasi tentang komponen dan alur kerja penerapan di. CodeDeploy Proses penerapan bervariasi, tergantung pada platform komputasi atau metode penerapan (Lambda, Amazon ECS, EC2/Lokal, atau melalui) yang Anda gunakan untuk penerapan. AWS CloudFormation

**Topics**
+ [Penerapan pada Platform Komputasi Lambda AWS](deployment-steps-lambda.md)
+ [Deployment di Platform Komputasi Amazon ECS](deployment-steps-ecs.md)
+ [Penerapan pada EC2/Platform Komputasi Lokal](deployment-steps-server.md)

# Penerapan pada Platform Komputasi Lambda AWS
<a name="deployment-steps-lambda"></a>

Topik ini memberikan informasi tentang komponen dan alur kerja CodeDeploy penerapan yang menggunakan platform komputasi Lambda AWS . 

**Topics**
+ [Alur kerja penerapan pada platform komputasi AWS Lambda](#deployment-process-workflow-lambda)
+ [Mengunggah revisi aplikasi Anda](#deployment-steps-uploading-your-app-lambda)
+ [Membuat grup aplikasi dan penerapan](#deployment-steps-registering-app-deployment-groups-lambda)
+ [Menyebarkan revisi aplikasi Anda](#deployment-steps-deploy-lambda)
+ [Memperbarui aplikasi Anda](#deployment-steps-updating-your-app-lambda)
+ [Penerapan yang dihentikan dan gagal](#deployment-stop-fail-lambda)
+ [Penerapan ulang dan rollback penerapan](#deployment-rollback-lambda)

## Alur kerja penerapan pada platform komputasi AWS Lambda
<a name="deployment-process-workflow-lambda"></a>

Diagram berikut menunjukkan langkah-langkah utama dalam penyebaran AWS Lambda fungsi baru dan diperbarui.

![\[Bagaimana CodeDeploy menyebarkan AWS Lambda fungsi baru atau yang diperbarui.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/deployment-process-lambda.png)


Langkah-langkah ini meliputi:

1. Buat aplikasi dan berikan nama yang secara unik mengidentifikasi revisi aplikasi yang ingin Anda terapkan. Untuk menerapkan fungsi Lambda, pilih platform komputasi AWS Lambda saat Anda membuat aplikasi. CodeDeploy menggunakan nama ini selama penerapan untuk memastikannya merujuk komponen penerapan yang benar, seperti grup penyebaran, konfigurasi penerapan, dan revisi aplikasi. Untuk informasi selengkapnya, lihat [Buat aplikasi dengan CodeDeploy](applications-create.md). 

1. Siapkan grup penyebaran dengan menentukan nama grup penyebaran Anda.

1. Pilih konfigurasi penerapan untuk menentukan bagaimana lalu lintas digeser dari versi AWS Lambda fungsi asli Anda ke versi fungsi Lambda baru Anda. Untuk informasi selengkapnya, lihat [Lihat detail konfigurasi penerapan dengan CodeDeploy](deployment-configurations-view-details.md).

1. Mengunggah *file spesifikasi aplikasi (AppSpec file*) ke Amazon S3. AppSpec File menentukan versi fungsi Lambda dan fungsi Lambda yang digunakan untuk memvalidasi penerapan Anda. Jika Anda tidak ingin membuat AppSpec file, Anda dapat menentukan versi fungsi Lambda dan fungsi validasi penerapan Lambda secara langsung di konsol menggunakan YAMG atau JSON. Untuk informasi selengkapnya, lihat [Bekerja dengan revisi aplikasi untuk CodeDeploy](application-revisions.md).

1. Menerapkan revisi aplikasi Anda ke grup penyebaran. AWS CodeDeploy menerapkan revisi fungsi Lambda yang Anda tentukan. Lalu lintas dialihkan ke revisi fungsi Lambda Anda menggunakan file AppSpec deployment yang Anda pilih saat Anda membuat aplikasi Anda. Untuk informasi selengkapnya, lihat [Buat penerapan dengan CodeDeploy](deployments-create.md).

1. Periksa hasil penerapan. Untuk informasi selengkapnya, lihat [Memantau penyebaran di CodeDeploy](monitoring.md).

## Mengunggah revisi aplikasi Anda
<a name="deployment-steps-uploading-your-app-lambda"></a>

Tempatkan AppSpec file di Amazon S3 atau masukkan langsung ke konsol atau. AWS CLI Untuk informasi selengkapnya, lihat [CodeDeploy spesifikasi aplikasi (AppSpec) file](application-specification-files.md).

## Membuat grup aplikasi dan penerapan
<a name="deployment-steps-registering-app-deployment-groups-lambda"></a>

Grup CodeDeploy penyebaran pada platform komputasi AWS Lambda mengidentifikasi kumpulan satu atau beberapa file. AppSpec Setiap AppSpec file dapat menggunakan satu versi fungsi Lambda. Grup penyebaran juga mendefinisikan serangkaian opsi konfigurasi untuk penerapan masa depan, seperti alarm dan konfigurasi rollback.

## Menyebarkan revisi aplikasi Anda
<a name="deployment-steps-deploy-lambda"></a>

Sekarang Anda siap untuk menerapkan revisi fungsi yang ditentukan dalam AppSpec file ke grup penyebaran. Anda dapat menggunakan CodeDeploy konsol atau perintah [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Ada parameter yang dapat Anda tentukan untuk mengontrol penerapan Anda, termasuk revisi, grup penyebaran, dan konfigurasi penerapan.

## Memperbarui aplikasi Anda
<a name="deployment-steps-updating-your-app-lambda"></a>

Anda dapat membuat pembaruan pada aplikasi Anda dan kemudian menggunakan CodeDeploy konsol atau memanggil perintah [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) untuk mendorong revisi. 

## Penerapan yang dihentikan dan gagal
<a name="deployment-stop-fail-lambda"></a>

Anda dapat menggunakan CodeDeploy konsol atau perintah [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) untuk menghentikan penerapan. Saat Anda mencoba menghentikan penerapan, salah satu dari tiga hal terjadi:
+ Penerapan berhenti, dan operasi mengembalikan status berhasil. Dalam kasus ini, tidak ada lagi peristiwa siklus hidup penerapan yang dijalankan pada grup penerapan untuk penerapan yang dihentikan. 
+ Penyebaran tidak segera berhenti, dan operasi mengembalikan status tertunda. Dalam kasus ini, beberapa peristiwa siklus hidup penerapan mungkin masih berjalan di grup penerapan. Setelah operasi yang tertunda selesai, panggilan berikutnya untuk menghentikan penyebaran mengembalikan status berhasil.
+ Penerapan tidak dapat berhenti, dan operasi mengembalikan kesalahan. Untuk informasi selengkapnya, lihat [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)dan [Kesalahan umum](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) di Referensi AWS CodeDeploy API.

Seperti penerapan yang dihentikan, penerapan yang gagal dapat mengakibatkan beberapa peristiwa siklus hidup penerapan telah dijalankan. Untuk mengetahui mengapa penerapan gagal, Anda dapat menggunakan CodeDeploy konsol atau menganalisis data file log dari penerapan yang gagal. Untuk informasi selengkapnya, lihat [Revisi aplikasi dan pembersihan file log](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) dan [Melihat data log untuk penerapan CodeDeploy EC2/Lokal](deployments-view-logs.md).

## Penerapan ulang dan rollback penerapan
<a name="deployment-rollback-lambda"></a>

CodeDeploy mengimplementasikan rollback dengan menerapkan kembali, sebagai penerapan baru, revisi yang sebelumnya diterapkan. 

Anda dapat mengonfigurasi grup penerapan untuk secara otomatis memutar kembali penerapan saat kondisi tertentu terpenuhi, termasuk saat penerapan gagal atau ambang batas pemantauan alarm terpenuhi. Anda juga dapat mengganti pengaturan rollback yang ditentukan untuk grup penerapan dalam penerapan individual.

Anda juga dapat memilih untuk mengembalikan penerapan yang gagal dengan menerapkan ulang revisi yang sebelumnya digunakan secara manual. 

Dalam semua kasus, penerapan baru atau rolled-back diberi ID penerapan sendiri. Daftar penerapan yang dapat Anda lihat di CodeDeploy konsol menunjukkan mana yang merupakan hasil dari penerapan otomatis. 

Untuk informasi selengkapnya, lihat [Menerapkan ulang dan memutar kembali penerapan dengan CodeDeploy](deployments-rollback-and-redeploy.md).

# Deployment di Platform Komputasi Amazon ECS
<a name="deployment-steps-ecs"></a>

Topik ini memberikan informasi tentang komponen dan alur kerja CodeDeploy penerapan yang menggunakan platform komputasi Amazon ECS. 

**Topics**
+ [Sebelum Anda memulai penyebaran Amazon ECS](#deployment-steps-prerequisites-ecs)
+ [Alur kerja penerapan (tingkat tinggi) pada platform komputasi Amazon ECS](#deployment-process-workflow-ecs)
+ [Apa yang terjadi selama penyebaran Amazon ECS](#deployment-steps-what-happens)
+ [Mengunggah revisi aplikasi Anda](#deployment-steps-uploading-your-app-ecs)
+ [Membuat grup aplikasi dan penerapan](#deployment-steps-registering-app-deployment-groups-ecs)
+ [Menyebarkan revisi aplikasi Anda](#deployment-steps-deploy-ecs)
+ [Memperbarui aplikasi Anda](#deployment-steps-updating-your-app-ecs)
+ [Penerapan yang dihentikan dan gagal](#deployment-stop-fail-ecs)
+ [Penerapan ulang dan rollback penerapan](#deployment-rollback-ecs)
+ [blue/green Penerapan Amazon ECS melalui AWS CloudFormation](#deployment-steps-ecs-cf)

## Sebelum Anda memulai penyebaran Amazon ECS
<a name="deployment-steps-prerequisites-ecs"></a>

 Sebelum Anda memulai penyebaran aplikasi Amazon ECS, Anda harus menyiapkan yang berikut ini. Beberapa persyaratan ditentukan saat Anda membuat grup penyebaran, dan beberapa ditentukan dalam AppSpec file.


****  

| Persyaratan | Dimana ditentukan | 
| --- | --- | 
| Kluster Amazon ECS | Grup deployment | 
| Layanan Amazon ECS | Grup deployment | 
| Application Load Balancer atau Network Load Balancer | Grup deployment | 
| Listener produksi | Grup deployment | 
| Uji pendengar (opsional) | Grup deployment | 
| Dua grup target | Grup deployment | 
| Definisi tugas Amazon ECS | AppSpec berkas | 
| Nama kontainer | AppSpec berkas | 
| Pelabuhan kontainer | AppSpec berkas | 

**Kluster Amazon ECS**  
*Cluster* Amazon ECS adalah pengelompokan tugas atau layanan yang logis. Anda menentukan klaster Amazon ECS yang berisi layanan Amazon ECS saat membuat grup CodeDeploy penerapan aplikasi. Untuk informasi selengkapnya, lihat [klaster Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_clusters.html) di *Panduan Pengguna Layanan Amazon Elastic Container*.

**Layanan Amazon ECS**  
*Layanan* Amazon ECS memelihara dan menjalankan instance definisi tugas yang ditentukan dalam klaster Amazon ECS. Layanan Amazon ECS Anda harus diaktifkan untuk CodeDeploy. Secara default, layanan Amazon ECS diaktifkan untuk penerapan Amazon ECS. Saat membuat grup penerapan, Anda memilih untuk menerapkan layanan Amazon ECS yang ada di kluster Amazon ECS Anda. Untuk informasi selengkapnya, lihat layanan [Amazon ECS di Panduan Pengguna Layanan](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html) *Amazon Elastic Container*.

**Application Load Balancer atau Network Load Balancer**  
 Anda harus menggunakan Elastic Load Balancing dengan layanan Amazon ECS yang ingin Anda perbarui dengan penyebaran Amazon ECS. Anda dapat menggunakan Application Load Balancer atau Network Load Balancer. Kami merekomendasikan Application Load Balancer sehingga Anda dapat memanfaatkan fitur-fitur seperti pemetaan port dinamis dan routing berbasis jalur dan aturan prioritas. Anda menentukan penyeimbang beban saat membuat grup CodeDeploy penerapan aplikasi. Untuk informasi selengkapnya, lihat [Siapkan penyeimbang beban, grup target, dan pendengar untuk penerapan Amazon CodeDeploy ECS](deployment-groups-create-load-balancer-for-ecs.md) dan [Membuat penyeimbang beban](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-load-balancer.html) di *Panduan Pengguna Amazon Elastic Container Service*. 

**Satu atau dua pendengar**  
*Listener* digunakan oleh penyeimbang beban Anda untuk mengarahkan lalu lintas ke grup target Anda. Diperlukan satu pendengar produksi. Anda dapat menentukan pendengar pengujian kedua opsional yang mengarahkan lalu lintas ke set tugas pengganti saat menjalankan pengujian validasi. Anda menentukan satu atau kedua pendengar saat membuat grup penerapan. Jika Anda menggunakan konsol Amazon ECS untuk membuat layanan Amazon ECS Anda, pendengar Anda dibuat untuk Anda. Untuk informasi selengkapnya, lihat [Pendengar untuk penyeimbang beban aplikasi Anda di Panduan Pengguna *Elastic Load Balancing dan Membuat layanan di Panduan Pengguna**Amazon* Elastic Container](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listener.html) [Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service.html).

**Dua kelompok sasaran Amazon ECS**  
 *Kelompok sasaran* digunakan untuk mengarahkan lalu lintas ke target yang terdaftar. Penyebaran Amazon ECS memerlukan dua grup target: satu untuk set tugas asli aplikasi Amazon ECS Anda dan satu untuk set tugas penggantinya. Selama penerapan, CodeDeploy membuat set tugas pengganti dan mengalihkan lalu lintas dari tugas asli yang disetel ke yang baru. Anda menentukan grup target saat membuat grup CodeDeploy penerapan aplikasi Anda.   
 Selama penerapan, CodeDeploy tentukan grup target mana yang terkait dengan set tugas di layanan Amazon ECS Anda yang memiliki status `PRIMARY` (ini adalah kumpulan tugas asli) dan mengaitkan satu grup target dengannya, lalu mengaitkan grup target lainnya dengan set tugas pengganti. Jika Anda melakukan penerapan lain, grup target yang terkait dengan set tugas asli penerapan saat ini dikaitkan dengan set tugas pengganti penerapan berikutnya. Untuk informasi selengkapnya, lihat [Grup target untuk penyeimbang beban aplikasi Anda](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html) di Panduan Pengguna *Elastic Load Balancing*. 

**Definisi tugas Amazon ECS**  
 *Definisi tugas* diperlukan untuk menjalankan container Docker yang berisi aplikasi Amazon ECS Anda. Anda menentukan ARN definisi tugas Anda dalam file CodeDeploy aplikasi Anda. AppSpec Untuk informasi selengkapnya, lihat [definisi tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) di *Panduan Pengguna Layanan Kontainer Elastis Amazon* dan[AppSpec Bagian 'sumber daya' untuk penerapan Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Wadah untuk aplikasi Amazon ECS Anda**  
 *Container* Docker adalah unit perangkat lunak yang mengemas kode dan dependensinya sehingga aplikasi Anda dapat berjalan. Sebuah wadah mengisolasi aplikasi Anda sehingga berjalan di lingkungan komputasi yang berbeda. Penyeimbang beban Anda mengarahkan lalu lintas ke kontainer di set tugas aplikasi Amazon ECS Anda. Anda menentukan nama kontainer Anda dalam AppSpec file CodeDeploy aplikasi Anda. Penampung yang ditentukan dalam AppSpec file Anda harus merupakan salah satu kontainer yang ditentukan dalam definisi tugas Amazon ECS Anda. Untuk informasi selengkapnya, lihat [Apa itu Amazon Elastic Container Service?](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) di *Panduan Pengguna Layanan Kontainer Elastis Amazon* dan[AppSpec Bagian 'sumber daya' untuk penerapan Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

**Port untuk set tugas pengganti Anda**  
 Selama penerapan Amazon ECS, penyeimbang beban mengarahkan lalu lintas ke *port* ini pada penampung yang ditentukan dalam file aplikasi Anda CodeDeploy. AppSpec Anda menentukan port dalam AppSpec file CodeDeploy aplikasi Anda. Untuk informasi selengkapnya, lihat [AppSpec Bagian 'sumber daya' untuk penerapan Amazon ECS](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs). 

## Alur kerja penerapan (tingkat tinggi) pada platform komputasi Amazon ECS
<a name="deployment-process-workflow-ecs"></a>

Diagram berikut menunjukkan langkah-langkah utama dalam penyebaran layanan Amazon ECS yang diperbarui.

![\[Bagaimana CodeDeploy menyebarkan aplikasi sebagai tugas yang ditetapkan ke Amazon ECS.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/deployment-process-ecs.png)


Langkah-langkah ini meliputi:

1. Buat AWS CodeDeploy aplikasi dengan menentukan nama yang secara unik mewakili apa yang ingin Anda gunakan. Untuk menerapkan aplikasi Amazon ECS, di AWS CodeDeploy aplikasi Anda, pilih platform komputasi Amazon ECS. CodeDeploy menggunakan aplikasi selama penerapan untuk mereferensikan komponen penyebaran yang benar, seperti grup penyebaran, grup target, pendengar, dan perilaku pengalihan rute lalu lintas, dan revisi aplikasi. Untuk informasi selengkapnya, lihat [Buat aplikasi dengan CodeDeploy](applications-create.md). 

1. Siapkan grup penerapan dengan menentukan:
   +  Nama grup penyebaran. 
   +  Cluster Amazon ECS dan nama layanan Anda. Pengontrol penyebaran layanan Amazon ECS harus disetel ke. CodeDeploy 
   +  Pendengar produksi, pendengar uji opsional, dan grup target yang digunakan selama penerapan. 
   +  Pengaturan penerapan, seperti kapan mengalihkan lalu lintas produksi ke tugas Amazon ECS pengganti yang disetel di layanan Amazon ECS Anda dan kapan harus menghentikan tugas Amazon ECS asli yang disetel di layanan Amazon ECS Anda. 
   +  Pengaturan opsional, seperti pemicu, alarm, dan perilaku rollback. 

1. Tentukan *file spesifikasi aplikasi* (AppSpec file). Anda dapat mengunggahnya ke Amazon S3, memasukkannya ke konsol dalam format YAMAL atau JSON, atau menentukannya dengan atau SDK. AWS CLI AppSpec File tersebut menentukan definisi tugas Amazon ECS untuk penerapan, nama kontainer, dan pemetaan port yang digunakan untuk merutekan lalu lintas, dan fungsi Lambda berjalan setelah kait siklus hidup penerapan. Nama kontainer harus berupa wadah dalam definisi tugas Amazon ECS Anda. Untuk informasi selengkapnya, lihat [Bekerja dengan revisi aplikasi untuk CodeDeploy](application-revisions.md).

1. Terapkan revisi aplikasi Anda. AWS CodeDeploy mengalihkan lalu lintas dari versi asli tugas yang ditetapkan di layanan Amazon ECS Anda ke set tugas pengganti yang baru. Grup target yang ditentukan dalam grup penyebaran digunakan untuk melayani lalu lintas ke set tugas asli dan pengganti. Setelah penerapan selesai, set tugas asli dihentikan. Anda dapat menentukan pendengar pengujian opsional untuk menyajikan lalu lintas pengujian ke versi pengganti Anda sebelum lalu lintas dialihkan ke versi tersebut. Untuk informasi selengkapnya, lihat [Buat penerapan dengan CodeDeploy](deployments-create.md).

1. Periksa hasil penerapan. Untuk informasi selengkapnya, lihat [Memantau penyebaran di CodeDeploy](monitoring.md).

## Apa yang terjadi selama penyebaran Amazon ECS
<a name="deployment-steps-what-happens"></a>

Sebelum penerapan Amazon ECS dengan pendengar pengujian dimulai, Anda harus mengonfigurasi komponennya. Untuk informasi selengkapnya, lihat [Sebelum Anda memulai penyebaran Amazon ECS](#deployment-steps-prerequisites-ecs).

 Diagram berikut menunjukkan hubungan antara komponen-komponen ini ketika penyebaran Amazon ECS siap untuk dimulai. 

![\[Hubungan antara penyeimbang beban, pendengar, grup target, dan set tugas saat penerapan Amazon ECS siap untuk dimulai.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-1.png)


Saat penerapan dimulai, peristiwa siklus hidup penerapan mulai dijalankan satu per satu. Beberapa peristiwa siklus hidup adalah kait yang hanya menjalankan fungsi Lambda yang ditentukan dalam file. AppSpec Peristiwa siklus hidup penerapan dalam tabel berikut tercantum dalam urutan yang dieksekusi. Untuk informasi selengkapnya, lihat [AppSpec Bagian 'kait' untuk penerapan Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs).


| Acara siklus hidup | Tindakan peristiwa siklus hidup | 
| --- | --- | 
| BeforeInstall(pengait untuk fungsi Lambda) | Jalankan fungsi Lambda. | 
| Menginstal | Siapkan set tugas pengganti. | 
| AfterInstall(pengait untuk fungsi Lambda) | Jalankan fungsi Lambda. | 
| AllowTestTraffic | Rutekan lalu lintas dari pendengar pengujian ke grup target 2. | 
| AfterAllowTestTraffic(pengait untuk fungsi Lambda) | Jalankan fungsi Lambda. | 
| BeforeAllowTraffic(pengait untuk fungsi Lambda) | Jalankan fungsi Lambda. | 
| AllowTraffic | Rutekan lalu lintas dari pendengar produksi ke grup target 2. | 
| AfterAllowTraffic | Jalankan fungsi Lambda. | 



**catatan**  
Fungsi Lambda di hook adalah opsional.

1. <a name="ecs-before-install"></a>

****

   Jalankan fungsi Lambda apa pun yang ditentukan dalam `BeforeInstall` hook dalam file. AppSpec 

1. <a name="ecs-install"></a>

****

   Selama acara `Install` siklus hidup:

   1.  Set tugas pengganti dibuat di layanan Amazon ECS Anda. 

   1.  Aplikasi kontainer yang diperbarui diinstal ke dalam set tugas pengganti. 

   1.  Kelompok target kedua dikaitkan dengan set tugas pengganti. 

    Diagram ini menunjukkan komponen penyebaran dengan set tugas pengganti baru. Aplikasi kontainer ada di dalam set tugas ini. Set tugas terdiri dari tiga tugas. (Aplikasi dapat memiliki sejumlah tugas.) Kelompok target kedua sekarang dikaitkan dengan set tugas pengganti.   
![\[Komponen penyebaran dengan set tugas pengganti baru. Aplikasi kontainer ada di dalam set tugas ini. Set tugas terdiri dari tiga tugas. Kelompok target kedua sekarang dikaitkan dengan set tugas pengganti.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-2.png)

1. <a name="ecs-after-install"></a>

****

   Jalankan fungsi Lambda apa pun yang ditentukan dalam `AfterInstall` hook dalam file. AppSpec 

1. <a name="ecs-allow-test-traffic"></a>

****

   `AllowTestTraffic`Acara ini dipanggil. Selama peristiwa siklus hidup ini, pendengar pengujian merutekan lalu lintas ke aplikasi kontainer yang diperbarui.  
![\[Pendengar pengujian merutekan lalu lintas ke aplikasi kontainer yang diperbarui.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-3.png)

1. <a name="ecs-after-allow-test-traffic"></a>

****

   Jalankan fungsi Lambda apa pun yang ditentukan dalam `AfterAllowTestTraffic` hook dalam file. AppSpec Fungsi Lambda dapat memvalidasi penerapan menggunakan lalu lintas pengujian. Misalnya, fungsi Lambda dapat menyajikan lalu lintas ke listener pengujian dan melacak metrik dari set tugas pengganti. Jika rollback dikonfigurasi, Anda dapat mengonfigurasi CloudWatch alarm yang memicu rollback saat tes validasi di fungsi Lambda Anda gagal.

    Setelah tes validasi selesai, salah satu hal berikut terjadi: 
   +  Jika validasi gagal dan rollback dikonfigurasi, status penerapan ditandai `Failed` dan komponen kembali ke statusnya saat penerapan dimulai. 
   +  Jika validasi gagal dan rollback tidak dikonfigurasi, status penerapan ditandai `Failed` dan komponen tetap dalam keadaan saat ini.
   +  Jika validasi berhasil, penerapan berlanjut ke hook. `BeforeAllowTraffic`

    Lihat informasi selengkapnya di [Memantau penyebaran dengan CloudWatch alarm di CodeDeploy](monitoring-create-alarms.md), [Rollback otomatis](deployments-rollback-and-redeploy.md#deployments-rollback-and-redeploy-automatic-rollbacks), dan [Mengonfigurasi opsi lanjutan untuk grup deployment](deployment-groups-configure-advanced-options.md). 

1. <a name="ecs-before-allow-traffic"></a>

****

   Jalankan fungsi Lambda apa pun yang ditentukan dalam `BeforeAllowTraffic` hook dalam file. AppSpec 

1. <a name="ecs-allow-traffic"></a>

****

   `AllowTraffic`Acara ini dipanggil. Lalu lintas produksi dialihkan dari tugas asli yang disetel ke set tugas pengganti. Diagram berikut menunjukkan set tugas penggantian yang menerima lalu lintas produksi.   
![\[Set tugas pengganti menerima lalu lintas produksi.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-4.png)

1. <a name="ecs-after-allow-traffic"></a>

****

   Jalankan fungsi Lambda apa pun yang ditentukan dalam `AfterAllowTraffic` hook dalam file. AppSpec 

1. 

****

   Setelah semua peristiwa berhasil, status penerapan disetel ke `Succeeded` dan set tugas asli dihapus.   
![\[Semua acara berhasil.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-6.png)

## Mengunggah revisi aplikasi Anda
<a name="deployment-steps-uploading-your-app-ecs"></a>

Tempatkan AppSpec file di Amazon S3 atau masukkan langsung ke konsol atau. AWS CLI Untuk informasi selengkapnya, lihat [CodeDeploy spesifikasi aplikasi (AppSpec) file](application-specification-files.md).

## Membuat grup aplikasi dan penerapan
<a name="deployment-steps-registering-app-deployment-groups-ecs"></a>

Grup CodeDeploy penerapan pada platform komputasi Amazon ECS mengidentifikasi pendengar untuk menayangkan lalu lintas ke aplikasi Amazon ECS Anda yang diperbarui dan dua grup target yang digunakan selama penerapan Anda. Grup penyebaran juga mendefinisikan serangkaian opsi konfigurasi, seperti alarm dan konfigurasi rollback.

## Menyebarkan revisi aplikasi Anda
<a name="deployment-steps-deploy-ecs"></a>

Sekarang Anda siap untuk menerapkan layanan Amazon ECS yang diperbarui yang ditentukan dalam grup penerapan Anda. Anda dapat menggunakan CodeDeploy konsol atau perintah [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Ada parameter yang dapat Anda tentukan untuk mengontrol penyebaran Anda, termasuk grup revisi dan penerapan.

## Memperbarui aplikasi Anda
<a name="deployment-steps-updating-your-app-ecs"></a>

Anda dapat membuat pembaruan pada aplikasi Anda dan kemudian menggunakan CodeDeploy konsol atau memanggil perintah [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) untuk mendorong revisi. 

## Penerapan yang dihentikan dan gagal
<a name="deployment-stop-fail-ecs"></a>

Anda dapat menggunakan CodeDeploy konsol atau perintah [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) untuk menghentikan penerapan. Saat Anda mencoba menghentikan penerapan, salah satu dari tiga hal terjadi:
+ Penerapan berhenti, dan operasi mengembalikan status berhasil. Dalam kasus ini, tidak ada lagi peristiwa siklus hidup penerapan yang dijalankan pada grup penerapan untuk penerapan yang dihentikan. 
+ Penyebaran tidak segera berhenti, dan operasi mengembalikan status tertunda. Dalam kasus ini, beberapa peristiwa siklus hidup penerapan mungkin masih berjalan di grup penerapan. Setelah operasi yang tertunda selesai, panggilan berikutnya untuk menghentikan penyebaran mengembalikan status berhasil.
+ Penerapan tidak dapat berhenti, dan operasi mengembalikan kesalahan. Untuk informasi selengkapnya, lihat [Informasi kesalahan](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html) dan [Kesalahan umum](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) di Referensi AWS CodeDeploy API.

## Penerapan ulang dan rollback penerapan
<a name="deployment-rollback-ecs"></a>

CodeDeploy mengimplementasikan rollback dengan mengalihkan lalu lintas dari tugas pengganti yang disetel ke set tugas asli. 

Anda dapat mengonfigurasi grup penerapan untuk secara otomatis memutar kembali penerapan saat kondisi tertentu terpenuhi, termasuk saat penerapan gagal atau ambang batas pemantauan alarm terpenuhi. Anda juga dapat mengganti pengaturan rollback yang ditentukan untuk grup penerapan dalam penerapan individual.

Anda juga dapat memilih untuk mengembalikan penerapan yang gagal dengan menerapkan ulang revisi yang sebelumnya digunakan secara manual. 

Dalam semua kasus, penerapan baru atau rolled-back diberi ID penerapan sendiri. CodeDeploy Konsol menampilkan daftar penerapan yang merupakan hasil dari penerapan otomatis. 

Jika Anda menerapkan ulang, grup target yang terkait dengan set tugas asli penerapan saat ini dikaitkan dengan set tugas pengganti penempatan ulang.

Untuk informasi selengkapnya, lihat [Menerapkan ulang dan memutar kembali penerapan dengan CodeDeploy](deployments-rollback-and-redeploy.md).

## blue/green Penerapan Amazon ECS melalui AWS CloudFormation
<a name="deployment-steps-ecs-cf"></a>

Anda dapat menggunakan AWS CloudFormation untuk mengelola blue/green penyebaran Amazon ECS melalui. CodeDeploy Untuk informasi selengkapnya, lihat [Buat blue/green penyebaran Amazon ECS melalui CloudFormation](deployments-create-ecs-cfn.md).

**catatan**  
Mengelola blue/green penerapan Amazon ECS tidak CloudFormation tersedia di wilayah Asia Pasifik (Osaka).

# Penerapan pada EC2/Platform Komputasi Lokal
<a name="deployment-steps-server"></a>

Topik ini memberikan informasi tentang komponen dan alur kerja CodeDeploy penerapan yang menggunakan platform komputasi EC2/On-premise. Untuk informasi tentang blue/green penerapan, lihat. [Ikhtisar blue/green penerapan](welcome.md#welcome-deployment-overview-blue-green)

**Topics**
+ [Komponen penerapan pada platform komputasi EC2/Lokal](#deployment-steps-components-server)
+ [Alur kerja penerapan pada platform komputasi EC2/Lokal](#deployment-steps-workflow)
+ [Menyiapkan instance](#deployment-steps-setting-up-instances)
+ [Mengunggah revisi aplikasi Anda](#deployment-steps-uploading-your-app)
+ [Membuat grup aplikasi dan penerapan](#deployment-steps-registering-app-deployment-groups)
+ [Menyebarkan revisi aplikasi Anda](#deployment-steps-deploy)
+ [Memperbarui aplikasi Anda](#deployment-steps-updating-your-app)
+ [Penerapan yang dihentikan dan gagal](#deployment-stop-fail)
+ [Penerapan ulang dan rollback penerapan](#deployment-rollback)

## Komponen penerapan pada platform komputasi EC2/Lokal
<a name="deployment-steps-components-server"></a>

Diagram berikut menunjukkan komponen dalam CodeDeploy penerapan pada platform komputasi EC2/On-premise. 

![\[Komponen dalam CodeDeploy penerapan pada platform komputasi EC2/On-premise.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/deployment-components-workflow.png)


## Alur kerja penerapan pada platform komputasi EC2/Lokal
<a name="deployment-steps-workflow"></a>

Diagram berikut menunjukkan langkah-langkah utama dalam penyebaran revisi aplikasi:

![\[Langkah-langkah utama dalam penyebaran revisi aplikasi.\]](http://docs.aws.amazon.com/id_id/codedeploy/latest/userguide/images/deployment-process.png)


Langkah-langkah ini meliputi:

1. Buat aplikasi dan berikan nama yang secara unik mengidentifikasi revisi aplikasi yang ingin Anda terapkan dan platform komputasi untuk aplikasi Anda. CodeDeploy menggunakan nama ini selama penerapan untuk memastikannya merujuk komponen penerapan yang benar, seperti grup penyebaran, konfigurasi penerapan, dan revisi aplikasi. Untuk informasi selengkapnya, lihat [Buat aplikasi dengan CodeDeploy](applications-create.md).

1. Siapkan grup penerapan dengan menentukan jenis penerapan dan instance yang ingin Anda gunakan untuk menerapkan revisi aplikasi. Penerapan di tempat memperbarui instance dengan revisi aplikasi terbaru. blue/green Penerapan mendaftarkan sekumpulan instance pengganti untuk grup penerapan dengan penyeimbang beban dan membatalkan pendaftaran instans asli. 

   Anda dapat menentukan tag yang diterapkan pada instans, nama grup Amazon EC2 Auto Scaling, atau keduanya.

   Jika Anda menentukan satu grup tag dalam grup penyebaran, CodeDeploy deploy ke instance yang memiliki setidaknya satu tag yang ditentukan diterapkan. Jika Anda menentukan dua atau beberapa grup tag, CodeDeploy hanya akan diterapkan ke instance yang memenuhi kriteria untuk masing-masing grup tag. Untuk informasi selengkapnya, lihat [Menandai instance untuk grup penerapan di CodeDeploy](instances-tagging.md).

   Dalam semua kasus, instans harus dikonfigurasi untuk digunakan dalam penerapan (yaitu, mereka harus ditandai atau milik grup Amazon EC2 Auto Scaling) dan memiliki agen diinstal dan CodeDeploy dijalankan. 

   Kami menyediakan CloudFormation template yang dapat Anda gunakan untuk menyiapkan instans Amazon EC2 dengan cepat berdasarkan Amazon Linux atau Windows Server. Kami juga menyediakan CodeDeploy agen mandiri sehingga Anda dapat menginstalnya di Amazon Linux, Ubuntu Server, Red Hat Enterprise Linux (RHEL), atau instans Windows Server. Untuk informasi selengkapnya, lihat [Buat grup penerapan dengan CodeDeploy](deployment-groups-create.md).

   Anda juga dapat menentukan parameter berikut: 
   + **Pemberitahuan Amazon SNS**. Buat pemicu yang mengirim pemberitahuan ke pelanggan topik Amazon SNS saat peristiwa tertentu, seperti peristiwa sukses atau gagal, terjadi dalam penerapan dan instance. Untuk informasi selengkapnya, lihat [Memantau penerapan dengan notifikasi acara Amazon SNS](monitoring-sns-event-notifications.md).
   + Manajemen **penyebaran berbasis alarm**. Menerapkan pemantauan CloudWatch alarm Amazon untuk menghentikan penerapan ketika metrik Anda melebihi atau jatuh di bawah ambang batas yang ditetapkan. CloudWatch
   + **Rollback penerapan otomatis**. Konfigurasikan penerapan untuk memutar kembali secara otomatis ke revisi baik yang sebelumnya diketahui saat penerapan gagal atau ambang batas alarm terpenuhi.

1. Tentukan konfigurasi penerapan untuk menunjukkan berapa banyak instance revisi aplikasi Anda harus diterapkan secara bersamaan dan untuk menjelaskan kondisi keberhasilan dan kegagalan untuk penerapan. Untuk informasi selengkapnya, lihat [Lihat detail konfigurasi penerapan dengan CodeDeploy](deployment-configurations-view-details.md).

1. Unggah revisi aplikasi ke Amazon GitHub S3 atau. Selain file yang ingin Anda gunakan dan skrip apa pun yang ingin Anda jalankan selama penerapan, Anda harus menyertakan *file spesifikasi aplikasi (file*)AppSpec . File ini berisi instruksi penyebaran, seperti tempat untuk menyalin file ke setiap instance dan kapan menjalankan skrip penerapan. Untuk informasi selengkapnya, lihat [Bekerja dengan revisi aplikasi untuk CodeDeploy](application-revisions.md).

1. Menerapkan revisi aplikasi Anda ke grup penyebaran. CodeDeploy Agen pada setiap instans dalam grup penerapan menyalin revisi aplikasi Anda dari Amazon S3 GitHub atau ke instance. CodeDeploy Agen kemudian membuka bundel revisi, dan menggunakan AppSpec file, menyalin file ke lokasi yang ditentukan dan mengeksekusi skrip penerapan apa pun. Untuk informasi selengkapnya, lihat [Buat penerapan dengan CodeDeploy](deployments-create.md).

1. Periksa hasil penerapan. Untuk informasi selengkapnya, lihat [Memantau penyebaran di CodeDeploy](monitoring.md).

1. Menerapkan ulang revisi. Anda mungkin ingin melakukan ini jika Anda perlu memperbaiki bug di konten sumber, atau menjalankan skrip penerapan dalam urutan yang berbeda, atau mengatasi penerapan yang gagal. Untuk melakukannya, gabungkan ulang konten sumber yang direvisi, skrip penerapan apa pun, dan AppSpec file menjadi revisi baru, lalu unggah revisi ke bucket atau repositori Amazon S3. GitHub Kemudian jalankan penerapan baru ke grup penyebaran yang sama dengan revisi baru. Untuk informasi selengkapnya, lihat [Buat penerapan dengan CodeDeploy](deployments-create.md).

## Menyiapkan instance
<a name="deployment-steps-setting-up-instances"></a>

 Anda harus menyiapkan instance sebelum dapat menerapkan revisi aplikasi untuk pertama kalinya. Jika revisi aplikasi memerlukan tiga server produksi dan dua server cadangan, Anda meluncurkan atau menggunakan lima instance. 

Untuk menyediakan instance secara manual:

1. Instal CodeDeploy agen pada instance. CodeDeploy Agen dapat diinstal pada Amazon Linux, Ubuntu Server, RHEL, dan Windows Server instance.

1. Aktifkan penandaan, jika Anda menggunakan tag untuk mengidentifikasi instance dalam grup penyebaran. CodeDeploy bergantung pada tag untuk mengidentifikasi dan mengelompokkan instance ke dalam grup CodeDeploy penerapan. Meskipun tutorial Memulai menggunakan keduanya, Anda cukup menggunakan kunci atau nilai untuk menentukan tag untuk grup penyebaran.

1. Luncurkan instans Amazon EC2 dengan profil instans IAM terlampir. Profil instans IAM harus dilampirkan ke instans Amazon EC2 saat diluncurkan agar agen CodeDeploy dapat memverifikasi identitas instans.

1. Membuat peran layanan. Berikan akses layanan sehingga CodeDeploy dapat memperluas tag di AWS akun Anda.

Untuk penerapan awal, CloudFormation template melakukan semua ini untuk Anda. Ini membuat dan mengkonfigurasi instans Amazon EC2 tunggal baru berdasarkan Amazon Linux atau Windows Server dengan CodeDeploy agen yang sudah diinstal. Untuk informasi selengkapnya, lihat [Bekerja dengan instance untuk CodeDeploy](instances.md). 

**catatan**  
Untuk blue/green penerapan, Anda dapat memilih antara menggunakan instance yang sudah Anda miliki untuk lingkungan pengganti atau mengizinkan CodeDeploy penyediaan instance baru untuk Anda sebagai bagian dari proses penerapan. 

## Mengunggah revisi aplikasi Anda
<a name="deployment-steps-uploading-your-app"></a>

Tempatkan AppSpec file di bawah folder root dalam struktur folder konten sumber aplikasi Anda. Untuk informasi selengkapnya, lihat [CodeDeploy spesifikasi aplikasi (AppSpec) file](application-specification-files.md).

Bundel struktur folder konten sumber aplikasi ke dalam format file arsip seperti zip, tar, atau tar terkompresi. Unggah file arsip (*revisi*) ke bucket GitHub atau repositori Amazon S3.

**catatan**  
Format file arsip tar dan tar terkompresi (.tar dan.tar.gz) tidak didukung untuk instance Windows Server.

## Membuat grup aplikasi dan penerapan
<a name="deployment-steps-registering-app-deployment-groups"></a>

Grup CodeDeploy penerapan mengidentifikasi kumpulan instance berdasarkan tag, nama grup Amazon EC2 Auto Scaling, atau keduanya. Beberapa revisi aplikasi dapat diterapkan ke instance yang sama. Revisi aplikasi dapat diterapkan ke beberapa instance. 

Misalnya, Anda dapat menambahkan tag “Prod” ke tiga server produksi dan “Backup” ke dua server cadangan. Kedua tag ini dapat digunakan untuk membuat dua grup penyebaran yang berbeda dalam CodeDeploy aplikasi, memungkinkan Anda memilih kumpulan server mana (atau keduanya) yang harus berpartisipasi dalam penerapan.

Anda dapat menggunakan beberapa grup tag dalam grup penerapan untuk membatasi penerapan ke kumpulan instance yang lebih kecil. Untuk informasi, lihat [Menandai instance untuk grup penerapan di CodeDeploy](instances-tagging.md).

## Menyebarkan revisi aplikasi Anda
<a name="deployment-steps-deploy"></a>

Sekarang Anda siap untuk menerapkan revisi aplikasi Anda dari Amazon S3 GitHub atau ke grup penyebaran. Anda dapat menggunakan CodeDeploy konsol atau perintah [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html). Ada parameter yang dapat Anda tentukan untuk mengontrol penerapan Anda, termasuk revisi, grup penyebaran, dan konfigurasi penerapan.

## Memperbarui aplikasi Anda
<a name="deployment-steps-updating-your-app"></a>

Anda dapat membuat pembaruan pada aplikasi Anda dan kemudian menggunakan CodeDeploy konsol atau memanggil perintah [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) untuk mendorong revisi. 

## Penerapan yang dihentikan dan gagal
<a name="deployment-stop-fail"></a>

Anda dapat menggunakan CodeDeploy konsol atau perintah [stop-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/stop-deployment.html) untuk menghentikan penerapan. Saat Anda mencoba menghentikan penerapan, salah satu dari tiga hal terjadi:
+ Penerapan berhenti, dan operasi mengembalikan status berhasil. Dalam kasus ini, tidak ada lagi peristiwa siklus hidup penerapan yang dijalankan pada grup penerapan untuk penerapan yang dihentikan. Beberapa file mungkin telah disalin, dan beberapa skrip mungkin sudah dijalankan, satu atau lebih instance dalam grup penyebaran.
+ Penyebaran tidak segera berhenti, dan operasi mengembalikan status tertunda. Dalam kasus ini, beberapa peristiwa siklus hidup penerapan mungkin masih berjalan di grup penerapan. Beberapa file mungkin telah disalin, dan beberapa skrip mungkin sudah dijalankan, satu atau lebih instance dalam grup penyebaran. Setelah operasi yang tertunda selesai, panggilan berikutnya untuk menghentikan penyebaran mengembalikan status berhasil.
+ Penerapan tidak dapat berhenti, dan operasi mengembalikan kesalahan. Untuk informasi selengkapnya, lihat [ErrorInformation](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ErrorInformation.html)dan [Kesalahan umum](https://docs.aws.amazon.com/codedeploy/latest/APIReference/CommonErrors.html) di Referensi AWS CodeDeploy API.

Seperti penerapan yang dihentikan, penerapan yang gagal dapat mengakibatkan beberapa peristiwa siklus hidup penerapan telah dijalankan pada satu atau beberapa instance dalam grup penerapan. Untuk mengetahui mengapa penerapan gagal, Anda dapat menggunakan CodeDeploy konsol, memanggil [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html)perintah, atau menganalisis data file log dari penerapan yang gagal. Untuk informasi selengkapnya, lihat [Revisi aplikasi dan pembersihan file log](codedeploy-agent.md#codedeploy-agent-revisions-logs-cleanup) dan [Melihat data log untuk penerapan CodeDeploy EC2/Lokal](deployments-view-logs.md).

## Penerapan ulang dan rollback penerapan
<a name="deployment-rollback"></a>

CodeDeploy mengimplementasikan rollback dengan menerapkan kembali, sebagai penerapan baru, revisi yang sebelumnya diterapkan. 

Anda dapat mengonfigurasi grup penerapan untuk secara otomatis memutar kembali penerapan saat kondisi tertentu terpenuhi, termasuk saat penerapan gagal atau ambang batas pemantauan alarm terpenuhi. Anda juga dapat mengganti pengaturan rollback yang ditentukan untuk grup penerapan dalam penerapan individual.

Anda juga dapat memilih untuk mengembalikan penerapan yang gagal dengan menerapkan ulang revisi yang sebelumnya digunakan secara manual. 

Dalam semua kasus, penerapan baru atau rolled-back diberi ID penerapan sendiri. Daftar penerapan yang dapat Anda lihat di CodeDeploy konsol menunjukkan mana yang merupakan hasil dari penerapan otomatis. 

Lihat informasi yang lebih lengkap di [Menerapkan ulang dan memutar kembali penerapan dengan CodeDeploy](deployments-rollback-and-redeploy.md).

# CodeDeploy spesifikasi aplikasi (AppSpec) file
<a name="application-specification-files"></a>

File spesifikasi aplikasi (AppSpec file), yang unik untuk CodeDeploy, adalah file berformat [YAML](http://www.yaml.org) atau berformat [JSON](http://www.json.org). AppSpec File ini digunakan untuk mengelola setiap penyebaran sebagai serangkaian kait peristiwa siklus hidup, yang didefinisikan dalam file.

Untuk informasi tentang cara membuat AppSpec file yang terbentuk dengan baik, lihat[CodeDeploy AppSpec referensi file](reference-appspec-file.md).

**Topics**
+ [AppSpec file di Platform Komputasi Amazon ECS](#appspec-files-on-ecs-compute-platform)
+ [AppSpec file pada platform AWS Lambda komputasi](#appspec-files-on-lambda-compute-platform)
+ [AppSpec file pada platform komputasi EC2/lokal](#appspec-files-on-server-compute-platform)
+ [Bagaimana CodeDeploy agen menggunakan AppSpec file](#application-specification-files-agent-usage)

## AppSpec file di Platform Komputasi Amazon ECS
<a name="appspec-files-on-ecs-compute-platform"></a>

Jika aplikasi Anda menggunakan platform komputasi Amazon ECS, AppSpec file dapat diformat dengan YAMAL atau JSON. Itu juga dapat diketik langsung ke editor di konsol. AppSpec File ini digunakan untuk menentukan:
+ Nama layanan Amazon ECS dan nama kontainer serta port yang digunakan untuk mengarahkan lalu lintas ke set tugas baru.
+ Fungsi yang akan digunakan sebagai tes validasi.

Anda dapat menjalankan fungsi Lambda validasi setelah peristiwa siklus hidup penerapan. Lihat informasi selengkapnya di [AppSpec Bagian 'kait' untuk penerapan Amazon ECS](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs), [AppSpec struktur file untuk penerapan Amazon ECS](reference-appspec-file-structure.md#ecs-appspec-structure), dan [AppSpec Contoh file untuk penyebaran Amazon ECS](reference-appspec-file-example.md#appspec-file-example-ecs).

## AppSpec file pada platform AWS Lambda komputasi
<a name="appspec-files-on-lambda-compute-platform"></a>

Jika aplikasi Anda menggunakan platform komputasi AWS Lambda, AppSpec file dapat diformat dengan YAMAL atau JSON. Itu juga dapat diketik langsung ke editor di konsol. AppSpec File ini digunakan untuk menentukan:
+ Versi AWS Lambda fungsi untuk menyebarkan.
+ Fungsi yang akan digunakan sebagai tes validasi.

Anda dapat menjalankan fungsi Lambda validasi setelah peristiwa siklus hidup penerapan. Untuk informasi selengkapnya, lihat [AppSpec Bagian 'kait' untuk penerapan AWS Lambda](reference-appspec-file-structure-hooks.md#appspec-hooks-lambda).

## AppSpec file pada platform komputasi EC2/lokal
<a name="appspec-files-on-server-compute-platform"></a>

Jika aplikasi Anda menggunakan platform komputasi EC2/On-premise, AppSpec file tersebut selalu diformat YAML. AppSpec File ini digunakan untuk:
+ Petakan file sumber dalam revisi aplikasi Anda ke tujuan mereka pada instance.
+ Tentukan izin khusus untuk file yang digunakan.
+ Tentukan skrip yang akan dijalankan pada setiap instance pada berbagai tahap proses penyebaran.

Anda dapat menjalankan skrip pada instance setelah banyak peristiwa siklus hidup penerapan individual. CodeDeploy hanya menjalankan skrip yang ditentukan dalam file, tetapi skrip tersebut dapat memanggil skrip lain pada instance. Anda dapat menjalankan semua jenis skrip selama didukung oleh sistem operasi yang berjalan pada instance. Untuk informasi selengkapnya, lihat [AppSpec Bagian 'kait' untuk penerapan EC2/On-premise](reference-appspec-file-structure-hooks.md#appspec-hooks-server). 

## Bagaimana CodeDeploy agen menggunakan AppSpec file
<a name="application-specification-files-agent-usage"></a>

Selama penyebaran, CodeDeploy agen mencari nama acara saat ini di bagian **kait** file. AppSpec Jika acara tidak ditemukan, CodeDeploy agen melanjutkan ke langkah berikutnya. Jika acara ditemukan, CodeDeploy agen mengambil daftar skrip untuk dieksekusi. Skrip dijalankan secara berurutan, dalam urutan di mana mereka muncul dalam file. Status setiap skrip dicatat dalam file log CodeDeploy agen pada instance. 

Jika skrip berjalan dengan sukses, ia mengembalikan kode keluar 0 (nol).

**catatan**  
 CodeDeploy Agen tidak digunakan dalam penyebaran AWS Lambda atau Amazon ECS. 

Selama acara **Install**, CodeDeploy agen menggunakan pemetaan yang ditentukan di bagian **file file** untuk menentukan folder atau AppSpec file mana yang akan disalin dari revisi ke instance.

Jika CodeDeploy agen yang diinstal pada sistem operasi tidak cocok dengan apa yang tercantum dalam AppSpec file, penerapan gagal.

Untuk informasi tentang file log CodeDeploy agen, lihat[Bekerja dengan CodeDeploy agen](codedeploy-agent.md).