

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

# Men-deploy situs web Drupal ketersediaan tinggi dengan basis data Amazon RDS eksternal ke Elastic Beanstalk
<a name="php-hadrupal-tutorial"></a>

Tutorial ini memandu Anda melalui proses [peluncuran instans RDS DB](AWSHowTo.RDS.md) eksternal ke AWS Elastic Beanstalk. Kemudian dijelaskan tentang konfigurasi lingkungan ketersediaan tinggi yang menjalankan situs web Drupal untuk terhubung dengannya. Situs web menggunakan Amazon Elastic File System (Amazon EFS) sebagai penyimpanan bersama untuk file yang diunggah. Menjalankan instans DB eksternal ke Elastic Beanstalk memisahkan database dari siklus hidup lingkungan Anda, dan memungkinkan Anda terhubung ke database yang sama dari beberapa lingkungan, menukar satu database dengan yang lain, atau melakukan penerapan tanpa memengaruhi database Anda. blue/green 

**Topics**
+ [Prasyarat](#php-hadrupal-tutorial-prereqs)
+ [Meluncurkan instans DB pada Amazon RDS](#php-hadrupal-tutorial-database)
+ [Meluncurkan lingkungan Elastic Beanstalk](#php-hadrupal-tutorial-launch)
+ [Mengonfigurasi pengaturan keamanan dan properti lingkungan](#php-hadrupal-tutorial-configure)
+ [Mengonfigurasi dan men-deploy aplikasi Anda](#php-hadrupal-tutorial-deploy)
+ [Menginstal Drupal](#php-hadrupal-tutorial-install)
+ [Perbarui konfigurasi Drupal dan hapus pembatasan akses](#php-hadrupal-tutorial-updateenv)
+ [Mengonfigurasi grup Auto Scaling](#php-hadrupal-tutorial-autoscaling)
+ [Pembersihan](#php-hadrupal-tutorial-cleanup)
+ [Langkah selanjutnya](#php-hadrupal-tutorial-nextsteps)

## Prasyarat
<a name="php-hadrupal-tutorial-prereqs"></a>

Tutorial ini mengasumsikan Anda memiliki pengetahuan tentang operasi Elastic Beanstalk dasar dan konsol Elastic Beanstalk. Jika belum, ikuti petunjuk di [Pelajari cara memulai dengan Elastic Beanstalk](GettingStarted.md) untuk meluncurkan lingkungan Elastic Beanstalk pertama Anda.

Untuk mengikuti prosedur di panduan ini, Anda memerlukan terminal atau shell baris perintah untuk menjalankan perintah. Perintah ditampilkan dalam daftar yang diawali dengan simbol prompt (\$1) dan nama direktori saat ini, bila perlu.

```
~/eb-project$ this is a command
this is output
```

Di Linux dan macOS, Anda dapat menggunakan shell dan manajer paket pilihan Anda. Pada Windows Anda dapat [menginstal Windows Subsystem untuk Linux untuk](https://docs.microsoft.com/en-us/windows/wsl/install-win10) mendapatkan versi Windows terintegrasi dari Ubuntu dan Bash.

Prosedur dalam tutorial ini untuk tugas Amazon Relational Database Service (Amazon RDS) yang menganggap Anda sedang meluncurkan sumber daya di [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) default. Semua akun baru menyertakan VPC default di setiap wilayah. Jika Anda tidak memiliki VPC default, prosedurnya akan bervariasi. Lihat petunjuk [Menggunakan Elastic Beanstalk dengan Amazon RDS](AWSHowTo.RDS.md) untuk platform EC2 -Classic dan VPC kustom.

Aplikasi sampel menggunakan Amazon EFS. Ini hanya berfungsi di AWS Wilayah yang mendukung Amazon EFS. Untuk mempelajari tentang AWS Wilayah pendukung, lihat [Titik Akhir dan Kuota Amazon Elastic File System di bagian](https://docs.aws.amazon.com/general/latest/gr/elasticfilesystem.html). *Referensi Umum AWS*

Jika platform lingkungan Elastic Beanstalk Anda menggunakan PHP 7.4 atau sebelumnya, kami sarankan Anda menggunakan Drupal versi 8.9.13 untuk tutorial ini. Untuk platform yang diinstal dengan PHP 8.0 atau yang lebih baru, kami sarankan Anda menggunakan Drupal 9.1.5.

Untuk informasi lebih lanjut tentang rilis Drupal dan versi PHP yang didukung, lihat [Persyaratan PHP](https://www.drupal.org/docs/system-requirements/php-requirements#php_required) di situs Drupal. Versi inti yang direkomendasikan Drupal tercantum di situs web [https://www.drupal. org/project/drupal](https://www.drupal.org/project/drupal). 

## Meluncurkan instans DB pada Amazon RDS
<a name="php-hadrupal-tutorial-database"></a>

Untuk menggunakan basis data eksternal dengan aplikasi yang berjalan di Elastic Beanstalk, hal pertama yang dilakukan adalah meluncurkan instans DB dengan Amazon RDS. Ketika Anda meluncurkan instans dengan Amazon RDS, instans sepenuhnya tidak akan bergantung kepada Elastic Beanstalk dan lingkungan Elastic Beanstalk Anda, dan tidak akan diakhiri atau dipantau oleh Elastic Beanstalk.

Gunakan konsol Amazon RDS untuk meluncurkan instans DB **MySQL** Multi-AZ. Memilih deployment Multi-AZ memastikan bahwa basis data Anda akan failover dan terus tersedia jika instans DB sumber keluar dari layanan.

**Untuk meluncurkan instans DB RDS pada VPC default**

1. Buka [konsol RDS](https://console.aws.amazon.com/rds/home).

1. Di panel navigasi, pilih **Basis Data**.

1. Pilih **Buat basis data**.

1. Pilih **Pembuatan Standar**.
**penting**  
Jangan pilih **Pembuatan Mudah**. Jika Anda memilihnya, Anda tidak dapat mengonfigurasi pengaturan yang diperlukan untuk meluncurkan RDS DB ini.

1. Dalam **Konfigurasi tambahan**, untuk **Nama basis data awal**, ketik **ebdb**. 

1. Tinjau pengaturan default dan sesuaikan pengaturan ini sesuai dengan kebutuhan spesifik Anda. Perhatikan opsi berikut:
   + **Kelas instans DB** – Memilih ukuran instans yang memiliki jumlah memori dan daya CPU yang sesuai dengan beban kerja Anda.
   + **Penerapan multi-AZ** — Untuk ketersediaan tinggi, atur ini ke **Buat Replica/Reader simpul Aurora di** AZ yang berbeda.
   + **Nama pengguna utama** dan **Kata sandi utama** – Nama pengguna dan kata sandi basis data. Catat pengaturan ini karena Anda akan menggunakannya nanti.

1. Verifikasi pengaturan default untuk opsi lainnya, dan kemudian pilih **Buat basis data**.

Berikutnya, modifikasi grup keamanan yang dilampirkan ke instans DB Anda untuk memperbolehkan lintas masuk pada port yang sesuai. Modifikasi grup keamanan adalah grup keamanan yang sama yang akan Anda lampirkan ke lingkungan Elastic Beanstalk Anda kelak, sehingga aturan yang ditambahkan akan memberikan izin masuk ke sumber daya lain dalam grup keamanan yang sama.

**Untuk mengubah aturan masuk pada grup keamanan yang dilampirkan ke instans RDS Anda**

1. Buka [ konsol Amazon RDS](https://console.aws.amazon.com/rds/home).

1. Pilih **Basis data**.

1. Pilih nama instans DB Anda untuk menampilkan detailnya.

1. Di bagian **Konektivitas**, catat **Subnet**, **grup Keamanan**, dan **Titik Akhir** yang ditampilkan di halaman ini. Ini agar Anda dapat menggunakan informasi ini nanti.

1. Di bawah **Keamanan**, Anda dapat melihat grup keamanan yang terkait dengan instans DB. Buka tautan untuk melihat grup keamanan di EC2 konsol Amazon.

1. Pada detail grup keamanan, pilih **Masuk**.

1. Pilih **Edit**.

1. Pilih **Tambahkan Aturan**.

1. Untuk **Jenis**, pilih mesin DB yang digunakan aplikasi Anda.

1. Untuk **Sumber**, ketik **sg-** untuk melihat daftar grup keamanan yang tersedia. Pilih grup keamanan yang terkait dengan grup Auto Scaling yang digunakan dengan lingkungan Elastic Beanstalk Anda. Ini agar EC2 instans Amazon di lingkungan dapat memiliki akses ke database.  
![\[Gambar layar untuk mengedit aturan masuk untuk grup keamanan di EC2 konsol Amazon.\]](http://docs.aws.amazon.com/id_id/elasticbeanstalk/latest/dg/images/ec2-securitygroup-rds.png)

1. Pilih **Simpan**.

Membuat instans DB memakan waktu sekitar 10 menit. Sementara itu, luncurkan lingkungan Elastic Beanstalk Anda.

## Meluncurkan lingkungan Elastic Beanstalk
<a name="php-hadrupal-tutorial-launch"></a>

Gunakan konsol Elastic Beanstalk untuk membuat lingkungan Elastic Beanstalk. Pilih platform **PHP** lalu terima pengaturan default dan kode sampel. Setelah Anda meluncurkan lingkungan, Anda dapat mengonfigurasi lingkungan untuk terhubung ke basis data, kemudian men-deploy kode Drupal ke lingkungan.

**Untuk meluncurkan lingkungan (konsol)**

1. [Buka konsol Elastic Beanstalk menggunakan tautan yang telah dikonfigurasi sebelumnya: console.aws.amazon. com/elasticbeanstalk/home\$1/newApplication? applicationName=Tutorial&EnvironmentType= LoadBalanced](https://console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced)

1. Untuk **Platform**, pilih platform dan cabang platform yang sesuai dengan bahasa yang digunakan oleh aplikasi Anda.

1. Untuk **Kode aplikasi**, pilih **Aplikasi sampel**.

1. Pilih **Tinjau dan Luncurkan**.

1. Tinjau opsi yang tersedia. Pilih opsi tersedia yang ingin Anda gunakan, dan saat Anda siap, pilih **Buat aplikasi**.

Pembuatan lingkungan membutuhkan waktu sekitar 5 menit dan membuat sumber daya berikut:
+ **EC2 instance** — Mesin virtual Amazon Elastic Compute Cloud (Amazon EC2) yang dikonfigurasi untuk menjalankan aplikasi web pada platform yang Anda pilih.

  Setiap platform menjalankan satu set perangkat lunak, file konfigurasi dan penulisan tertentu untuk mendukung versi bahasa, kerangka kerja, kontainer web tertentu, atau kombinasi dari semua ini. Sebagian besar platform menggunakan Apache atau NGINX sebagai proksi terbalik yang ada di depan aplikasi web Anda, meneruskan permintaan ke aplikasi web, menyajikan aset statis, dan menghasilkan log akses dan kesalahan.
+ **Grup keamanan instans — Grup** EC2 keamanan Amazon yang dikonfigurasi untuk memungkinkan lalu lintas masuk pada port 80. Sumber daya ini memungkinkan lalu lintas HTTP dari penyeimbang beban mencapai EC2 instance yang menjalankan aplikasi web Anda. Secara default, lalu lintas tidak diizinkan di port lain.
+ **Penyeimbang beban** – Penyeimbang beban Elastic Load Balancing yang dikonfigurasi untuk mendistribusikan permintaan ke instans yang menjalankan aplikasi Anda. Penyeimbang beban juga menghilangkan kebutuhan untuk mengekspos instans Anda langsung ke internet.
+ **Grup keamanan penyeimbang beban - Grup** EC2 keamanan Amazon yang dikonfigurasi untuk memungkinkan lalu lintas masuk di port 80. Sumber daya ini memungkinkan lalu lintas HTTP dari internet mencapai penyeimbang beban. Secara default, lalu lintas tidak diizinkan di port lain.
+ **Grup Auto Scaling** – Grup Auto Scaling yang dikonfigurasi untuk menggantikan instans jika diakhiri atau menjadi tidak tersedia.
+ **Bucket Amazon S3** – Lokasi penyimpanan untuk kode sumber, log, dan artifact lainnya yang dibuat saat Anda menggunakan Elastic Beanstalk.
+ ** CloudWatch Alarm Amazon** — Dua CloudWatch alarm yang memantau beban pada instans di lingkungan Anda dan yang dipicu jika beban terlalu tinggi atau terlalu rendah. Saat alarm terpicu, grup Auto Scaling Anda akan menaikkan atau menurunkan skala sebagai respons.
+ **CloudFormation stack** - Elastic CloudFormation Beanstalk digunakan untuk meluncurkan sumber daya di lingkungan Anda dan menyebarkan perubahan konfigurasi. Sumber daya ditentukan di sebuah templat yang dapat Anda lihat di [Konsol CloudFormation](https://console.aws.amazon.com/cloudformation).
+ **Nama domain — Nama** domain yang merutekan ke aplikasi web Anda dalam formulir **subdomain*. *region*.elasticbeanstalk.com*.
**Keamanan domain**  
[Untuk meningkatkan keamanan aplikasi Elastic Beanstalk Anda, domain elasticbeanstalk.com terdaftar di *Daftar* Akhiran Publik (PSL).](https://publicsuffix.org/)  
Jika Anda perlu mengatur cookie sensitif di nama domain default untuk aplikasi Elastic Beanstalk Anda, kami sarankan Anda menggunakan cookie `__Host-` dengan awalan untuk meningkatkan keamanan. Praktik ini melindungi domain Anda dari upaya pemalsuan permintaan lintas situs (CSRF). Untuk informasi selengkapnya, lihat halaman [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) di Jaringan Pengembang Mozilla.

Semua sumber daya ini dikelola oleh Elastic Beanstalk. Ketika Anda mengakhiri lingkungan, Elastic Beanstalk mengakhiri semua sumber daya yang dimuatnya. Instans DB RDS yang diluncurkan berada di luar lingkungan Anda, sehingga Anda bertanggung jawab untuk mengelola siklus hidupnya.

**catatan**  
Bucket Amazon S3 yang dibuat Elastic Beanstalk dibagi antar lingkungan dan tidak dihapus selama pengakhiran lingkungan. Untuk informasi selengkapnya, lihat [Menggunakan Elastic Beanstalk dengan Amazon S3](AWSHowTo.S3.md).

## Mengonfigurasi pengaturan keamanan dan properti lingkungan
<a name="php-hadrupal-tutorial-configure"></a>

Menambahkan grup keamanan instans DB Anda ke lingkungan Anda yang sedang berjalan. Prosedur ini menyebabkan Elastic Beanstalk menyediakan kembali instans di lingkungan Anda dengan grup keamanan tambahan terlampir.

**Untuk menambahkan grup keamanan ke lingkungan Anda**
+ Lakukan salah satu dari berikut ini:
  + Untuk menambahkan grup keamanan menggunakan konsol Elastic Beanstalk

    1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

    1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

    1. Pada panel navigasi, pilih **Konfigurasi**.

    1. Pada kategori konfigurasi **Instans**, pilih **Edit**.

    1. Di bawah **grup EC2 keamanan**, pilih grup keamanan untuk dilampirkan ke instance, selain grup keamanan instans yang dibuat Elastic Beanstalk.

    1. Untuk menyimpan perubahan pilih **Terapkan** di bagian bawah halaman.

    1. Baca peringatan, kemudian pilih **Konfirmasi**.
  + Untuk menambahkan grup keamanan menggunakan [file konfigurasi](ebextensions.md), gunakan file [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config)contoh.

Selanjutnya, gunakan properti lingkungan untuk meneruskan informasi koneksi ke lingkungan Anda. Aplikasi sampel menggunakan set properti default yang cocok dengan properti yang dikonfigurasi Elastic Beanstalk saat Anda menyediakan basis data di lingkungan Anda.

**Untuk mengonfigurasi properti lingkungan bagi instans DB Amazon RDS**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Dalam kategori konfigurasi **Pembaruan, pemantauan, dan pencatatan**, pilih **Edit**.

1. Pada bagian **Properti lingkungan**, tentukan variabel yang dibaca aplikasi Anda untuk membangun string koneksi. Untuk kompatibilitas dengan lingkungan yang memiliki instans DB RDS terintegrasi, gunakan nama dan nilai-nilai berikut. Anda dapat menemukan semua nilai, kecuali untuk kata sandi Anda, di [Konsol RDS](https://console.aws.amazon.com/rds/home).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/elasticbeanstalk/latest/dg/php-hadrupal-tutorial.html)  
![\[Bagian konfigurasi properti lingkungan dengan properti RDS ditambahkan\]](http://docs.aws.amazon.com/id_id/elasticbeanstalk/latest/dg/images/environment-cfg-envprops-rds.png)

1. Untuk menyimpan perubahan pilih **Terapkan** di bagian bawah halaman.

Setelah menginstal Drupal, Anda perlu terhubung ke instans dengan menggunakan SSH untuk menerima kembali beberapa detail konfigurasi. Menetapkan kunci SSH ke instans lingkungan Anda.

**Untuk mengonfigurasi SSH**

1. Jika sebelumnya Anda belum membuat key pair, buka [halaman pasangan kunci](https://console.aws.amazon.com/ec2/v2/home#KeyPairs) EC2 konsol Amazon dan ikuti petunjuk untuk membuatnya.

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Dalam **Keamanan**, pilih **Edit**.

1. Untuk **EC2 key pair**, pilih key pair Anda.

1. Untuk menyimpan perubahan pilih **Terapkan** di bagian bawah halaman.

## Mengonfigurasi dan men-deploy aplikasi Anda
<a name="php-hadrupal-tutorial-deploy"></a>

[Untuk membuat proyek Drupal untuk Elastic Beanstalk, unduh kode sumber Drupal dan gabungkan dengan file di aws-samples/repositori aktif. eb-php-drupal](https://github.com/aws-samples/eb-php-drupal) GitHub

**Untuk membuat proyek Drupal**

1. Jalankan perintah berikut untuk mengunduh Drupal dari *www.drupal.org/download*. Untuk mempelajari selengkapnya tentang unduhan, lihat [situs web Drupal](https://www.drupal.org/download).

   Jika platform lingkungan Elastic Beanstalk Anda menggunakan PHP 7.4 atau sebelumnya, kami sarankan Anda mengunduh Drupal versi 8.9.13 untuk tutorial ini. Anda dapat menjalankan perintah berikut untuk mengunduhnya.

   ```
   ~$ curl https://ftp.drupal.org/files/projects/drupal-8.9.13.tar.gz -o drupal.tar.gz
   ```

   Jika platform Anda menggunakan PHP 8.0 atau yang lebih baru, kami sarankan Anda mengunduh Drupal 9.1.5. Anda bisa menggunakan perintah ini untuk mengunduhnya.

   ```
   ~$ curl https://ftp.drupal.org/files/projects/drupal-9.1.5.tar.gz -o drupal.tar.gz
   ```

   Untuk informasi selengkapnya tentang rilis Drupal dan versi PHP yang mereka dukung, lihat [Persyaratan PHP](https://www.drupal.org/docs/system-requirements/php-requirements#php_required) dalam dokumentasi resmi Drupal. Versi inti yang disarankan Drupal tercantum dalam [situs web Drupal](https://www.drupal.org/project/drupal).

1. Gunakan perintah berikut untuk mengunduh file konfigurasi dari repositori sampel:

   ```
   ~$ wget https://github.com/aws-samples/eb-php-drupal/releases/download/v1.1/eb-php-drupal-v1.zip
   ```

1. Mengekstraksi Drupal dan ubah nama folder.

   Jika Anda mengunduh Drupal 8.9.13:

   ```
    ~$ tar -xvf drupal.tar.gz
    ~$ mv drupal-8.9.13 drupal-beanstalk
    ~$ cd drupal-beanstalk
   ```

   Jika Anda mengunduh Drupal 9.1.5:

   ```
    ~$ tar -xvf drupal.tar.gz
    ~$ mv drupal-9.1.5 drupal-beanstalk
    ~$ cd drupal-beanstalk
   ```

1. Mengekstraksi file konfigurasi melalui instalasi Drupal.

   ```
    ~/drupal-beanstalk$ unzip ../eb-php-drupal-v1.zip
     creating: .ebextensions/
     inflating: .ebextensions/dev.config
     inflating: .ebextensions/drupal.config
     inflating: .ebextensions/efs-create.config
     inflating: .ebextensions/efs-filesystem.template
     inflating: .ebextensions/efs-mount.config
     inflating: .ebextensions/loadbalancer-sg.config
     inflating: LICENSE
     inflating: README.md
     inflating: beanstalk-settings.php
   ```

Verifikasi bahwa struktur folder `drupal-beanstalk` Anda benar, seperti yang ditunjukkan.

```
drupal-beanstalk$ tree -aL 1
.
├── autoload.php
├── beanstalk-settings.php
├── composer.json
├── composer.lock
├── core
├── .csslintrc
├── .ebextensions
├── .ebextensions
├── .editorconfig
├── .eslintignore
├── .eslintrc.json
├── example.gitignore
├── .gitattributes
├── .htaccess
├── .ht.router.php
├── index.php
├── LICENSE
├── LICENSE.txt
├── modules
├── profiles
├── README.md
├── README.txt
├── robots.txt
├── sites
├── themes
├── update.php
├── vendor
└── web.config
```

File `beanstalk-settings.php` dari repo proyek menggunakan variabel lingkungan yang Anda tetapkan di langkah sebelumnya untuk mengonfigurasi koneksi basis data. Folder `.ebextensions` berisi file konfigurasi yang membuat sumber daya tambahan dalam lingkungan Elastic Beanstalk Anda.

File konfigurasi memerlukan modifikasi untuk dapat bekerja dengan akun Anda. Ganti nilai placeholder dalam file dengan yang sesuai IDs dan buat bundel sumber.

**Untuk memperbarui file konfigurasi dan membuat paket sumber.**

1. Memodifikasi file konfigurasi sebagai berikut.
   + `.ebextensions/dev.config` – membatasi akses ke lingkungan Anda ke alamat IP Anda untuk melindunginya selama proses instalasi Drupal. Ganti alamat IP placeholder dekat bagian atas file dengan alamat IP publik Anda.
   + `.ebextensions/efs-create.config` – membuat sistem file EFS dan titik pemasangan di setiap Availability Zone / subnet di VPC Anda. Identifikasi VPC dan subnet default Anda IDs di konsol [VPC](https://console.aws.amazon.com/vpc/home#subnets:filter=default) Amazon.

1. Membuat [paket sumber](applications-sourcebundle.md) berisi file dalam folder proyek Anda. Perintah berikut membuat paket sumber yang bernama `drupal-beanstalk.zip`. Paket sumber tidak termasuk file dalam folder `vendor`, yang memerlukan banyak ruang dan tidak perlu men-deploy aplikasi Anda ke Elastic Beanstalk.

   ```
   ~/eb-drupal$ zip ../drupal-beanstalk.zip -r * .[^.]* -x "vendor/*"
   ```

Unggah paket sumber ke Elastic Beanstalk untuk men-deploy Drupal ke lingkungan Anda.

**Untuk men-deploy paket sumber**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Di halaman gambaran umum lingkungan, pilih **Unggah dan deploy**.

1. Gunakan kotak dialog di layar untuk mengunggah paket sumber.

1. Pilih **Deploy**.

1. Ketika deployment selesai, Anda dapat memilih URL situs untuk membuka situs web Anda di tab baru.

## Menginstal Drupal
<a name="php-hadrupal-tutorial-install"></a>

**Untuk menyelesaikan instalasi Drupal Anda**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Pilih URL lingkungan untuk membuka situs Anda di peramban. Anda dialihkan ke wizard instalasi Drupal karena situs belum dikonfigurasikan.

1. Lakukan instalasi standar dengan pengaturan berikut untuk basis data:
   + **Nama basis data** – **Nama DB** yang ditunjukkan di konsol Amazon RDS.
   + **Nama pengguna dan kata sandi basis data** – Nilai **Nama Pengguna Utama** dan **Kata Sandi Utama** yang Anda masukkan saat membuat basis data Anda.
   + **Opsi Lanjutan > Host** – **Titik akhir** instans DB yang ditunjukkan di konsol Amazon RDS.

Instalasi memakan waktu sekitar satu menit.

## Perbarui konfigurasi Drupal dan hapus pembatasan akses
<a name="php-hadrupal-tutorial-updateenv"></a>

Proses instalasi Drupal yang membuat sebuah file bernama `settings.php` dalam folder `sites/default` pada instans. Anda memerlukan file ini dalam kode sumber Anda untuk menghindari pengaturan ulang situs pada deployment berikutnya, kecuali file saat ini berisi rahasia yang tidak ingin Anda serahkan ke sumber. Connect ke instans aplikasi untuk mendapatkan kembali informasi dari file pengaturan.

**Untuk terhubung ke instans aplikasi Anda dengan SSH**

1. Buka [halaman instans](https://console.aws.amazon.com/ec2/v2/home#Instances:sort=tag:Name) EC2 konsol Amazon.

1. Memilih instans aplikasi. Namanya diambil dari nama lingkungan Elastic Beanstalk Anda.

1. Pilih **Connect**.

1. Ikuti petunjuk untuk menghubungkan instans dengan SSH. Perintahnya terlihat serupa dengan yang berikut.

   ```
   $ ssh -i ~/.ssh/mykey ec2-user@ec2-00-55-33-222.us-west-2.compute.amazonaws.com
   ```

Mendapatkan id direktori sinkronisasi dari baris terakhir file pengaturan.

```
[ec2-user ~]$ tail -n 1 /var/app/current/sites/default/settings.php
$config_directories['sync'] = 'sites/default/files/config_4ccfX2sPQm79p1mk5IbUq9S_FokcENO4mxyC-L18-4g_xKj_7j9ydn31kDOYOgnzMu071Tvc4Q/sync';
```

File ini juga berisi kunci hash situs saat ini, tetapi Anda dapat mengabaikan nilainya saat ini dan menggunakan milik Anda sendiri.

Tetapkan jalur direktori sinkronisasi dan kunci hash ke properti lingkungan. File pengaturan yang dikustomisasi dari repo proyek membaca properti ini untuk mengonfigurasi situs selama deployment, selain properti koneksi basis data yang Anda tetapkan sebelumnya.

**Properti konfigurasi Drupal**
+ `SYNC_DIR` – Jalur ke direktori sinkronisasi.
+ `HASH_SALT` – Setiap nilai string yang memenuhi [persyaratan properti lingkungan](environments-cfg-softwaresettings.md#environments-cfg-softwaresettings-console).

**Untuk mengonfigurasi variabel lingkungan di konsol Elastic Beanstalk**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Dalam kategori konfigurasi **Pembaruan, pemantauan, dan pencatatan**, pilih **Edit**.

1. Gulir ke bawah ke **variabel lingkungan Runtime**.

1. Pilih **Tambahkan variabel lingkungan**.

1. Untuk **Sumber** pilih **Teks biasa**.
**catatan**  
Nilai **Secrets Manager** dan **SSM Parameter Store** di drop-down adalah untuk mengonfigurasi variabel lingkungan sebagai rahasia untuk menyimpan data sensitif, seperti kredensyal dan kunci API. Untuk informasi selengkapnya, lihat [Menggunakan Elastic Beanstalk dengan dan AWS Secrets Manager Parameter Store AWS Systems Manager](AWSHowTo.secrets.md). 

1. Masukkan **nama variabel Lingkungan** **dan pasangan nilai variabel Lingkungan**.

1. Jika Anda perlu menambahkan lebih banyak variabel ulangi **Langkah 6 hingga** **Langkah 8**.

1. Untuk menyimpan perubahan pilih **Terapkan** di bagian bawah halaman.

Akhirnya, proyek sampel menyertakan file konfigurasi (`loadbalancer-sg.config`) yang membuat sebuah grup keamanan dan menetapkan ke penyeimbang beban lingkungan, menggunakan alamat IP yang dikonfigurasi di `dev.config` untuk membatasi akses HTTP pada port 80 ke sambungan dari jaringan Anda. Jika tidak, pihak luar bisa berpotensi terhubung ke situs Anda sebelum Anda telah menginstal Drupal dan mengonfigurasikan akun admin Anda.

**Untuk memperbarui konfigurasi Drupal dan menghapus pembatasan akses**

1. Hapus file `.ebextensions/loadbalancer-sg.config` dari direktori proyek Anda.

   ```
   ~/drupal-beanstalk$ rm .ebextensions/loadbalancer-sg.config
   ```

1. Salin file `settings.php` yang dikustomisasi ke dalam folder situs.

   ```
   ~/drupal-beanstalk$ cp beanstalk-settings.php sites/default/settings.php
   ```

1. Buat paket sumber.

   ```
   ~/eb-drupal$ zip ../drupal-beanstalk-v2.zip -r * .[^.]* -x "vendor/*"
   ```

Unggah paket sumber ke Elastic Beanstalk untuk men-deploy Drupal ke lingkungan Anda.

**Untuk men-deploy paket sumber**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Di halaman gambaran umum lingkungan, pilih **Unggah dan deploy**.

1. Gunakan kotak dialog di layar untuk mengunggah paket sumber.

1. Pilih **Deploy**.

1. Ketika deployment selesai, Anda dapat memilih URL situs untuk membuka situs web Anda di tab baru.

## Mengonfigurasi grup Auto Scaling
<a name="php-hadrupal-tutorial-autoscaling"></a>

Terakhir, konfigurasikan grup Auto Scaling lingkungan Anda dengan jumlah instans minimum yang lebih tinggi. Jalankan setidaknya dua instans setiap saat untuk mencegah terjadinya kegagalan di satu titik server web di lingkungan Anda, dan mengizinkan Anda untuk men-deploy perubahan tanpa membuat situs Anda keluar dari layanan.

**Mengonfigurasi grup Auto Scaling lingkungan Anda untuk ketersediaan yang tinggi**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Pada kategori konfigurasi **Kapasitas**, pilih **Edit**.

1. Pada bagian **Grup Auto Scaling**, set **Instans minimum** ke **2**.

1. Untuk menyimpan perubahan pilih **Terapkan** di bagian bawah halaman.

Untuk mendukung unggahan konten di beberapa instans, proyek sampel menggunakan Amazon Elastic File System untuk membuat sistem file bersama. Buat kiriman di situs dan unggah konten untuk menyimpannya di sistem file bersama. Lihat kiriman dan refresh halaman beberapa kali untuk temuan kedua instans dan verifikasi apakah sistem file bersama tersebut bekerja.

## Pembersihan
<a name="php-hadrupal-tutorial-cleanup"></a>

Setelah Anda selesai bekerja dengan kode demo, Anda dapat mengakhiri lingkungan Anda. [Elastic Beanstalk menghapus semua sumber daya AWS terkait, [seperti instans EC2 Amazon](using-features.managing.ec2.md)[, instans database, penyeimbang beban, grup keamanan,](using-features.managing.db.md)[dan](using-features.managing.elb.md) alarm.](using-features.alarms.md#using-features.alarms.title) 

Menghapus sumber daya tidak menghapus aplikasi Elastic Beanstalk, sehingga Anda dapat membuat lingkungan baru untuk aplikasi Anda kapan saja.

**Untuk mengakhiri lingkungan Elastic Beanstalk Anda dari konsol**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Di panel navigasi, pilih **Lingkungan**, dan kemudian pilih nama lingkungan Anda dari daftar.

1. Pilih **Tindakan**, lalu pilih **Terminate environment**.

1. Gunakan kotak dialog di layar untuk mengonfirmasi pengakhiran lingkungan.

Selain itu, Anda dapat mengakhiri sumber daya basis data yang Anda buat di luar lingkungan Elastic Beanstalk Anda. Ketika Anda mengakhiri instans DB Amazon RDS, Anda dapat mengambil snapshot dan memulihkan data ke instans lain kelak.

**Untuk mengakhiri instans DB RDS Anda**

1. Buka [konsol Amazon RDS](https://console.aws.amazon.com/rds).

1. Pilih **Basis data**.

1. Pilih instans DB Anda.

1. Pilih **Tindakan**, dan lalu pilih **Hapus**.

1. Pilih apakah akan membuat snapshot, dan kemudian memilih **Hapus**.

## Langkah selanjutnya
<a name="php-hadrupal-tutorial-nextsteps"></a>

Ketika aplikasi terus dikembangkan, Anda mungkin akan menginginkan sebuah cara untuk mengelola lingkungan dan men-deploy aplikasi Anda tanpa membuat file .zip secara manual dan mengunggahnya ke konsol Elastic Beanstalk. [Elastic Beanstalk Command Line Interface (EB CLI easy-to-use) menyediakan perintah untuk membuat, mengkonfigurasi, dan menyebarkan aplikasi ke lingkungan Elastic](eb-cli3.md) Beanstalk dari baris perintah.

Aplikasi sampel menggunakan file konfigurasi untuk mengonfigurasi pengaturan PHP dan membuat tabel dalam basis data jika tidak ada. Anda juga dapat menggunakan file konfigurasi untuk mengonfigurasi pengaturan grup keamanan instans Anda selama pembuatan lingkungan untuk menghindari pembaruan konfigurasi yang cukup memakan waktu. Lihat [Penyesuaian lingkungan lanjutan dengan file konfigurasi (`.ebextensions`)](ebextensions.md) untuk informasi selengkapnya.

Untuk pengembangan dan pengujian, Anda mungkin ingin menggunakan fungsionalitas Elastic Beanstalk dalam menambahkan instans DB terkelola langsung ke lingkungan Anda. Terkait petunjuk tentang pengaturan basis data di dalam lingkungan Anda, lihat [Menambahkan basis data ke lingkungan Elastic Beanstalk Anda](using-features.managing.db.md).

Jika Anda membutuhkan basis data berperforma tinggi, pertimbangkan untuk menggunakan [Amazon Aurora](https://aws.amazon.com/rds/aurora/). Amazon Aurora merupakan mesin basis data kompatibel dengan MySQL yang menawarkan fitur basis data komersial dengan biaya rendah. Untuk menghubungkan aplikasi Anda ke basis data yang berbeda, ulangi langkah [konfigurasi grup keamanan](php-ha-tutorial.md#php-hawrds-tutorial-database) dan [perbarui properti lingkungan terkait RDS](php-ha-tutorial.md#php-hawrds-tutorial-configure). 

Terakhir, jika Anda berencana menggunakan aplikasi dalam lingkungan produksi, Anda akan ingin [mengonfigurasikan nama domain khusus](customdomains.md) untuk lingkungan Anda dan [mengaktifkan HTTPS](configuring-https.md) untuk koneksi yang aman.