Menyebarkan PHP aplikasi ketersediaan tinggi dengan RDS database Amazon eksternal ke Elastic Beanstalk - AWS Elastic Beanstalk

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

Menyebarkan PHP aplikasi ketersediaan tinggi dengan RDS database Amazon eksternal ke Elastic Beanstalk

Tutorial ini memandu Anda melalui proses peluncuran instans RDS DB eksternal ke AWS Elastic Beanstalk, dan mengonfigurasi lingkungan ketersediaan tinggi yang menjalankan PHP aplikasi untuk terhubung dengannya. Menjalankan instans DB eksternal Elastic Beanstalk akan memisahkan basis data dari siklus hidup lingkungan Anda. Hal ini memungkinkan Anda terhubung ke basis data yang sama dari beberapa lingkungan, menukarkan satu basis data dengan yang lain, atau melakukan deployment biru/hijau tanpa memengaruhi basis data Anda.

Tutorial menggunakan contoh PHP aplikasi yang menggunakan SQL database Saya untuk menyimpan data teks yang disediakan pengguna. Aplikasi sampel menggunakan file konfigurasi untuk mengkonfigurasi PHPpengaturan dan untuk membuat tabel dalam database untuk aplikasi yang akan digunakan. Aplikasi sampel juga menampilkan cara menggunakan file Composer untuk menginstal paket selama deployment.

Prasyarat

Sebelum memulai, unduh contoh bundel sumber aplikasi dari GitHub: eb-demo-php-simple-app-1.3.zip

Prosedur dalam tutorial ini untuk tugas Amazon Relational Database Service (RDSAmazon) mengasumsikan bahwa Anda meluncurkan sumber daya di Amazon Virtual Private Cloud (VPCAmazon) default. Semua akun baru menyertakan default VPC di setiap wilayah. Jika Anda tidak memiliki defaultVPC, prosedurnya akan bervariasi. Lihat petunjuk Menggunakan Elastic Beanstalk dengan Amazon RDS untuk EC2 -Classic dan VPC platform kustom.

Luncurkan instans DB di Amazon RDS

Untuk menggunakan database eksternal dengan aplikasi yang berjalan di Elastic Beanstalk, pertama-tama luncurkan instans DB dengan Amazon. RDS Saat Anda meluncurkan instance dengan AmazonRDS, instans sepenuhnya independen dari Elastic Beanstalk dan lingkungan Elastic Beanstalk Anda, dan tidak akan dihentikan atau dipantau oleh Elastic Beanstalk.

Gunakan RDS konsol Amazon untuk meluncurkan instans Multi-AZ My SQL DB. Memilih deployment Multi-AZ dapat memastikan apakah basis data Anda akan gagal dan terus tersedia jika instans DB sumber keluar dari layanan.

Untuk meluncurkan instans RDS DB secara default VPC
  1. Buka RDSkonsol.

  2. Di panel navigasi, pilih Database.

  3. Pilih Buat basis data.

  4. Pilih Pembuatan Standar.

    penting

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

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

  6. Tinjau pengaturan default dan sesuaikan pengaturan ini sesuai dengan kebutuhan spesifik Anda. Perhatikan opsi berikut:

    • Kelas instans DB - Pilih ukuran instans yang memiliki jumlah memori dan CPU daya yang sesuai untuk beban kerja Anda.

    • Deployment Multi-AZ – Untuk ketersediaan tinggi, atur ke Buat simpul Pembaca/Replika Aurora pada 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.

  7. 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 Anda RDS
  1. Buka RDSkonsol Amazon.

  2. Pilih Basis data.

  3. Pilih nama instans DB Anda untuk menampilkan detailnya.

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

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

  6. Pada detail grup keamanan, pilih Masuk.

  7. Pilih Edit.

  8. Pilih Tambahkan Aturan.

  9. Untuk Jenis, pilih mesin DB yang digunakan aplikasi Anda.

  10. 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.
  11. Pilih Simpan.

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

Buat lingkungan Elastic Beanstalk

Gunakan konsol Elastic Beanstalk untuk membuat lingkungan Elastic Beanstalk. Pilih PHPplatform dan terima pengaturan default dan kode sampel. Setelah Anda meluncurkan lingkungan, Anda dapat mengonfigurasi lingkungan untuk terhubung ke database, lalu menyebarkan contoh aplikasi yang Anda unduh. GitHub

