

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

# Aplikasi
<a name="workingapps"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

*Aplikasi OpsWorks * Stacks mewakili kode yang ingin Anda jalankan di server aplikasi. Kode itu sendiri berada di repositori seperti arsip Amazon S3; aplikasi berisi informasi yang diperlukan untuk menyebarkan kode ke instance server aplikasi yang sesuai.

Saat Anda menerapkan aplikasi, OpsWorks Stacks memicu peristiwa Deploy, yang menjalankan resep Deploy setiap lapisan. OpsWorks Stacks juga menginstal [konfigurasi stack dan atribut deployment](workingcookbook-json.md) yang berisi semua informasi yang diperlukan untuk menerapkan aplikasi, seperti repositori aplikasi dan data koneksi database.

Anda harus menerapkan resep khusus yang mengambil data penerapan aplikasi dari konfigurasi tumpukan dan atribut penerapan serta menangani tugas penerapan. 

**Topics**
+ [Menambahkan Aplikasi](workingapps-creating.md)
+ [Menerapkan Aplikasi](workingapps-deploying.md)
+ [Mengedit Aplikasi](workingapps-editing.md)
+ [Menghubungkan Aplikasi ke Server Database](workingapps-connectdb.md)
+ [Menggunakan Variabel Lingkungan](apps-environment-vars.md)
+ [Melewati Data ke Aplikasi](apps-data.md)
+ [Menggunakan Kunci SSH Repositori Git](workingapps-deploykeys.md)
+ [Menggunakan Domain Kustom](workingapps-domains.md)
+ [Menggunakan SSL](workingsecurity-ssl.md)

# Menambahkan Aplikasi
<a name="workingapps-creating"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Langkah pertama dalam menerapkan aplikasi ke server aplikasi Anda adalah menambahkan aplikasi ke tumpukan. Aplikasi mewakili aplikasi, dan berisi berbagai metadata, seperti nama dan jenis aplikasi, dan informasi yang diperlukan untuk menyebarkan aplikasi ke instance server, seperti URL repositori. Anda harus memiliki Kelola izin untuk menambahkan aplikasi ke tumpukan. Untuk informasi selengkapnya, lihat [Mengelola izin](opsworks-security-users.md).

**catatan**  
Prosedur di bagian ini berlaku untuk Chef 12 dan tumpukan yang lebih baru. Untuk informasi tentang cara menambahkan aplikasi ke layer di tumpukan Chef 11, lihat[Langkah 2.4: Membuat dan Menyebarkan Aplikasi - Chef 11](gettingstarted-simple-app.md).

**Untuk menambahkan aplikasi ke tumpukan**

