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
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 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 instance Amazon EC2 .
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 itu
kitchen-ec2
bukan Vagrant. -
.kitchen.yml
File 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 selengkapnya, lihat Penyedia AWS Vagrant
Anda akan memerlukan kredensyal AWS untuk membuat instans Amazon EC2 . Jika Anda tidak memiliki akun AWS, 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
Buka https://portal.aws.amazon.com/billing/pendaftaran.
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 mengirimi Anda 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/
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
-
Masuk ke AWS Management Console
sebagai 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.
-
Mengaktifkan autentikasi multi-faktor (MFA) untuk pengguna root Anda.
Untuk petunjuk, lihat Mengaktifkan perangkat MFA virtual untuk pengguna Akun AWS root (konsol) Anda di Panduan Pengguna IAM.
Buat pengguna dengan akses 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 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 Identitas IAM, gunakan URL masuk yang dikirim ke alamat email saat Anda membuat pengguna Pusat Identitas IAM.
Untuk bantuan masuk menggunakan pengguna Pusat Identitas IAM, lihat Masuk ke portal AWS akses di Panduan AWS Sign-In Pengguna.
Tetapkan akses ke pengguna tambahan
-
Di Pusat Identitas IAM, 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.
-
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 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 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
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/bPxRfiCYEXAMPLEKEY.
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 EC2 key pair Amazon, 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 EC2 instance Amazon. -
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
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 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 Utara). 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 grup keamanan IDs 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 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
, 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 dari 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. AMIs Orang 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 EC2 instance Amazon. -
Buka EC2konsol Amazon
, 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.