Untuk meluncurkan lingkungan (konsol)
  1. Buka konsol Elastic Beanstalk menggunakan tautan yang telah dikonfigurasi sebelumnya: console.aws.amazon.com/elasticbeanstalk/home#/? newApplication applicationName=tutorial& = environmentType LoadBalanced

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

  3. Untuk Kode aplikasi, pilih Aplikasi sampel.

  4. Pilih Tinjau dan Luncurkan.

  5. 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:

  • EC2instance — Mesin virtual Amazon Elastic Compute Cloud (AmazonEC2) 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 proxy terbalik yang berada di depan aplikasi web Anda, meneruskan permintaan ke sana, menyajikan aset statis, dan menghasilkan akses dan log kesalahan.

  • Grup keamanan instans — Grup EC2 keamanan Amazon yang dikonfigurasi untuk memungkinkan lalu lintas masuk pada port 80. Sumber daya ini memungkinkan HTTP lalu lintas 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 HTTP lalu lintas 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.

  • AWS CloudFormation stack - Elastic AWS 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 AWS CloudFormation.

  • Nama domain — Nama domain yang merutekan ke aplikasi web Anda dalam formulir subdomain.region.elasticbeanstalk.com.

    catatan

    Untuk meningkatkan keamanan aplikasi Elastic Beanstalk Anda, domain elasticbeanstalk.com terdaftar di Daftar Akhiran Publik (). PSL Untuk keamanan lebih lanjut, kami menyarankan Anda menggunakan cookie dengan __Host- awalan jika Anda perlu mengatur cookie sensitif di nama domain default untuk aplikasi Elastic Beanstalk Anda. Praktik ini akan membantu mempertahankan domain Anda dari upaya pemalsuan permintaan lintas situs (). CSRF Untuk informasi selengkapnya, lihat halaman Set-Cookie 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 RDS DB yang Anda luncurkan 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.

Mengonfigurasi grup keamanan, properti lingkungan, dan penskalaan

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 Beanstalk. Wilayah AWS

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

        catatan

        Jika Anda memiliki banyak lingkungan, gunakan bilah pencarian untuk memfilter daftar lingkungan.

      3. Pada panel navigasi, pilih Konfigurasi.

      4. Pada kategori konfigurasi Instans, pilih Edit.

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

      6. Untuk menyimpan perubahan pilih Terapkan di bagian bawah halaman.

      7. Baca peringatan, kemudian pilih Konfirmasi.

    • Untuk menambahkan grup keamanan menggunakan file konfigurasi, gunakan file securitygroup-addexisting.configcontoh.

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 untuk instans Amazon RDS DB
  1. Buka konsol Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic Beanstalk. Wilayah AWS

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

    catatan

    Jika Anda memiliki banyak lingkungan, gunakan bilah pencarian untuk memfilter daftar lingkungan.

  3. Di panel navigasi, pilih Konfigurasi.

  4. Dalam kategori konfigurasi Pembaruan, pemantauan, dan pencatatan, pilih Edit.

  5. Pada bagian Properti lingkungan, tentukan variabel yang dibaca aplikasi Anda untuk membangun string koneksi. Untuk kompatibilitas dengan lingkungan yang memiliki instans RDS DB terintegrasi, gunakan nama dan nilai berikut. Anda dapat menemukan semua nilai, kecuali kata sandi Anda, di RDSkonsol.

    Nama properti Deskripsi Nilai properti

    RDS_HOSTNAME

    Nama host instans DB.

    Pada tab Konektivitas & keamanan di RDS konsol Amazon: Titik akhir.

    RDS_PORT

    Port tempat instans DB menerima koneksi. Nilai default bervariasi di antara mesin DB.

    Pada tab Konektivitas & keamanan di RDS konsol Amazon: Port.

    RDS_DB_NAME

    Nama basis data, ebdb.

    Pada tab Konfigurasi di RDS konsol Amazon: Nama DB.

    RDS_USERNAME

    Nama pengguna yang Anda konfigurasi untuk basis data Anda.

    Pada tab Konfigurasi di RDS konsol Amazon: Nama pengguna Master.

    RDS_PASSWORD

    Kata sandi yang Anda konfigurasi untuk basis data Anda.

    Tidak tersedia untuk referensi di RDS konsol Amazon.

    Bagian konfigurasi properti lingkungan dengan RDS properti ditambahkan
  6. Untuk menyimpan perubahan pilih Terapkan di bagian bawah halaman.

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 Beanstalk. Wilayah AWS

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

    catatan

    Jika Anda memiliki banyak lingkungan, gunakan bilah pencarian untuk memfilter daftar lingkungan.

  3. Di panel navigasi, pilih Konfigurasi.

  4. Pada kategori konfigurasi Kapasitas, pilih Edit.

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

  6. Untuk menyimpan perubahan pilih Terapkan di bagian bawah halaman.

