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 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-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 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
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 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/
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.
-
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
-
Aktifkan Pusat IAM Identitas.
Untuk mendapatkan petunjuk, silakan lihat Mengaktifkan AWS IAM Identity Center di Panduan Pengguna AWS IAM Identity Center .
-
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
-
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.
-
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
-
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. RVMProsedur 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 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
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 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 namaUS-East1.pem
dan ada di../opsworks/ec2_keys
direktori. - region
-
(Wajib) AWS Wilayah instance. 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 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 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.-
DNS nama
-
Alamat IP publik
-
Alamat IP privat
-
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-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 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
-
driver
Atribut, 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
-
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. VirtualBox Anda akan melihat direktori yang baru dibuat di bawah/srv
. Anda juga dapat menggunakan SSH klien favorit Anda untuk terhubung ke instance.