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-ec2
bukan Vagrant. -
.kitchen.yml
File 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
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/
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
-
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.
-
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
-
Aktifkan Pusat Identitas IAM.
Untuk mendapatkan petunjuk, silakan lihat Mengaktifkan AWS IAM Identity Center di Panduan Pengguna AWS IAM Identity Center.
-
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
-
Untuk menggunakan
kitchen-ec2
driver, Anda harus memilikiruby-dev
paket yang diinstal pada sistem Anda. Contoh perintah berikut menunjukkan bagaimana menggunakanaptitude
untuk menginstal paket pada sistem Ubuntu.sudo aptitude install ruby1.9.1-dev
-
kitchen-ec2
Driver adalah permata, yang dapat Anda instal sebagai berikut:gem install kitchen-ec2
Tergantung pada workstation Anda, perintah ini mungkin memerlukan
sudo
, 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, jalankan gem install kitchen-ec2 -v <
.version number
> -
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
bernamaec2_keys
dan salin file private key (.pem
) key pair ke subdirektori tersebut. Perhatikan bahwa menempatkan kunci pribadiec2_keys
hanyalah kenyamanan yang menyederhanakan kode sedikit; itu bisa di mana saja di sistem Anda. -
Buat subdirektori
opsworks_cookbooks
bernamacreatedir-ec2
dan navigasikan ke sana. -
Tambahkan
metadata.rb
filecreatedir-ec2
dengan konten berikut.name "createdir-ec2" version "0.1.0"
-
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. -
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 ke
ec2
. - 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 namaUS-East1.pem
dan ada di../opsworks/ec2_keys
direktori. - region
-
(Wajib) Wilayah AWS instans. Contohnya menggunakan US West (California N.), yang diwakili oleh
us-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 ke
true
, pengaturan ini memastikan bahwa penginstal omnibus digunakan untuk menginstalchef-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 grupdefault
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
, atauprivate_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.-
Nama DNS
-
Alamat IP publik
-
Alamat IP privat
-
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-ec2
Driver 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-ec2
Driver 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
-
driver
Atribut, 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
-
Buat file bernama
default.rb
dengan kode berikut dan simpan kerecipes
folder buku masak.directory "/srv/www/shared" do mode 0755 owner 'root' group 'root' recursive true action :create end
-
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. -
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. -
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.