Contoh 9: Menggunakan EC2 Instans Amazon - AWS OpsWorks

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

Contoh 9: Menggunakan EC2 Instans Amazon

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 atau melalui AWS Dukungan Premium.

Sampai titik ini, Anda telah menjalankan instance secara lokal di. VirtualBox Meskipun ini cepat dan mudah, Anda akhirnya ingin menguji resep Anda pada EC2 contoh Amazon. Secara khusus, jika Anda ingin menjalankan resep di Amazon Linux, itu hanya tersedia di AmazonEC2. Anda dapat menggunakan sistem serupa seperti CentOS untuk implementasi dan pengujian awal, tetapi satu-satunya cara untuk sepenuhnya menguji resep Anda di Amazon Linux adalah dengan instance AmazonEC2.

Topik ini menunjukkan cara menjalankan resep pada EC2 instance Amazon. Anda akan menggunakan Test Kitchen dan Vagrant dengan cara yang sama seperti bagian sebelumnya, dengan dua perbedaan:

  • Pengemudi kitchen-ec2bukan Vagrant.

  • .kitchen.ymlFile buku masak harus dikonfigurasi dengan informasi yang diperlukan untuk meluncurkan EC2 instance Amazon.

catatan

Pendekatan alternatif adalah dengan menggunakan plug-in vagrant-aws Vagrant. Untuk informasi lebih lanjut, lihat AWSPenyedia Gelandangan.

Anda akan memerlukan AWS kredensil untuk membuat instance AmazonEC2. Jika Anda tidak memiliki AWS akun, Anda dapat memperolehnya, sebagai berikut.

Mendaftar untuk Akun AWS

Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.

Untuk mendaftar untuk Akun AWS
  1. Buka https://portal.aws.amazon.com/billing/pendaftaran.

  2. Ikuti petunjuk online.

    Bagian dari prosedur pendaftaran melibatkan tindakan menerima panggilan telepon dan memasukkan kode verifikasi di keypad telepon.

    Saat Anda mendaftar untuk sebuah Akun AWS, sebuah Pengguna root akun AWSdibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan tugas yang memerlukan akses pengguna root.

AWS mengirimkan email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk https://aws.amazon.com.rproxy.goskope.comke/ dan memilih Akun Saya.

Buat pengguna dengan akses administratif

Setelah Anda mendaftar Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.

Amankan Anda Pengguna root akun AWS
  1. Masuk ke AWS Management Consolesebagai pemilik akun dengan memilih pengguna Root dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi.

    Untuk bantuan masuk dengan menggunakan pengguna root, lihat Masuk sebagai pengguna root di AWS Sign-In Panduan Pengguna.

  2. Aktifkan autentikasi multi-faktor (MFA) untuk pengguna root Anda.

    Untuk petunjuk, lihat Mengaktifkan MFA perangkat virtual untuk pengguna Akun AWS root (konsol) Anda di Panduan IAM Pengguna.

Buat pengguna dengan akses administratif
  1. Aktifkan Pusat IAM Identitas.

    Untuk mendapatkan petunjuk, silakan lihat Mengaktifkan AWS IAM Identity Center di Panduan Pengguna AWS IAM Identity Center .

  2. Di Pusat IAM Identitas, berikan akses administratif ke pengguna.

    Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAM di Panduan AWS IAM Identity Center Pengguna.

Masuk sebagai pengguna dengan akses administratif
  • Untuk masuk dengan pengguna Pusat IAM Identitas, gunakan login URL yang dikirim ke alamat email saat Anda membuat pengguna Pusat IAM Identitas.

    Untuk bantuan masuk menggunakan pengguna Pusat IAM Identitas, lihat Masuk ke portal AWS akses di Panduan AWS Sign-In Pengguna.

Tetapkan akses ke pengguna tambahan
  1. Di Pusat IAM Identitas, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.

    Untuk petunjuknya, lihat Membuat set izin di Panduan AWS IAM Identity Center Pengguna.

  2. Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.

    Untuk petunjuk, lihat Menambahkan grup di Panduan AWS IAM Identity Center Pengguna.

Anda harus membuat IAM pengguna dengan izin untuk mengakses Amazon EC2 dan menyimpan akses pengguna dan kunci rahasia ke lokasi yang aman di workstation Anda. Test Kitchen akan menggunakan kredensyal tersebut untuk membuat instance. Cara yang lebih disukai untuk memberikan kredensil ke Test Kitchen adalah dengan menetapkan kunci ke variabel lingkungan berikut di workstation Anda.

Awas

IAMpengguna memiliki kredensi jangka panjang, yang menghadirkan risiko keamanan. Untuk membantu mengurangi risiko ini, kami menyarankan agar Anda memberikan pengguna ini hanya izin yang mereka perlukan untuk melakukan tugas dan menghapus pengguna ini ketika mereka tidak lagi diperlukan.

  • AWS_ACCESS_KEY — kunci akses pengguna Anda, yang akan terlihat seperti AKIAIOSFODNN7EXAMPLE.

  • AWS_SECRET_KEY — kunci rahasia pengguna Anda, yang akan terlihat seperti wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY.