Men-deploy aplikasi sampel

Sekarang lingkungan Anda siap untuk menjalankan aplikasi sampel dan terhubung ke AmazonRDS. Men-deploy aplikasi sampel ke lingkungan Anda.

catatan

Unduh bundel sumber dari GitHub, jika Anda belum melakukannya: eb-demo-php-simple-app-1.3.zip

Untuk men-deploy paket sumber
  1. Buka konsol Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic Beanstalk. Wilayah AWS

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

    catatan

    Jika Anda memiliki banyak lingkungan, gunakan bilah pencarian untuk memfilter daftar lingkungan.

  3. Di halaman gambaran umum lingkungan, pilih Unggah dan deploy.

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

  5. Pilih Deploy.

  6. Ketika penyebaran selesai, Anda dapat memilih situs URL untuk membuka situs web Anda di tab baru.

Situs ini mengumpulkan komentar pengguna dan menggunakan SQL database Saya untuk menyimpan data. Untuk menambahkan komentar, pilih Bagikan Pemikiran Anda, masukkan komentar, dan kemudian pilih Kirim Pemikiran Anda. Aplikasi web menuliskan komentar ke basis data sehingga setiap instans di lingkungan dapat membacanya, dan tidak akan hilang jika instans keluar dari layanan.

User interface for sharing thoughts, with a posted comment about Elastic Beanstalk on AWS.

Pembersihan

Jika Anda sudah selesai bekerja dengan Elastic Beanstalk, Anda dapat mengakhiri lingkungan Anda. Elastic Beanstalk AWS menghentikan semua sumber daya yang terkait dengan lingkungan Anda, seperti instans EC2 Amazon, instans database, penyeimbang beban, grup keamanan,dan alarm.

Untuk mengakhiri lingkungan Elastic Beanstalk Anda dari konsol
  1. Buka konsol Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic Beanstalk. Wilayah AWS

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

    catatan

    Jika Anda memiliki banyak lingkungan, gunakan bar pencarian untuk memfilter daftar lingkungan.

  3. Pilih Tindakan, lalu pilih Terminate environment.

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

Dengan Elastic Beanstalk, Anda dengan mudah dapat membuat lingkungan baru untuk aplikasi Anda kapan saja.

Selain itu, Anda dapat mengakhiri sumber daya basis data yang Anda buat di luar lingkungan Elastic Beanstalk Anda. Saat menghentikan instans Amazon RDS DB, Anda dapat mengambil snapshot dan mengembalikan data ke instance lain nanti.

Untuk mengakhiri instans RDS DB Anda
  1. Buka RDSkonsol Amazon.

  2. Pilih Basis data.

  3. Pilih instans DB Anda.

  4. Pilih Tindakan, dan lalu pilih Hapus.

  5. Pilih apakah akan membuat snapshot, dan kemudian memilih Hapus.

Langkah selanjutnya

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 CLI (EB easy-to-use ) menyediakan perintah untuk membuat, mengkonfigurasi, dan menyebarkan aplikasi ke lingkungan Elastic Beanstalk dari baris perintah.

Aplikasi sampel menggunakan file konfigurasi untuk mengonfigurasi PHP pengaturan dan membuat tabel di database jika belum 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) 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.

Jika Anda membutuhkan basis data berperforma tinggi, pertimbangkan untuk menggunakan Amazon Aurora. Amazon Aurora adalah mesin database SQL yang kompatibel dengan Saya yang menawarkan fitur basis data komersial dengan biaya rendah. Untuk menghubungkan aplikasi Anda ke database yang berbeda, ulangi langkah-langkah konfigurasi grup keamanan dan perbarui properti lingkungan RDS terkait.

Terakhir, jika Anda berencana menggunakan aplikasi Anda di lingkungan produksi, Anda akan ingin mengonfigurasi nama domain khusus untuk lingkungan Anda dan mengaktifkan HTTPS koneksi yang aman.