Contoh 9: Menggunakan Instans Amazon EC2 - 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 Instans Amazon EC2

penting

AWS OpsWorks Stackstidak lagi menerima pelanggan baru. Pelanggan yang sudah ada akan dapat menggunakan OpsWorks konsol, API, CLI, dan CloudFormation sumber daya seperti biasa hingga 26 Mei 2024, di mana mereka akan dihentikan. Untuk mempersiapkan transisi ini, kami sarankan Anda mentransisikan tumpukan Anda AWS Systems Manager sesegera mungkin. Lihat informasi yang lebih lengkap di AWS OpsWorks StacksFAQ Akhir Kehidupan dan Migrasi AWS OpsWorks Stacks aplikasi Anda ke Manajer AWS Systems Manager Aplikasi.

Sampai titik ini, Anda telah menjalankan instance secara lokal di. VirtualBox Meskipun ini cepat dan mudah, Anda akhirnya ingin menguji resep Anda pada instans Amazon EC2. Secara khusus, jika Anda ingin menjalankan resep di Amazon Linux, itu hanya tersedia di Amazon EC2. 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 instans Amazon EC2.

Topik ini menunjukkan cara menjalankan resep pada instans Amazon EC2. 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 instans Amazon EC2.

catatan

Pendekatan alternatif adalah dengan menggunakan plug-in vagrant-aws Vagrant. Untuk informasi selengkapnya, lihat Penyedia AWS Vagrant.

Anda memerlukan kredensi AWS untuk membuat instans Amazon EC2. Jika Anda tidak memiliki akun AWS, Anda dapat memperolehnya, sebagai berikut.

Mendaftar Akun AWS

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

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

  2. Ikuti petunjuk secara online.

    Anda akan diminta untuk menerima panggilan telepon dan memasukkan kode verifikasi pada keypad telepon sebagai bagian dari prosedur pendaftaran.

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

AWS akan mengirimkan email konfirmasi kepada Anda setelah proses pendaftaran selesai. Anda dapat melihat aktivitas akun saat ini dan mengelola akun dengan mengunjungi https://aws.amazon.com/ dan memilih Akun Saya.

Membuat pengguna administratif

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

Mengamankan Pengguna root akun AWS Anda
  1. Masuk ke AWS Management Console sebagai pemilik akun dengan memilih Pengguna root dan memasukkan alamat email Akun AWS Anda. Di halaman berikutnya, masukkan kata sandi Anda.

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

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

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

Membuat pengguna administratif
  1. Aktifkan Pusat Identitas IAM.

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

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

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

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

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

Anda harus membuat pengguna IAM dengan izin untuk mengakses Amazon EC2 dan menyimpan akses pengguna dan kunci rahasia ke lokasi yang aman di workstation Anda. Test Kitchen akan menggunakan kredensil 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

Pengguna IAM memiliki kredensyal 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/CYEXAMPLEKEY. bPxRfi

Pendekatan ini mengurangi kemungkinan secara tidak sengaja membahayakan akun Anda dengan, misalnya, mengunggah proyek yang berisi kredensil 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 key pair Amazon EC2 SSH yang dapat digunakan Test Kitchen untuk menyambung ke instance. Jika Anda tidak memiliki key pair Amazon EC2, lihat Amazon EC2 Key Pairs untuk informasi tentang cara membuatnya. Perhatikan bahwa key pair harus memiliki wilayah AWS yang sama dengan instans. 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 instans Amazon EC2.

  7. Tambahkan recipes subdirektori kecreatedir-ec2.

Mengonfigurasi .kitchen.ymluntuk Amazon EC2

Anda mengonfigurasi .kitchen.yml dengan informasi yang dibutuhkan kitchen-ec2 driver untuk meluncurkan instans Amazon EC2 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 untuk 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 disetel keec2.

aws_ssh_key_id

(Wajib) Nama key pair Amazon EC2 SSH, 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) Wilayah AWS instans. 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 ID grup keamanan untuk diterapkan pada instance. Pengaturan ini menerapkan grup default keamanan untuk instance. Pastikan bahwa aturan masuknya grup keamanan mengizinkan koneksi SSH masuk, atau Test Kitchen tidak akan dapat berkomunikasi dengan instans. Jika Anda menggunakan grup default keamanan, Anda mungkin perlu mengeditnya. Untuk informasi selengkapnya, lihat Amazon EC2 Security Groups.

subnet_id

ID subnet target untuk contoh, jika berlaku.

associate_public_ip

Anda dapat meminta Amazon EC2 mengaitkan alamat IP publik dengan instans 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. Nama DNS

  2. Alamat IP publik

  3. Alamat IP privat

  4. Nama DNS 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 Akses AWS.

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 AMI yang sesuai dan menghasilkan nama pengguna SSH. 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— AMI platform, yang harus milik wilayah yang ditentukan. Contohnya menggunakanami-ed8e9284, Amazon Linux AMI dari wilayah AS Barat (California N.).

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

    Gunakan ec2-user untuk Amazon Linux. AMI 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 instans Amazon EC2.

  3. Buka konsol Amazon EC2, 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 di VirtualBox. Anda akan melihat direktori yang baru dibuat di bawah/srv. Anda juga dapat menggunakan klien SSH favorit Anda untuk terhubung ke instance.