Pendekatan ini mengurangi kemungkinan secara tidak sengaja membahayakan akun Anda dengan, misalnya, mengunggah proyek yang berisi kredensi Anda ke repositori publik.

Untuk mengatur buku masak
  1. Untuk menggunakan kitchen-ec2 driver, Anda harus memiliki ruby-dev paket yang diinstal pada sistem Anda. Contoh perintah berikut menunjukkan bagaimana menggunakan aptitude untuk menginstal paket pada sistem Ubuntu.

    sudo aptitude install ruby1.9.1-dev
  2. kitchen-ec2Driver adalah permata, yang dapat Anda instal sebagai berikut:

    gem install kitchen-ec2

    Tergantung pada workstation Anda, perintah ini mungkin memerlukansudo, atau Anda juga dapat menggunakan manajer lingkungan Ruby seperti. RVM Prosedur ini diuji dengan versi 0.8.0 kitchen-ec2 driver, tetapi ada versi yang lebih baru. Untuk menginstal versi tertentu, jalankangem install kitchen-ec2 -v <version number>.

  3. Anda harus menentukan EC2 SSH key pair Amazon yang dapat digunakan Test Kitchen untuk menyambung ke instance. Jika Anda tidak memiliki EC2 key pair Amazon, lihat Amazon EC2 Key Pairs untuk informasi tentang cara membuatnya. Perhatikan bahwa key pair harus milik AWS region yang sama dengan instance. Contohnya menggunakan US West (California N.).

    Setelah Anda memilih key pair, buat subdirektori opsworks_cookbooks bernama ec2_keys dan salin file private key (.pem) key pair ke subdirektori tersebut. Perhatikan bahwa menempatkan kunci pribadi ec2_keys hanyalah kenyamanan yang menyederhanakan kode sedikit; itu bisa di mana saja di sistem Anda.

  4. Buat subdirektori opsworks_cookbooks bernama createdir-ec2 dan navigasikan ke sana.

  5. Tambahkan metadata.rb file createdir-ec2 dengan konten berikut.

    name "createdir-ec2" version "0.1.0"
  6. Inisialisasi Test Kitchen, seperti yang dijelaskan dalamContoh 1: Menginstal Paket. Bagian berikut menjelaskan cara mengkonfigurasi.kitchen.yml, yang secara signifikan lebih rumit untuk EC2 instance Amazon.

  7. Tambahkan recipes subdirektori kecreatedir-ec2.

Mengonfigurasi .kitchen.ymluntuk Amazon EC2

Anda mengonfigurasi .kitchen.yml dengan informasi yang dibutuhkan kitchen-ec2 driver untuk meluncurkan EC2 instans Amazon yang dikonfigurasi dengan tepat. Berikut ini adalah contoh .kitchen.yml file untuk instance Amazon Linux di wilayah AS Barat (California N.).

driver: name: ec2 aws_ssh_key_id: US-East1 region: us-west-1 availability_zone: us-west-1c require_chef_omnibus: true security_group_ids: sg........ subnet_id: subnet-......... associate_public_ip: true interface: dns provisioner: name: chef_solo platforms: -name: amazon driver: image_id: ami-xxxxxxxx transport: username: ec2-user ssh_key: ../ec2_keys/US-East1.pem suites: - name: default run_list: - recipe[createdir-ec2::default] attributes:

Anda dapat menggunakan pengaturan default untuk suites bagian provisioner dan, tetapi Anda harus mengubah default driver dan platforms pengaturan. Contoh ini menggunakan daftar pengaturan minimal, dan menerima nilai default untuk sisanya. Untuk daftar lengkap kitchen-ec2 pengaturan, lihat Kitchen: :Ec2: A Test Kitchen Driver for Amazon. EC2

Contoh menetapkan driver atribut berikut. Ini mengasumsikan bahwa Anda telah menetapkan akses pengguna dan kunci rahasia ke variabel lingkungan standar, seperti yang dibahas sebelumnya. Pengemudi menggunakan kunci tersebut secara default. Jika tidak, Anda harus secara eksplisit menentukan kunci dengan menambahkan aws_access_key_id dan aws_secret_access_key ke driver atribut, diatur ke nilai kunci yang sesuai.

name

(Wajib) Atribut ini harus diatur keec2.

aws_ssh_key_id

(Wajib) Nama EC2 SSH key pair Amazon, yang dinamai US-East1 dalam contoh ini.

transport.ssh_key

(Wajib) File kunci pribadi (.pem) untuk kunci yang Anda tentukanaws_ssh_key_id. Untuk contoh ini, file diberi nama US-East1.pem dan ada di ../opsworks/ec2_keys direktori.

region

(Wajib) AWS Wilayah instance. Contohnya menggunakan US West (California N.), yang diwakili olehus-west-1).

availability_zone