1. Letakkan kode di repositori pilihan Anda—arsip Amazon S3, repositori Git, repositori Subversion, atau arsip HTTP. Untuk informasi selengkapnya, lihat [Sumber Aplikasi](#workingapps-creating-source).

1. Klik **Aplikasi** di panel navigasi. Di halaman **Aplikasi**, klik **Tambahkan aplikasi untuk aplikasi** pertama Anda. Untuk aplikasi berikutnya, klik **\$1Aplikasi**. 

1. Gunakan halaman **App New** untuk mengonfigurasi aplikasi, seperti yang dijelaskan di bagian berikut.

## Mengkonfigurasi Aplikasi
<a name="workingapps-creating-general"></a>

Halaman **Tambah Aplikasi** terdiri dari bagian berikut: **Pengaturan**, **Sumber aplikasi, Sumber** **Data**, **Variabel Lingkungan**, **Tambah Domain**, dan Pengaturan **SSL**.

**Topics**
+ [Pengaturan](#workingapps-creating-settings)
+ [Sumber Aplikasi](#workingapps-creating-source)
+ [Sumber Data](#workingapps-creating-data)
+ [Variabel lingkungan](#workingapps-creating-environment)
+ [Pengaturan Domain dan SSL](#workingapps-creating-domain-ssl)

### Pengaturan
<a name="workingapps-creating-settings"></a>

**Nama**  
Nama aplikasi, yang digunakan untuk mewakili aplikasi di UI. OpsWorks Stacks juga menggunakan nama ini untuk menghasilkan nama pendek untuk aplikasi yang digunakan secara internal dan untuk mengidentifikasi aplikasi dalam [konfigurasi tumpukan dan atribut penerapan](workingcookbook-json.md). Setelah menambahkan aplikasi ke tumpukan, Anda dapat melihat nama pendeknya dengan mengklik **Aplikasi** di panel navigasi dan kemudian mengklik nama aplikasi untuk membuka halaman detail.

****Akar dokumen****  
OpsWorks Stacks menetapkan setelan **root Dokumen** ke [`[:document_root]`](attributes-json-deploy.md#attributes-json-deploy-app-root)atribut dalam atribut aplikasi. `deploy` Nilai default-nya adalah `null`. Resep penerapan Anda dapat memperoleh nilai tersebut dari `deploy` atribut menggunakan sintaks simpul Chef standar dan menyebarkan kode yang ditentukan ke lokasi yang sesuai di server. Untuk informasi selengkapnya tentang cara menerapkan aplikasi, lihat[Menyebarkan Resep](create-custom-deploy.md).

### Sumber Aplikasi
<a name="workingapps-creating-source"></a>

Anda dapat menerapkan aplikasi dari jenis repositori berikut: Git, Amazon S3 bundle, HTTP bundle, dan Other. Semua jenis repositori mengharuskan Anda untuk menentukan jenis repositori dan URL repositori. Tipe repositori individu memiliki persyaratannya sendiri, seperti yang dijelaskan di bawah ini.

**catatan**  
OpsWorks Stacks secara otomatis menyebarkan aplikasi dari repositori standar ke lapisan server bawaan. Jika Anda menggunakan jenis repositori lain, yang merupakan satu-satunya pilihan untuk tumpukan Windows, OpsWorks Stacks menempatkan informasi repositori di [`deploy`atribut](workingcookbook-json.md#workingcookbook-json-deploy) aplikasi, tetapi Anda harus menerapkan resep khusus untuk menangani tugas penerapan.

**Topics**
+ [Arsip HTTP](#w2ab1c14c57c13c11b8b8)
+ [Arsip Amazon S3](#w2ab1c14c57c13c11b8c10)
+ [Repositori Git](#w2ab1c14c57c13c11b8c12)
+ [Repositori Lainnya](#w2ab1c14c57c13c11b8c14)

#### Arsip HTTP
<a name="w2ab1c14c57c13c11b8b8"></a>

Untuk menggunakan server HTTP yang dapat diakses publik sebagai repositori: 

1. Buat arsip terkompresi—zip, gzip, bzip2, Java WAR, atau tarball—dari folder yang berisi kode aplikasi dan file terkait apa pun.
**catatan**  
OpsWorks Tumpukan tidak mendukung tarball yang tidak terkompresi.

1. Unggah file arsip ke server. 

1. Untuk menentukan repositori di konsol, pilih HTTP Archive sebagai jenis repositori dan masukkan URL.

    Jika arsip dilindungi kata sandi, di bawah **Sumber Aplikasi**, tentukan kredenal masuk.

#### Arsip Amazon S3
<a name="w2ab1c14c57c13c11b8c10"></a>

Untuk menggunakan bucket Amazon Simple Storage Service sebagai repositori:

1. Buat bucket Amazon S3 publik atau pribadi. Untuk informasi selengkapnya, lihat [Dokumentasi Amazon S3](https://aws.amazon.com/documentation/s3/).

1. Agar OpsWorks Stacks dapat mengakses bucket pribadi, Anda harus menjadi pengguna dengan setidaknya hak baca saja ke bucket Amazon S3 dan Anda akan memerlukan ID kunci akses dan kunci akses rahasia. Untuk informasi selengkapnya, lihat [Dokumentasi AWS Identity and Access Management](https://docs.aws.amazon.com/iam/).

1. Masukkan kode dan file terkait dalam folder dan simpan folder dalam arsip terkompresi — zip, gzip, bzip2, Java WAR, atau tarball.
**catatan**  
OpsWorks Tumpukan tidak mendukung tarball yang tidak terkompresi.

1. Unggah file arsip ke bucket Amazon S3 dan rekam URL-nya.

1. Untuk menentukan repositori di konsol OpsWorks Stacks, atur **jenis Repositori** ke Arsip **S3 dan masukkan URL arsip**. Untuk arsip pribadi, Anda juga harus memberikan ID kunci akses AWS dan kunci akses rahasia yang kebijakannya memberikan izin untuk mengakses bucket. Biarkan pengaturan ini kosong untuk arsip publik.

#### Repositori Git
<a name="w2ab1c14c57c13c11b8c12"></a>

Sebuah [repositori](http://git-scm.com/) Git menyediakan kontrol sumber dan pembuatan versi. OpsWorks Stacks mendukung situs repositori yang dihosting secara publik seperti [GitHub](https://github.com/)atau [Bitbucket](https://bitbucket.org) serta server Git yang dihosting secara pribadi. Untuk aplikasi dan submodul Git, format yang Anda gunakan untuk menentukan URL repositori di **Sumber Aplikasi** bergantung pada apakah repositori bersifat publik atau pribadi:

**Repositori publik** —Gunakan protokol hanya-baca HTTPS atau Git. Misalnya, [Memulai dengan Chef 11 Linux Stacks](gettingstarted.md) menggunakan GitHub repositori publik yang dapat diakses oleh salah satu format URL berikut:
+ Git hanya-baca: **git://github.com/amazonwebservices/opsworks-demo-php-simple-app.git**
+ HTTPS: **https://github.com/amazonwebservices/opsworks-demo-php-simple-app.git**

**Repositori pribadi** —Gunakan read/write format SSH yang ditunjukkan dalam contoh ini:
+ Repositori Github:. **git@github.com:*project*/*repository***
+ Repositori di server Git: ***user*@*server*:*project*/*repository***

Memilih **Git** di bawah **Kontrol Sumber** menampilkan dua pengaturan opsional tambahan:

**Kunci SSH repositori**  
Anda harus menentukan kunci SSH deploy untuk mengakses repositori Git pribadi. Bidang ini membutuhkan kunci pribadi; kunci publik ditetapkan ke repositori Git Anda. Untuk submodul Git, kunci yang ditentukan harus memiliki akses ke submodul tersebut. Untuk informasi selengkapnya, lihat [Menggunakan Kunci SSH Repositori Git](workingapps-deploykeys.md).  
Kunci SSH penerapan tidak dapat memerlukan kata sandi; OpsWorks Tumpukan tidak memiliki cara untuk melewatinya.

**Cabang/Revisi**  
Jika repositori memiliki beberapa cabang, OpsWorks Stacks mengunduh cabang master secara default. Untuk menentukan cabang tertentu, masukkan nama cabang, SHA1 hash, atau nama tag. Untuk menentukan komit tertentu, masukkan pengenal komit 40 hekdigit penuh.

#### Repositori Lainnya
<a name="w2ab1c14c57c13c11b8c14"></a>

[Jika repositori standar tidak memenuhi persyaratan Anda, Anda dapat menggunakan repositori lain, seperti Bazaar.](http://bazaar.canonical.com/en/) Namun, OpsWorks Stacks tidak secara otomatis menyebarkan aplikasi dari repositori tersebut. Anda harus menerapkan resep khusus untuk menangani proses penyebaran dan menetapkannya ke peristiwa Deploy lapisan yang sesuai. Untuk contoh cara menerapkan resep Deploy, lihat[Menyebarkan Resep](create-custom-deploy.md).

### Sumber Data
<a name="workingapps-creating-data"></a>

Bagian ini melampirkan database ke aplikasi. Anda memiliki opsi berikut: 
+ **RDS** - Lampirkan salah satu lapisan [layanan Amazon RDS](workinglayers-db-rds.md) stack.
+ **Tidak ada** — Jangan melampirkan server database.

Jika Anda memilih **RDS**, Anda harus menentukan yang berikut ini.

**Contoh database**  
Daftar ini mencakup setiap lapisan layanan Amazon RDS. Anda juga dapat memilih salah satu dari berikut ini:  
(Wajib) Tentukan server database mana yang akan dilampirkan ke aplikasi. Isi daftar tergantung pada sumber data.  
+ **RDS** — Daftar lapisan layanan Amazon RDS stack. 

**Nama database**  
(Opsional) Tentukan nama database.   
+ Lapisan Amazon RDS — Masukkan nama database yang Anda tentukan untuk instans Amazon RDS.

  Anda bisa mendapatkan nama database dari [konsol Amazon RDS](https://console.aws.amazon.com/rds/).

[Saat Anda menerapkan aplikasi dengan database terlampir, OpsWorks Stacks menambahkan koneksi instance database ke atribut aplikasi. `deploy`](workingcookbook-json.md#workingcookbook-json-deploy)

Anda dapat menulis resep khusus untuk mengambil informasi dari `deploy` atribut dan meletakkannya file yang dapat diakses oleh aplikasi. Ini adalah satu-satunya pilihan untuk menyediakan informasi koneksi database ke jenis aplikasi Lainnya.

Untuk informasi selengkapnya tentang cara menangani koneksi database, lihat[Menghubungkan ke Database](workingapps-connectdb.md).

Untuk melepaskan server database dari aplikasi, [edit konfigurasi aplikasi](workingapps-editing.md) untuk menentukan server database yang berbeda, atau tidak ada server.

### Variabel lingkungan
<a name="workingapps-creating-environment"></a>

Anda dapat menentukan satu set variabel lingkungan untuk setiap aplikasi, yang khusus untuk aplikasi. Misalnya, jika Anda memiliki dua aplikasi, variabel lingkungan yang Anda tentukan untuk aplikasi pertama tidak tersedia untuk aplikasi kedua dan sebaliknya. Anda juga dapat menentukan variabel lingkungan yang sama untuk beberapa aplikasi dan menetapkan nilai yang berbeda untuk setiap aplikasi. 

**catatan**  
Tidak ada batas tertentu pada jumlah variabel lingkungan. Namun, ukuran struktur data terkait—yang mencakup nama, nilai, dan nilai flag yang dilindungi variabel—tidak boleh melebihi 20 KB. Batas ini harus mengakomodasi sebagian besar jika tidak untuk semua kasus penggunaan. Melebihi itu akan menyebabkan kesalahan layanan (konsol) atau pengecualian (API) dengan pesan, “Lingkungan: terlalu besar (maksimum adalah 20 KB).”

OpsWorks Stacks menyimpan variabel sebagai atribut dalam [`deploy`atribut](workingcookbook-json.md#workingcookbook-json-deploy) aplikasi. Anda dapat meminta resep kustom Anda mengambil nilai-nilai tersebut dengan menggunakan sintaks simpul Chef standar. Untuk contoh cara mengakses variabel lingkungan aplikasi, lihat[Menggunakan Variabel Lingkungan](apps-environment-vars.md).

**Key**  
Nama variabel. Ini dapat berisi hingga 64 huruf besar dan kecil, angka, dan garis bawah (\$1), tetapi harus dimulai dengan huruf atau garis bawah.

**Nilai**  
Nilai variabel. Ini dapat berisi hingga 256 karakter, yang semuanya harus dapat dicetak. 

**Nilai yang dilindungi**  
Apakah nilainya dilindungi. Pengaturan ini memungkinkan Anda menyembunyikan informasi sensitif seperti kata sandi. Jika Anda menetapkan **nilai Protected** untuk variabel, setelah Anda membuat aplikasi:  
+ Halaman detail aplikasi hanya menampilkan nama variabel, bukan nilainya.
+ Jika Anda memiliki izin untuk mengedit aplikasi, Anda dapat mengklik **Perbarui nilai** untuk menentukan nilai baru, tetapi Anda tidak dapat melihat atau mengedit nilai lama.

**catatan**  
Log penerapan koki terkadang dapat menyertakan variabel lingkungan. Ini berarti variabel yang dilindungi mungkin ditampilkan di konsol. Untuk mencegah variabel yang dilindungi ditampilkan di konsol, kami sarankan Anda menggunakan bucket Amazon S3 sebagai penyimpanan untuk variabel yang dilindungi yang tidak ingin ditampilkan di konsol. Contoh cara menggunakan bucket S3 untuk tujuan ini tersedia [Menggunakan Bucket Amazon S3](gettingstarted.walkthrough.photoapp.md) dalam panduan ini.

### Pengaturan Domain dan SSL
<a name="workingapps-creating-domain-ssl"></a>

Untuk jenis aplikasi Lainnya, OpsWorks Stacks menambahkan pengaturan ke `deploy` atribut aplikasi. Resep Anda dapat mengambil data dari atribut tersebut dan mengkonfigurasi server sesuai kebutuhan.

**Pengaturan Domain**  
Bagian ini memiliki bidang **Tambahkan Domain opsional untuk menentukan domain**. Untuk informasi selengkapnya, lihat [Menggunakan Domain Kustom](workingapps-domains.md). 

**Pengaturan SSL**  
Bagian ini memiliki **sakelar Dukungan SSL** yang dapat Anda gunakan untuk mengaktifkan atau menonaktifkan SSL. Jika Anda mengklik **Ya**, Anda harus memberikan informasi sertifikat SSL. Lihat informasi yang lebih lengkap di [Menggunakan SSL](workingsecurity-ssl.md).

# Menerapkan Aplikasi
<a name="workingapps-deploying"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Tujuan utama penyebaran adalah untuk menyebarkan kode aplikasi dan file terkait ke instance server aplikasi. Operasi penyebaran ditangani oleh resep Deploy masing-masing instance, yang ditentukan oleh lapisan instance.

Saat Anda memulai sebuah instance, setelah resep Setup selesai, OpsWorks Stacks secara otomatis menjalankan resep Deploy instance. Namun, saat menambahkan atau memodifikasi aplikasi, Anda harus menerapkannya secara manual ke instans online apa pun. Anda harus memiliki izin Kelola atau Terapkan untuk menerapkan aplikasi. Untuk informasi selengkapnya, lihat [Mengelola izin](opsworks-security-users.md).

**Untuk menerapkan aplikasi**

1. Di halaman **Aplikasi**, klik tindakan **penerapan** aplikasi.  
![\[Apps page showing SimplePHP app with deploy, edit, and delete action options.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/apps_with_content.png)
**catatan**  
Anda juga dapat menerapkan aplikasi dengan mengklik **Deployment di panel** navigasi. Pada halaman **Deployment & Commands**, klik **Deploy an app** Ketika Anda melakukan ini, Anda juga dapat memilih aplikasi mana yang akan digunakan.

1. Tentukan hal berikut:
   + (Wajib) Set **Command:** untuk **menyebarkan**, jika belum dipilih.
   + (Opsional) Sertakan komentar. 

1. Klik **Lanjutan >>** untuk menentukan JSON kustom. OpsWorks Stacks menambahkan satu set [konfigurasi stack dan atribut deployment](workingcookbook-json.md) ke objek node. `deploy`Atribut berisi rincian penyebaran dan dapat digunakan oleh resep Deploy untuk menangani instalasi dan konfigurasi. Di tumpukan Linux, Anda dapat menggunakan bidang JSON khusus untuk [mengganti pengaturan OpsWorks Stacks default atau meneruskan pengaturan](workingcookbook-json-override.md) khusus ke resep kustom Anda. Untuk informasi selengkapnya tentang cara menggunakan JSON kustom, lihat[Menggunakan JSON Kustom](workingstacks-json.md).
**catatan**  
Jika Anda menentukan JSON kustom di sini, itu ditambahkan ke konfigurasi tumpukan dan atribut penerapan hanya untuk penerapan ini. Jika Anda ingin menambahkan JSON kustom secara permanen, Anda harus [menambahkannya ke tumpukan](workingstacks-json.md). Custom JSON dibatasi hingga 120 KB. Jika Anda membutuhkan lebih banyak kapasitas, kami sarankan untuk menyimpan beberapa data di Amazon S3. Resep kustom Anda kemudian dapat menggunakan AWS CLI atau [AWS SDK for Ruby untuk](https://aws.amazon.com/documentation/sdk-for-ruby/) mengunduh data dari bucket ke instans Anda. Sebagai contoh, lihat [Menggunakan SDK untuk Ruby](cookbooks-101-opsworks-s3.md).

1. Di bawah **Instance**, klik **Advanced >>** dan tentukan instance mana yang akan menjalankan perintah deploy.

   Perintah deploy memicu peristiwa Deploy, yang menjalankan resep penerapan pada instance yang dipilih. Resep penyebaran untuk server aplikasi terkait mengunduh kode dan file terkait dari repositori dan menginstalnya pada instance, sehingga Anda biasanya memilih semua instance server aplikasi terkait. Namun, jenis instance lain mungkin memerlukan beberapa perubahan konfigurasi untuk mengakomodasi aplikasi baru, jadi seringkali berguna untuk menjalankan resep penerapan pada instance tersebut juga. Resep-resep tersebut memperbarui konfigurasi sesuai kebutuhan tetapi tidak menginstal file aplikasi. Untuk informasi lebih lanjut tentang resep, lihat [Buku Masak dan Resep](workingcookbook.md).

1. Klik **Deploy** untuk menjalankan resep deploy pada instance yang ditentukan, yang menampilkan halaman Deployment. Saat proses selesai, OpsWorks Stacks menandai aplikasi dengan tanda centang hijau untuk menunjukkan penerapan yang berhasil. Jika penerapan gagal, OpsWorks Stacks menandai aplikasi dengan X merah. Dalam hal ini, Anda dapat membuka halaman **Deployment dan memeriksa log penerapan** untuk informasi selengkapnya.  
![\[Deployment status page showing successful deployment of PHPTestApp with details.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/deployed_app.png)

**catatan**  
Saat Anda menerapkan pembaruan ke aplikasi JSP, Tomcat mungkin tidak mengenali pembaruan dan sebagai gantinya terus menjalankan versi aplikasi yang ada. Hal ini dapat terjadi, misalnya, jika Anda menerapkan aplikasi Anda sebagai file.zip yang hanya berisi halaman JSP. Untuk memastikan bahwa Tomcat menjalankan versi yang paling baru digunakan, direktori root proyek harus menyertakan direktori WEB-INF yang berisi file. `web.xml` `web.xml`File dapat berisi berbagai konten, tetapi berikut ini cukup untuk memastikan bahwa Tomcat mengenali pembaruan dan menjalankan versi aplikasi yang saat ini digunakan. Anda tidak perlu mengubah versi untuk setiap pembaruan. Tomcat akan mengenali pembaruan meskipun versinya tidak berubah.  

```
<context-param>
  <param-name>appVersion</param-name>
  <param-value>0.1</param-value>
</context-param>
```

## Perintah Deployment Lainnya
<a name="workingapps-deploying-other"></a>

Halaman **aplikasi Deploy** mencakup beberapa perintah lain untuk mengelola aplikasi Anda dan server terkait. Dari perintah berikut, hanya **Undeploy** yang tersedia untuk aplikasi di tumpukan Chef 12.

**Undeploy**  
Memicu [peristiwa Undeploy lifecycle](workingcookbook-events.md), yang menjalankan resep undeploy untuk menghapus semua versi aplikasi dari instance yang ditentukan.

**Rollback**  
Memulihkan versi aplikasi yang digunakan sebelumnya. Misalnya, jika Anda telah menerapkan aplikasi tiga kali dan kemudian menjalankan **Rollback**, server akan melayani aplikasi dari penerapan kedua. Jika Anda menjalankan **Rollback** lagi, server akan melayani aplikasi dari penerapan pertama. Secara default, OpsWorks Stacks menyimpan lima penerapan terbaru, yang memungkinkan Anda untuk memutar kembali hingga empat versi. Jika Anda melebihi jumlah versi yang disimpan, perintah gagal dan meninggalkan versi tertua di tempatnya. Perintah ini tidak tersedia di tumpukan Chef 12.

**Mulai Server Web**  
Menjalankan resep yang memulai server aplikasi pada instance yang ditentukan. Perintah ini tidak tersedia di tumpukan Chef 12.

**Hentikan Server Web**  
Menjalankan resep yang menghentikan server aplikasi pada instance yang ditentukan. Perintah ini tidak tersedia di tumpukan Chef 12.

**Mulai ulang Server Web**  
Menjalankan resep yang me-restart server aplikasi pada instance yang ditentukan. Perintah ini tidak tersedia di tumpukan Chef 12.

**penting**  
**Start Web Server**, **Stop Web Server**, **Restart Web Server**, dan **Rollback** pada dasarnya adalah versi yang disesuaikan dari perintah [stack Execute Recipes](workingstacks-commands.md). Mereka menjalankan satu set resep yang melakukan tugas pada instance yang ditentukan.  
Perintah ini tidak memicu peristiwa siklus hidup, jadi Anda tidak dapat mengaitkannya untuk menjalankan kode khusus.
Perintah ini hanya berfungsi untuk [lapisan server aplikasi](workinglayers-servers.md) bawaan.  
Secara khusus, perintah ini tidak berpengaruh pada lapisan khusus, bahkan jika mereka mendukung server aplikasi. Untuk memulai, menghentikan, atau memulai ulang server pada lapisan khusus, Anda harus menerapkan resep khusus untuk melakukan tugas-tugas ini dan menggunakan [perintah tumpukan Execute Recipes](workingstacks-commands.md) untuk menjalankannya. Untuk informasi selengkapnya tentang cara menerapkan dan menginstal resep khusus, lihat[Buku Masak dan Resep](workingcookbook.md).

# Mengedit Aplikasi
<a name="workingapps-editing"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Anda dapat mengubah konfigurasi aplikasi dengan mengedit aplikasi. Misalnya, jika Anda siap untuk menerapkan versi baru, Anda dapat mengedit pengaturan OpsWorks Stacks aplikasi untuk menggunakan cabang repositori baru. Anda harus memiliki izin Kelola atau Terapkan untuk mengedit konfigurasi aplikasi. Untuk informasi selengkapnya, lihat [Mengelola izin](opsworks-security-users.md).

**Untuk mengedit aplikasi**

1. Pada halaman **Aplikasi**, klik nama aplikasi untuk membuka halaman detailnya.

1. Klik **Edit** untuk mengubah konfigurasi aplikasi.
   + Jika Anda mengubah nama aplikasi, OpsWorks Stacks menggunakan nama baru untuk mengidentifikasi aplikasi di konsol. 

     Mengubah nama tidak mengubah nama pendek yang terkait. Nama pendek disetel saat Anda menambahkan aplikasi ke tumpukan dan tidak dapat diubah selanjutnya.
   + Jika Anda telah menentukan variabel lingkungan yang dilindungi, Anda tidak dapat melihat atau mengedit nilainya. Namun, Anda dapat menentukan nilai baru dengan mengklik **Perbarui nilai**.

1. Klik **Simpan** untuk menyimpan konfigurasi baru dan kemudian **Deploy App** untuk menyebarkan aplikasi. 

Mengedit aplikasi mengubah pengaturan dengan OpsWorks Stacks, tetapi tidak memengaruhi instance tumpukan. Saat pertama kali [menerapkan aplikasi](workingapps-deploying.md), resep Deploy akan mengunduh kode dan file terkait ke instance server aplikasi, yang kemudian menjalankan salinan lokal. Jika Anda memodifikasi aplikasi di repositori atau mengubah setelan lainnya, Anda harus menerapkan aplikasi untuk menginstal pembaruan pada instance server aplikasi Anda, sebagai berikut. OpsWorks Stacks secara otomatis menerapkan versi aplikasi saat ini ke instance baru saat dimulai. Namun, untuk kasus yang ada, situasinya berbeda: 
+ OpsWorks Stacks secara otomatis menerapkan versi aplikasi saat ini ke instance baru saat dimulai.
+ OpsWorks Stacks secara otomatis menerapkan versi aplikasi terbaru ke instans offline, termasuk instans [berbasis beban dan waktu, saat dimulai](workinginstances-autoscaling.md) ulang.
+ Anda harus menerapkan aplikasi yang diperbarui secara manual ke instans online.

Untuk informasi selengkapnya tentang cara menerapkan aplikasi, lihat [Menerapkan Aplikasi](workingapps-deploying.md)

# Menghubungkan Aplikasi ke Server Database
<a name="workingapps-connectdb"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Anda dapat mengaitkan server database Amazon RDS dengan aplikasi saat [membuat aplikasi atau yang](workingapps-creating.md) lebih baru dengan [mengedit aplikasi](workingapps-editing.md). Aplikasi Anda kemudian dapat menggunakan informasi koneksi database — nama pengguna, kata sandi,... —untuk terhubung ke server database. Saat Anda [menerapkan aplikasi](workingapps-deploying.md), OpsWorks Stacks memberikan informasi ini ke aplikasi dengan dua cara:
+ Untuk tumpukan Linux, OpsWorks Stacks membuat file pada setiap instance server aplikasi bawaan yang berisi data koneksi yang dapat digunakan aplikasi untuk terhubung ke server database.
+ OpsWorks Tumpukan menyertakan informasi koneksi dalam [konfigurasi tumpukan dan atribut penerapan](workingcookbook-json.md) yang diinstal pada setiap instance.

  Anda dapat menerapkan resep khusus untuk mengekstrak informasi koneksi dari atribut ini dan memasukkannya ke dalam file dalam format pilihan Anda. Untuk informasi selengkapnya, lihat [Melewati Data ke Aplikasi](apps-data.md).

**penting**  
Untuk tumpukan Linux, jika ingin mengaitkan lapisan layanan Amazon RDS dengan aplikasi, Anda harus menambahkan paket driver yang sesuai ke lapisan server aplikasi terkait, sebagai berikut:   
Klik **Layers** di panel navigasi dan buka tab **Resep** server aplikasi.
Klik **Edit** dan tambahkan paket driver yang sesuai ke **Paket OS**. Misalnya, Anda harus menentukan `mysql` apakah layer berisi instance Amazon Linux dan `mysql-client` apakah layer tersebut berisi instance Ubuntu.
Simpan perubahan dan gunakan kembali aplikasi.

## Menggunakan Resep Kustom
<a name="workingapps-connectdb-custom"></a>

Anda dapat menerapkan resep kustom yang mengekstrak data koneksi dari [`deploy`atribut](workingcookbook-json.md#workingcookbook-json-deploy) aplikasi dan menyimpannya dalam bentuk yang dapat dibaca aplikasi, seperti file YAMG.

Anda melampirkan server database ke aplikasi saat [membuat aplikasi atau yang](workingapps-creating.md) lebih baru dengan [mengedit aplikasi](workingapps-editing.md). Saat Anda menerapkan aplikasi, OpsWorks Stacks menginstal [konfigurasi tumpukan dan atribut penerapan](workingcookbook-json.md) pada setiap instance yang menyertakan informasi koneksi database. Aplikasi Anda kemudian dapat mengambil atribut yang sesuai. Detailnya tergantung pada apakah Anda menggunakan tumpukan Linux atau Windows.

### Menghubungkan ke Server Database untuk Linux Stack
<a name="w2ab1c14c57c19c11b6"></a>

Untuk tumpukan Linux, `deploy` namespace [konfigurasi tumpukan dan atribut penerapan](workingcookbook-json.md) menyertakan atribut untuk setiap aplikasi yang di-deploy, dinamai dengan nama pendek aplikasi. Saat Anda melampirkan server database ke aplikasi, OpsWorks Stacks mengisi `[:database]` atribut aplikasi dengan informasi koneksi, dan menginstalnya pada instance tumpukan untuk setiap penerapan berikutnya. Nilai atribut disediakan pengguna atau dihasilkan oleh OpsWorks Stacks.

**catatan**  
OpsWorks Stacks memungkinkan Anda untuk melampirkan server database ke beberapa aplikasi, tetapi setiap aplikasi hanya dapat memiliki satu server database terlampir. Jika Anda ingin menghubungkan aplikasi ke lebih dari satu server database, lampirkan salah satu server ke aplikasi, dan gunakan informasi dalam `deploy` atribut aplikasi untuk terhubung ke server tersebut. Gunakan JSON khusus untuk meneruskan informasi koneksi untuk server database lain ke aplikasi. Untuk informasi selengkapnya, lihat [Melewati Data ke Aplikasi](apps-data.md).

Aplikasi dapat menggunakan informasi koneksi dari `deploy` atribut instance untuk terhubung ke database. Namun, aplikasi tidak dapat mengakses informasi tersebut secara langsung—hanya resep yang dapat mengakses atribut. `deploy` Anda dapat mengatasi masalah ini dengan menerapkan resep khusus yang mengekstrak informasi koneksi dari `deploy` atribut dan memasukkannya ke dalam file yang dapat dibaca oleh aplikasi.

# Menggunakan Variabel Lingkungan
<a name="apps-environment-vars"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

**catatan**  
Rekomendasi dalam topik ini berlaku untuk Chef 11.10 dan versi Chef sebelumnya. Untuk mendapatkan variabel lingkungan di Chef 12 dan rilis yang lebih baru, Anda harus menggunakan App Data Bag. Untuk informasi selengkapnya, lihat [AWS OpsWorks Data Bag Referensi](https://docs.aws.amazon.com/opsworks/latest/userguide/data-bags.html) dan [App Data Bag (aws\$1opsworks\$1app](https://docs.aws.amazon.com/opsworks/latest/userguide/data-bag-json-app.html)).

Saat Anda [menentukan variabel lingkungan untuk aplikasi](workingapps-creating.md#workingapps-creating-environment), OpsWorks Stacks menambahkan definisi variabel ke [`deploy`atribut](workingcookbook-json.md#workingcookbook-json-deploy) aplikasi.

Lapisan kustom dapat menggunakan resep untuk mengambil nilai variabel dengan menggunakan sintaks node standar, dan menyimpannya dalam bentuk yang dapat diakses oleh aplikasi lapisan.

Anda harus menerapkan resep kustom yang memperoleh nilai variabel lingkungan dari `deploy` atribut instance. Resep kemudian dapat menyimpan data pada instance dalam bentuk yang dapat diakses oleh aplikasi, seperti file YAMG. Definisi variabel lingkungan aplikasi disimpan dalam `deploy` atribut, di aplikasi`environment_variables`. Contoh berikut menunjukkan lokasi atribut ini untuk aplikasi bernama`simplephpapp`, menggunakan JSON untuk mewakili struktur atribut.

```
{
  ...
  "ssh_users": {
  },
  "deploy": {
    "simplephpapp": {
      "application": "simplephpapp",
      "application_type": "php",
      "environment_variables": {
        "USER_ID": "168424",
        "USER_KEY": "somepassword"
      },
    ...
  }
}
```

Sebuah resep dapat memperoleh nilai variabel dengan menggunakan sintaks node standar. Contoh berikut menunjukkan cara mendapatkan `USER_ID` nilai dari JSON sebelumnya dan menempatkannya di log Chef.

```
Chef::Log.info("USER_ID: #{node[:deploy]['simplephpapp'][:environment_variables][:USER_ID]}")
```

Untuk penjelasan lebih rinci tentang cara mengambil informasi dari konfigurasi tumpukan dan penerapan JSON dan menyimpannya di instance, lihat. [Melewati Data ke Aplikasi](apps-data.md)

# Melewati Data ke Aplikasi
<a name="apps-data"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Hal ini sering berguna untuk meneruskan data seperti pasangan kunci-nilai ke aplikasi di server. Untuk melakukannya, gunakan [JSON khusus](workingstacks-json.md) untuk menambahkan data ke tumpukan. OpsWorks Stacks menambahkan data ke objek node setiap instance untuk setiap peristiwa siklus hidup. 

Perhatikan, bagaimanapun, bahwa meskipun resep bisa mendapatkan data JSON kustom dari objek node dengan menggunakan atribut Chef, aplikasi tidak bisa. Salah satu pendekatan untuk mendapatkan data JSON kustom ke satu atau lebih aplikasi adalah dengan menerapkan resep khusus yang mengekstrak data dari `node` objek dan menulisnya ke file yang dapat dibaca aplikasi. Contoh dalam topik ini menunjukkan cara menulis data ke file YAMG, tetapi Anda dapat menggunakan pendekatan dasar yang sama untuk format lain, seperti JSON atau XHTML.

Untuk meneruskan data nilai kunci ke instance tumpukan, tambahkan JSON khusus seperti berikut ini ke tumpukan. Untuk informasi selengkapnya tentang cara menambahkan JSON kustom ke tumpukan, lihat[Menggunakan JSON Kustom](workingstacks-json.md).

```
{
  "my_app_data": {
    "app1": {
      "key1": "value1",
      "key2": "value2",
      "key3": "value3"
    },
    "app2": {
      "key1": "value1",
      "key2": "value2",
      "key3": "value3"
    }
  }
}
```

Contohnya mengasumsikan bahwa Anda memiliki dua aplikasi yang nama pendeknya `app1` dan`app2`, masing-masing memiliki tiga nilai data. Resep yang menyertainya mengasumsikan bahwa Anda menggunakan nama pendek aplikasi untuk mengidentifikasi data terkait; nama lainnya bersifat arbitrer. Untuk informasi selengkapnya tentang nama pendek aplikasi, lihat[Pengaturan](workingapps-creating.md#workingapps-creating-settings).

Resep dalam contoh berikut menunjukkan cara mengekstrak data untuk setiap aplikasi dari `deploy` atribut dan memasukkannya ke dalam `.yml` file. Resepnya mengasumsikan bahwa JSON kustom Anda berisi data untuk setiap aplikasi.

```
node[:deploy].each do |app, deploy|
  file File.join(deploy[:deploy_to], 'shared', 'config', 'app_data.yml') do
    content YAML.dump(node[:my_app_data][app].to_hash)
  end
end
```

`deploy`Atribut berisi atribut untuk setiap aplikasi, dinamai dengan nama pendek aplikasi. Setiap atribut aplikasi berisi sekumpulan atribut yang mewakili berbagai informasi tentang aplikasi. Contoh ini menggunakan direktori penerapan aplikasi, yang diwakili oleh `[:deploy][:app_short_name][:deploy_to]` atribut. Untuk informasi selengkapnya tentang `[:deploy]`, lihat [menyebarkan Atribut](attributes-json-deploy.md).

Untuk setiap aplikasi di`deploy`, resepnya melakukan hal berikut:

1. Membuat file bernama `app_data.yml` di `shared/config` subdirektori direktori aplikasi. `[:deploy_to]`

   Untuk informasi selengkapnya tentang cara OpsWorks Stacks menginstal aplikasi, lihat. [Menyebarkan Resep](create-custom-deploy.md)

1. Mengonversi nilai JSON kustom aplikasi ke YAMAL dan menulis data yang diformat ke. `app_data.yml`

**Untuk meneruskan data ke aplikasi**

1. Tambahkan aplikasi ke tumpukan dan catat nama pendeknya. Untuk informasi selengkapnya, lihat [Menambahkan Aplikasi](workingapps-creating.md).

1. Tambahkan JSON khusus dengan data aplikasi ke `deploy` atribut, seperti yang dijelaskan sebelumnya. Untuk informasi selengkapnya tentang cara menambahkan JSON kustom ke tumpukan, lihat[Menggunakan JSON Kustom](workingstacks-json.md).

1. Buat buku masak dan tambahkan resep ke dalamnya dengan kode berdasarkan contoh sebelumnya, dimodifikasi sesuai kebutuhan untuk nama atribut yang Anda gunakan di JSON kustom. Untuk informasi lebih lanjut tentang cara membuat buku masak dan resep, lihat[Buku Masak dan Resep](workingcookbook.md). Jika Anda sudah memiliki buku masak khusus untuk tumpukan ini, Anda juga dapat menambahkan resep ke buku masak yang ada, atau bahkan menambahkan kode ke resep Deploy yang ada.

1. Instal buku masak di tumpukan Anda. Untuk informasi selengkapnya, lihat [Memasang Buku Masak Kustom](workingcookbook-installingcustom-enable.md).

1. Tetapkan resep ke peristiwa siklus hidup Deploy layer server aplikasi. OpsWorks Tumpukan kemudian akan menjalankan resep pada setiap instance baru, setelah di-boot. Untuk informasi selengkapnya, lihat [Melaksanakan Resep](workingcookbook-executing.md).

1. Menerapkan aplikasi, yang juga menginstal konfigurasi tumpukan dan atribut penerapan yang sekarang berisi data Anda.

**catatan**  
Jika file data harus ada sebelum aplikasi di-deploy, Anda juga dapat menetapkan resep ke event siklus hidup Setup layer, yang terjadi sekali, tepat setelah instance selesai booting. Namun, OpsWorks Stacks belum membuat direktori penerapan, jadi resep Anda harus membuat direktori yang diperlukan secara eksplisit sebelum membuat file data. Contoh berikut secara eksplisit membuat `/shared/config` direktori aplikasi, dan kemudian membuat file data di direktori tersebut.  

```
node[:deploy].each do |app, deploy|

 directory "#{deploy[:deploy_to]}/shared/config" do
      owner "deploy"
      group "www-data"
      mode 0774
      recursive true
      action :create
    end

  file File.join(deploy[:deploy_to], 'shared', 'config', 'app_data.yml') do
    content YAML.dump(node[:my_app_data][app].to_hash)
  end
end
```

Untuk memuat data, Anda dapat menggunakan sesuatu seperti kode [Sinatra](http://www.sinatrarb.com/) berikut:

```
#!/usr/bin/env ruby
# encoding: UTF-8
require 'sinatra'
require 'yaml'

get '/' do
  YAML.load(File.read(File.join('..', '..', 'shared', 'config', 'app_data.yml')))
End
```

Anda dapat memperbarui nilai data aplikasi kapan saja dengan memperbarui JSON kustom, sebagai berikut.

**Untuk memperbarui data aplikasi**

1. Edit JSON kustom untuk memperbarui nilai data.

1. Terapkan aplikasi lagi, yang mengarahkan OpsWorks Stacks untuk menjalankan resep Deploy pada instance tumpukan. Resep akan menggunakan atribut dari konfigurasi tumpukan yang diperbarui dan atribut penerapan, sehingga resep kustom Anda akan memperbarui file data dengan nilai saat ini.

# Menggunakan Kunci SSH Repositori Git
<a name="workingapps-deploykeys"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Kunci SSH repositori Git, kadang-kadang disebut kunci SSH deploy, adalah kunci SSH tanpa kata sandi yang menyediakan akses ke repositori Git pribadi. Idealnya, itu bukan milik pengembang tertentu. Tujuannya adalah untuk memungkinkan OpsWorks Stacks untuk menyebarkan aplikasi atau buku masak secara asinkron dari repositori Git tanpa memerlukan masukan lebih lanjut dari Anda.

Berikut ini menjelaskan prosedur dasar untuk membuat kunci SSH repositori. Untuk detailnya, lihat dokumentasi untuk repositori Anda. Misalnya, [Mengelola kunci penerapan menjelaskan cara membuat kunci](https://help.github.com/articles/managing-deploy-keys) SSH repositori untuk repositori, dan Kunci [Deployment di Bitbucket menjelaskan cara membuat kunci SSH GitHub repositori untuk repositori Bitbucket](http://blog.bitbucket.org/2012/06/20/deployment-keys/). Perhatikan bahwa beberapa dokumentasi menjelaskan pembuatan kunci di server. Untuk OpsWorks Stacks, cukup ganti “server” dengan “workstation” dalam instruksi. 

**Untuk membuat kunci SSH repositori**

1. Buat deploy key pair SSH untuk repositori Git Anda di workstation Anda menggunakan program seperti. `ssh-keygen` 
**penting**  
OpsWorks Stacks tidak mendukung frasa sandi kunci SSH.

1. Tetapkan kunci publik ke repositori dan simpan kunci pribadi di workstation Anda.

1. Masukkan kunci pribadi di kotak **Kunci SSH Repositori** saat Anda menambahkan aplikasi atau menentukan repositori buku masak. Untuk informasi selengkapnya, lihat [Menambahkan Aplikasi](workingapps-creating.md).

OpsWorks Tumpukan meneruskan kunci SSH repositori ke setiap instance, dan resep bawaan kemudian menggunakan kunci untuk terhubung ke repositori dan mengunduh kode. Kunci disimpan dalam [`deploy`atribut](workingcookbook-json.md) sebagai [`node[:deploy]['appshortname'][:scm][:ssh_key]`](attributes-json-deploy.md#attributes-json-deploy-app-scm-key), dan hanya dapat diakses oleh pengguna root. 

# Menggunakan Domain Kustom
<a name="workingapps-domains"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Jika Anda meng-host nama domain dengan pihak ketiga, Anda dapat memetakan nama domain tersebut ke aplikasi. Prosedur dasarnya adalah sebagai berikut:

1. Buat subdomain dengan registrar DNS Anda dan petakan ke alamat IP Elastis penyeimbang beban atau alamat IP publik server aplikasi Anda.

1. Perbarui konfigurasi aplikasi Anda untuk menunjuk ke subdomain dan menerapkan ulang aplikasi. 

**catatan**  
Pastikan Anda meneruskan nama domain yang tidak memenuhi syarat (seperti myapp1.example.com) ke nama domain yang memenuhi syarat (seperti www.myapp1.example.com) sehingga keduanya dipetakan ke aplikasi Anda. 

Saat Anda mengonfigurasi domain untuk aplikasi, domain tersebut terdaftar sebagai alias server di file konfigurasi server. Jika Anda menggunakan penyeimbang beban, penyeimbang beban memeriksa nama domain di URL saat permintaan masuk dan mengarahkan lalu lintas berdasarkan domain.

**Untuk memetakan subdomain ke alamat IP**

1. Jika Anda menggunakan penyeimbang beban, pada halaman **Instances, klik instans** load balancer untuk membuka halaman detailnya dan mendapatkan alamat IP **Elastis** instans. Jika tidak, dapatkan alamat IP publik dari halaman detail instance server aplikasi. 

1. Ikuti petunjuk yang diberikan oleh registrar DNS Anda untuk membuat dan memetakan subdomain Anda ke alamat IP dari Langkah 1.

**catatan**  
Jika instans penyeimbang beban berakhir di beberapa titik, Anda akan diberi alamat IP Elastis baru. Anda perlu memperbarui pengaturan registrar DNS Anda untuk memetakan ke alamat IP Elastis yang baru.

OpsWorks Stacks hanya menambahkan pengaturan domain ke [`deploy`atribut](workingcookbook-json.md#workingcookbook-json-deploy) aplikasi. Anda harus menerapkan resep khusus untuk mengambil informasi dari objek node dan mengkonfigurasi server dengan tepat. Untuk informasi selengkapnya, lihat [Buku Masak dan Resep](workingcookbook.md).

# Menjalankan Beberapa Aplikasi di Server Aplikasi yang Sama
<a name="workingapps-multiple"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

**catatan**  
Informasi dalam topik ini tidak berlaku untuk aplikasi Node.js.

Jika Anda memiliki beberapa aplikasi dari jenis yang sama, terkadang lebih hemat biaya untuk menjalankannya pada instance server aplikasi yang sama.

**Untuk menjalankan beberapa aplikasi di server yang sama**

1. Tambahkan aplikasi ke tumpukan untuk setiap aplikasi.

1. Dapatkan subdomain terpisah untuk setiap aplikasi dan petakan subdomain ke server aplikasi atau alamat IP penyeimbang beban.

1. Edit konfigurasi setiap aplikasi untuk menentukan subdomain yang sesuai.

Untuk informasi selengkapnya tentang cara melakukan tugas-tugas ini, lihat[Menggunakan Domain Kustom](workingapps-domains.md).

**catatan**  
Jika server aplikasi Anda menjalankan beberapa aplikasi HTTP, Anda dapat menggunakan Elastic Load Balancing untuk load-balancing. Untuk beberapa aplikasi HTTPS, Anda harus menghentikan koneksi SSL di penyeimbang beban atau membuat tumpukan terpisah untuk setiap aplikasi. Permintaan HTTPS dienkripsi, yang berarti bahwa jika Anda menghentikan koneksi SSL di server, penyeimbang beban tidak dapat memeriksa nama domain untuk menentukan aplikasi mana yang harus menangani permintaan tersebut.

# Menggunakan SSL
<a name="workingsecurity-ssl"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Untuk menggunakan SSL dengan aplikasi Anda, Anda harus terlebih dahulu mendapatkan sertifikat server digital dari Certificate Authority (CA). Untuk kesederhanaan, panduan ini membuat sertifikat dan kemudian menandatanganinya sendiri. Sertifikat yang ditandatangani sendiri berguna untuk tujuan pembelajaran dan pengujian, tetapi Anda harus selalu menggunakan sertifikat yang ditandatangani oleh CA untuk tumpukan produksi. 

Dalam panduan ini, Anda akan melakukan hal berikut: 

1. Instal dan konfigurasi OpenSSL.

1. Buat kunci privat.

1. Buat permintaan penandatanganan sertifikat.

1. Hasilkan sertifikat yang ditandatangani sendiri.

1. Edit aplikasi dengan informasi sertifikat Anda. 

**penting**  
[Jika aplikasi Anda menggunakan SSL, kami sarankan Anda menonaktifkan, jika mungkin SSLv3, di lapisan server aplikasi Anda untuk mengatasi kerentanan yang dijelaskan dalam CVE-2014-3566.](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2014-3566) Jika tumpukan Anda menyertakan lapisan Ganglia, Anda harus menonaktifkan SSL v3 untuk lapisan itu juga. Detailnya tergantung pada lapisan tertentu; untuk informasi lebih lanjut, lihat yang berikut ini.  
[Lapisan OpsWorks Tumpukan Server Aplikasi Java](layers-java.md)
[Lapisan OpsWorks Tumpukan Server Aplikasi Node.js](workinglayers-node.md)
[Lapisan OpsWorks Tumpukan Server Aplikasi PHP](workinglayers-php.md)
[Lapisan OpsWorks Tumpukan Server Aplikasi Rails](workinglayers-rails.md)
[Lapisan OpsWorks Tumpukan Server Web Statis](workinglayers-static.md)
[Lapisan Ganglia](workinglayers-ganglia.md)

**Topics**
+ [Langkah 1: Instal dan Konfigurasikan OpenSSL](#w2ab1c14c57c29c15)
+ [Langkah 2: Buat Kunci Pribadi](#w2ab1c14c57c29c17)
+ [Langkah 3: Buat Permintaan Penandatanganan Sertifikat](#w2ab1c14c57c29c19)
+ [Langkah 4: Kirim CSR ke Otoritas Sertifikat](#w2ab1c14c57c29c21)
+ [Langkah 5: Edit Aplikasi](#w2ab1c14c57c29c23)

## Langkah 1: Instal dan Konfigurasikan OpenSSL
<a name="w2ab1c14c57c29c15"></a>

Membuat dan mengunggah sertifikat server memerlukan alat yang mendukung protokol SSL dan TLS. OpenSSL adalah alat sumber terbuka yang menyediakan fungsi kriptografi dasar yang diperlukan untuk membuat token RSA dan menandatanganinya dengan kunci pribadi Anda.

 Prosedur berikut mengasumsikan bahwa komputer Anda belum menginstal OpenSSL. 

**Untuk menginstal OpenSSL di Linux dan Unix**

1. Pergi ke [OpenSSL:](https://www.openssl.org/source/) Sumber, Tarballs.

1. Unduh sumber terbaru.

1. Bangun paketnya.

**Untuk menginstal OpenSSL di Windows**

1. [Jika Microsoft Visual C \$1\$1 2008 Redistributable Package belum diinstal pada sistem Anda, download paket.](https://www.microsoft.com/en-us/download/details.aspx?id=11895)

1. Jalankan installer dan ikuti petunjuk yang diberikan oleh Microsoft Visual C \$1\$1 2008 Redistributable Setup Wizard untuk menginstal redistributable.

1. Buka [OpenSSL: Distribusi Biner, klik versi binari](https://www.openssl.org/community/binaries.html) OpenSSL yang sesuai untuk lingkungan Anda, dan simpan penginstal secara lokal.

1. Jalankan installer dan ikuti instruksi di **OpenSSL Setup** Wizard untuk menginstal binari. 

Buat variabel lingkungan yang menunjuk ke titik instalasi OpenSSL dengan membuka terminal atau jendela perintah dan menggunakan baris perintah berikut. 
+ Di Linux dan Unix

  ```
  export OpenSSL_HOME=path_to_your_OpenSSL_installation
  ```
+ Pada Windows

  ```
  set OpenSSL_HOME=path_to_your_OpenSSL_installation 
  ```

Tambahkan path binari OpenSSL ke variabel path komputer Anda dengan membuka terminal atau jendela perintah dan menggunakan baris perintah berikut.
+ Di Linux dan Unix

  ```
  export PATH=$PATH:$OpenSSL_HOME/bin 
  ```
+ Pada Windows

  ```
  set Path=OpenSSL_HOME\bin;%Path% 
  ```

**catatan**  
Setiap perubahan yang Anda buat pada variabel lingkungan dengan menggunakan baris perintah ini hanya valid untuk sesi baris perintah saat ini.

## Langkah 2: Buat Kunci Pribadi
<a name="w2ab1c14c57c29c17"></a>

Anda memerlukan kunci pribadi unik untuk membuat Permintaan Penandatanganan Sertifikat (CSR). Buat kunci dengan menggunakan baris perintah berikut:

```
openssl genrsa 2048 > privatekey.pem
```

## Langkah 3: Buat Permintaan Penandatanganan Sertifikat
<a name="w2ab1c14c57c29c19"></a>

Permintaan Penandatanganan Sertifikat (CSR) adalah file yang dikirim ke Otoritas Sertifikat (CA) untuk mengajukan sertifikat server digital. Buat CSR dengan menggunakan baris perintah berikut.

```
openssl req -new -key privatekey.pem -out csr.pem
```

Output perintah akan terlihat mirip dengan berikut ini:

```
You are about to be asked to enter information that will be incorporated 
	into your certificate request.
	What you are about to enter is what is called a Distinguished Name or a DN.
	There are quite a few fields but you can leave some blank
	For some fields there will be a default value,
	If you enter '.', the field will be left blank.
```

Tabel berikut dapat membantu Anda membuat permintaan sertifikat.


**Data Permintaan Sertifikat**  

| Nama | Deskripsi | Contoh | 
| --- | --- | --- | 
| Nama Negara | Singkatan ISO dua huruf untuk negara Anda. | AS = Amerika Serikat | 
| Negara Bagian atau Provinsi | Nama negara bagian atau provinsi tempat organisasi Anda berada. Nama ini tidak boleh disingkat. | Washington | 
| Nama Lokal | Nama kota tempat organisasi Anda berada. | Seattle | 
| Nama Organisasi | Nama lengkap legal organisasi Anda. Jangan menyingkat nama organisasi Anda. | CorporationX | 
| Unit Organisasi | (Opsional) Untuk informasi organisasi tambahan. | Pemasaran | 
| Nama Umum | Nama domain yang sepenuhnya memenuhi syarat untuk CNAME Anda. Anda akan menerima peringatan pemeriksaan nama sertifikat jika ini tidak sama persis. | www.example.com | 
| Alamat Email | Alamat email administrator server | someone@example.com | 

**catatan**  
Bidang Nama Umum sering disalahpahami dan diselesaikan secara tidak benar. Nama umum biasanya host Anda ditambah nama domain. Ini akan terlihat seperti “www.example.com” atau “example.com”. Anda perlu membuat CSR menggunakan nama umum yang benar. 

## Langkah 4: Kirim CSR ke Otoritas Sertifikat
<a name="w2ab1c14c57c29c21"></a>

Untuk penggunaan produksi, Anda akan memperoleh sertifikat server dengan mengirimkan CSR Anda ke Otoritas Sertifikat (CA), yang mungkin memerlukan kredensi atau bukti identitas lainnya. Jika aplikasi Anda berhasil, CA mengembalikan sertifikat identitas yang ditandatangani secara digital dan mungkin file rantai sertifikat. AWS tidak merekomendasikan CA tertentu. Untuk sebagian daftar yang tersedia CAs, lihat [Otoritas Sertifikat - Penyedia](https://en.wikipedia.org/wiki/Certificate_authority#Providers) di Wikipedia.

Anda juga dapat membuat sertifikat yang ditandatangani sendiri, yang hanya dapat digunakan untuk tujuan pengujian. Untuk contoh ini, gunakan baris perintah berikut untuk menghasilkan sertifikat yang ditandatangani sendiri. 

```
openssl x509 -req -days 365 -in csr.pem -signkey privatekey.pem -out server.crt
```

Output akan terlihat serupa dengan yang berikut ini:

```
Loading 'screen' into random state - done
Signature ok
subject=/C=us/ST=washington/L=seattle/O=corporationx/OU=marketing/CN=example.com/emailAddress=someone@example.com
Getting Private key
```

## Langkah 5: Edit Aplikasi
<a name="w2ab1c14c57c29c23"></a>

Setelah Anda membuat sertifikat dan menandatanganinya, perbarui aplikasi Anda untuk mengaktifkan SSL dan memberikan informasi sertifikat Anda. Di halaman **Aplikasi**, pilih aplikasi untuk membuka halaman detail, lalu klik **Edit Aplikasi**. Untuk mengaktifkan dukungan SSL, atur **Aktifkan SSL** ke **Ya**, yang menampilkan opsi konfigurasi berikut.

**Sertifikat SSL**  
Tempelkan isi file public key certificate (.crt) ke dalam kotak. Sertifikat harus terlihat seperti berikut:  

```
-----BEGIN CERTIFICATE-----
MIICuTCCAiICCQCtqFKItVQJpzANBgkqhkiG9w0BAQUFADCBoDELMAkGA1UEBhMC
dXMxEzARBgNVBAgMCndhc2hpbmd0b24xEDAOBgNVBAcMB3NlYXR0bGUxDzANBgNV
BAoMBmFtYXpvbjEWMBQGA1UECwwNRGV2IGFuZCBUb29sczEdMBsGA1UEAwwUc3Rl
cGhhbmllYXBpZXJjZS5jb20xIjAgBgkqhkiG9w0BCQEWE3NhcGllcmNlQGFtYXpv
...
-----END CERTIFICATE-----
```
Jika Anda menggunakan Nginx dan Anda memiliki file rantai sertifikat, Anda harus menambahkan konten ke file sertifikat kunci publik.
Jika Anda memperbarui sertifikat yang ada, lakukan hal berikut:  
+ Pilih **Perbarui sertifikat SSL** untuk memperbarui sertifikat.
+ Jika sertifikat baru tidak cocok dengan kunci pribadi yang ada, pilih **Perbarui kunci sertifikat SSL**.
+ Jika sertifikat baru tidak cocok dengan rantai sertifikat yang ada, pilih **Perbarui sertifikat SSL**.

**Kunci Sertifikat SSL**  
Rekatkan isi file kunci pribadi (file.pem) ke dalam kotak. Seharusnya terlihat seperti berikut:  

```
----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC0CYklJY5r4vV2NHQYEpwtsLuMMBhylMrgBShKq+HHVLYQQCL6
+wGIiRq5qXqZlRXje3GM5Jvcm6q0R71MfRIl1FuzKyqDtneZaAIEYniZibHiUnmO
/UNqpFDosw/6hY3ONk0fSBlU4ivD0Gjpf6J80jL3DJ4R23Ed0sdL4pRT3QIDAQAB
AoGBAKmMfWrNRqYVtGKgnWB6Tji9QrKQLMXjmHeGg95mppdJELiXHhpMvrHtpIyK
...
-----END RSA PRIVATE KEY-----
```

**Sertifikat SSL dari Otoritas Sertifikasi**  
Jika Anda memiliki file rantai sertifikat, tempelkan konten ke dalam kotak.  
Jika Anda menggunakan Nginx, Anda harus membiarkan kotak ini kosong. Jika Anda memiliki file rantai sertifikat, tambahkan ke file sertifikat kunci publik di Sertifikat **SSL**.

![\[SSL Settings interface with options for SSL Dukungan, Certificate, Key, and Certification Authorities.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/app_ssl_settings.png)


Setelah Anda mengklik **Simpan**, [gunakan ulang aplikasi](workingapps-deploying.md) untuk memperbarui instans online Anda.

Untuk [lapisan server aplikasi bawaan](workingcookbook-json.md#workingcookbook-json-deploy), OpsWorks Stacks secara otomatis memperbarui konfigurasi server. Setelah penerapan selesai, Anda dapat memverifikasi bahwa instalasi OpenSSL Anda berfungsi, sebagai berikut.

**Untuk memverifikasi instalasi OpenSSL**

1. Pergi ke halaman **Instances**.

1. Jalankan aplikasi dengan mengklik alamat IP instans server aplikasi atau, jika Anda menggunakan penyeimbang beban, alamat IP penyeimbang beban.

1. Ubah awalan alamat IP dari **http://** ke **https://** dan segarkan browser untuk memverifikasi halaman dimuat dengan benar dengan SSL.

Pengguna yang telah mengonfigurasi aplikasi untuk dijalankan di Mozilla Firefox terkadang mendapatkan kesalahan sertifikat berikut:`SEC_ERROR_UNKNOWN_ISSUER`. Kesalahan ini dapat disebabkan oleh fungsionalitas penggantian sertifikat dalam program antivirus dan antimalware organisasi Anda, oleh beberapa jenis perangkat lunak pemantauan dan pemfilteran lalu lintas jaringan, atau oleh malware. Untuk informasi selengkapnya tentang cara memecahkan masalah kesalahan ini, lihat [Cara memecahkan masalah kode kesalahan keamanan di situs web aman di situs web Dukungan](https://support.mozilla.org/en-US/kb/error-codes-secure-websites?redirectlocale=en-US&redirectslug=troubleshoot-SEC_ERROR_UNKNOWN_ISSUER#w_monitoringfiltering-in-corporate-networks) Mozilla Firefox.

[Untuk semua lapisan lain, termasuk lapisan khusus, OpsWorks Stacks hanya menambahkan pengaturan SSL ke atribut aplikasi. `deploy`](workingcookbook-json.md#workingcookbook-json-deploy) Anda harus menerapkan resep khusus untuk mengambil informasi dari objek node dan mengkonfigurasi server dengan tepat.