(Opsional) Availability Zone instance. Jika Anda menghilangkan pengaturan ini, Test Kitchen menggunakan Availability Zone default untuk wilayah tertentu, yaitu us-west-1b untuk US West (California N.). Namun, zona default mungkin tidak tersedia untuk akun Anda. Dalam hal ini, Anda harus secara eksplisit menentukan Availability Zone. Seperti yang terjadi, akun yang digunakan untuk menyiapkan contoh tidak mendukungus-west-1b, jadi contoh secara eksplisit menentukan. us-west-1c

require_chef_omnibus

Ketika diatur ketrue, pengaturan ini memastikan bahwa penginstal omnibus digunakan untuk menginstal chef-client ke semua instance platform.

security_group_ids

(Opsional) Daftar grup keamanan IDs untuk diterapkan pada instance. Pengaturan ini menerapkan grup default keamanan untuk instance. Pastikan aturan masuknya grup keamanan mengizinkan SSH koneksi masuk, atau Test Kitchen tidak akan dapat berkomunikasi dengan instans. Jika Anda menggunakan grup default keamanan, Anda mungkin perlu mengeditnya. Untuk informasi selengkapnya, lihat Grup EC2 Keamanan Amazon.

subnet_id

ID subnet target untuk contoh, jika berlaku.

associate_public_ip

Anda dapat meminta Amazon EC2 mengaitkan alamat IP publik dengan instance jika Anda ingin dapat mengakses instance dari Internet.

antarmuka

Jenis konfigurasi nama host yang Anda gunakan untuk mengakses instance. Nilai yang valid adalah dns, public, private, atau private_dns. Jika Anda tidak menentukan nilai untuk atribut ini, kitchen-ec2 mengatur konfigurasi nama host dalam urutan berikut. Jika Anda menghilangkan atribut ini, jenis konfigurasi tidak disetel.

  1. DNS nama

  2. Alamat IP publik

  3. Alamat IP privat

  4. DNSNama pribadi

penting

Daripada menggunakan kredensi akun Anda untuk akses dan kunci rahasia, Anda harus membuat pengguna dan memberikan kredensi tersebut ke Test Kitchen. Untuk informasi selengkapnya, lihat Praktik Terbaik untuk Mengelola Kunci AWS Akses.

Berhati-hatilah untuk tidak menempatkan .kitchen.yml di lokasi yang dapat diakses publik, seperti mengunggahnya ke repositori publik GitHub atau Bitbucket. Melakukan hal itu memperlihatkan kredensil Anda dan dapat membahayakan keamanan akun Anda.

kitchen-ec2Driver menyediakan dukungan default untuk platform berikut:

  • ubuntu-10.04

  • ubuntu-12.04

  • ubuntu-12.10

  • ubuntu-13.04

  • ubuntu-13.10

  • ubuntu-14.04

  • centos-6.4

  • debian-7.1.0

  • jendela-2012r2

  • jendela-2008r2

Jika Anda ingin menggunakan satu atau lebih platform ini, tambahkan nama platform yang sesuaiplatforms. kitchen-ec2Driver secara otomatis memilih yang sesuai AMI dan menghasilkan nama SSH pengguna. Anda dapat menggunakan platform lain—contoh ini menggunakan Amazon Linux—tetapi Anda harus secara eksplisit menentukan atribut berikut. platforms

name

Nama platform. Contoh ini menggunakan Amazon Linux, jadi name diatur keamazon.

sopir

driverAtribut, yang meliputi:

  • image_id— PlatformAMI, yang harus milik wilayah yang ditentukan. Contohnya menggunakanami-ed8e9284, Amazon Linux AMI dari wilayah AS Barat (California N.).

  • transport.username— Nama SSH pengguna yang akan digunakan Test Kitchen untuk berkomunikasi dengan instance.

    Gunakan ec2-user untuk Amazon Linux. AMIsOrang lain mungkin memiliki nama pengguna yang berbeda.

Ganti kode .kitchen.yml dengan contoh, dan tetapkan nilai yang sesuai ke atribut khusus akun seperti. aws_access_key_id

Menjalankan Resep

Contoh ini menggunakan resep dariIterasi.

Untuk menjalankan resep
  1. Buat file bernama default.rb dengan kode berikut dan simpan ke recipes folder buku masak.

    directory "/srv/www/shared" do mode 0755 owner 'root' group 'root' recursive true action :create end
  2. Jalankan kitchen converge untuk mengeksekusi resep. Perhatikan bahwa perintah ini akan memakan waktu lebih lama untuk diselesaikan daripada contoh sebelumnya karena waktu yang diperlukan untuk meluncurkan dan menginisialisasi EC2 instance Amazon.

  3. Buka EC2konsol Amazon, pilih wilayah AS Barat (California Utara)), dan klik Instans di panel navigasi. Anda akan melihat contoh yang baru dibuat dalam daftar.

  4. Jalankan kitchen login untuk masuk ke instance, seperti yang telah Anda lakukan untuk instance yang berjalan. VirtualBox Anda akan melihat direktori yang baru dibuat di bawah/srv. Anda juga dapat menggunakan SSH klien favorit Anda untuk terhubung ke instance.