Menggunakan AWS AppConfig Agen dengan Amazon EC2 dan mesin lokal - AWS AppConfig

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

Menggunakan AWS AppConfig Agen dengan Amazon EC2 dan mesin lokal

Anda dapat berintegrasi AWS AppConfig dengan aplikasi yang berjalan di instans Amazon Elastic Compute Cloud (AmazonEC2) Linux dengan menggunakan AWS AppConfig Agen. Agen meningkatkan pemrosesan dan manajemen aplikasi dengan cara berikut:

  • Agen memanggil AWS AppConfig atas nama Anda dengan menggunakan peran AWS Identity and Access Management (IAM) dan mengelola cache lokal data konfigurasi. Dengan menarik data konfigurasi dari cache lokal, aplikasi Anda memerlukan lebih sedikit pembaruan kode untuk mengelola data konfigurasi, mengambil data konfigurasi dalam milidetik, dan tidak terpengaruh oleh masalah jaringan yang dapat mengganggu panggilan untuk data tersebut. *

  • Agen menawarkan pengalaman asli untuk mengambil dan menyelesaikan flag AWS AppConfig fitur.

  • Di luar kotak, agen menyediakan praktik terbaik untuk strategi caching, interval polling, dan ketersediaan data konfigurasi lokal sambil melacak token konfigurasi yang diperlukan untuk panggilan layanan berikutnya.

  • Saat berjalan di latar belakang, agen secara berkala melakukan polling bidang AWS AppConfig data untuk pembaruan data konfigurasi. Aplikasi Anda dapat mengambil data dengan menghubungkan ke localhost pada port 2772 (nilai port default yang dapat disesuaikan) dan memanggil untuk mengambil data. HTTP GET

*AWS AppConfig Agen menyimpan data saat pertama kali layanan mengambil data konfigurasi Anda. Untuk alasan ini, panggilan pertama untuk mengambil data lebih lambat dari panggilan berikutnya.

Langkah 1: (Diperlukan) Membuat sumber daya dan mengonfigurasi izin

Untuk berintegrasi AWS AppConfig dengan aplikasi yang berjalan di EC2 instans Amazon, Anda harus membuat AWS AppConfig artefak dan data konfigurasi, termasuk flag fitur atau data konfigurasi bentuk bebas. Untuk informasi selengkapnya, lihat Membuat flag fitur dan data konfigurasi formulir gratis di AWS AppConfig.

Untuk mengambil data konfigurasi yang dihosting oleh AWS AppConfig, aplikasi Anda harus dikonfigurasi dengan akses ke bidang AWS AppConfig data. Untuk memberikan akses kepada aplikasi Anda, IAM perbarui kebijakan izin yang ditetapkan ke peran EC2 instans Amazon. Secara khusus, Anda harus menambahkan appconfig:StartConfigurationSession dan appconfig:GetLatestConfiguration tindakan ke kebijakan. Inilah contohnya:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "*" } ] }

Untuk informasi selengkapnya tentang menambahkan izin ke kebijakan, lihat Menambahkan dan menghapus izin IAM identitas di IAMPanduan Pengguna.

Langkah 2: (Diperlukan) Menginstal dan memulai AWS AppConfig Agen di EC2 instans Amazon

AWS AppConfig Agen di-host di bucket Amazon Simple Storage Service (Amazon S3) yang dikelola oleh Amazon Simple Storage Service (Amazon S3). AWS Gunakan prosedur berikut untuk menginstal versi terbaru agen pada instance Linux Anda. Jika aplikasi Anda didistribusikan di beberapa instance, maka Anda harus melakukan prosedur ini pada setiap instance yang menghosting aplikasi.

catatan

Perhatikan informasi berikut:

  • AWS AppConfig Agen tersedia untuk sistem operasi Linux yang menjalankan kernel versi 4.15 atau lebih tinggi. Sistem berbasis Debian, seperti Ubuntu, tidak didukung.

  • Agen mendukung x86_64 dan arsitektur. ARM64

  • Untuk aplikasi terdistribusi, sebaiknya tambahkan perintah instal dan startup ke data EC2 pengguna Amazon dari grup Auto Scaling Anda. Jika Anda melakukannya, setiap instance menjalankan perintah secara otomatis. Untuk informasi selengkapnya, lihat Menjalankan perintah pada instance Linux Anda saat diluncurkan di Panduan EC2 Pengguna Amazon. Selain itu, lihat Tutorial: Mengonfigurasi data pengguna untuk mengambil status siklus hidup target melalui metadata instans di Panduan Pengguna Auto EC2 Scaling Amazon.

  • Prosedur di seluruh topik ini menjelaskan cara melakukan tindakan seperti menginstal agen dengan masuk ke instance untuk menjalankan perintah. Anda dapat menjalankan perintah dari mesin klien lokal dan menargetkan satu atau lebih instance dengan menggunakan Run Command, yang merupakan kemampuan. AWS Systems Manager Untuk informasi selengkapnya, lihat Run Command AWS Systems Manager di Panduan Pengguna AWS Systems Manager .

  • AWS AppConfig Agen di Amazon EC2 Linux instans adalah systemd layanan.

Untuk menginstal dan memulai AWS AppConfig Agen pada sebuah instance
  1. Masuk ke instance Linux Anda.

  2. Buka terminal dan jalankan perintah berikut dengan izin Administrator untuk arsitektur x86_64:

    sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm

    Untuk ARM64 arsitektur, jalankan perintah berikut:

    sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/arm64/latest/aws-appconfig-agent.rpm

    Jika Anda ingin menginstal versi AWS AppConfig Agen tertentu, ganti latest URL dengan nomor versi tertentu. Berikut adalah contoh untuk x86_64:

    sudo yum install https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/2.0.2/aws-appconfig-agent.rpm
  3. Jalankan perintah berikut untuk memulai agen:

    sudo systemctl start aws-appconfig-agent
  4. Jalankan perintah berikut untuk memverifikasi agen sedang berjalan:

    sudo systemctl status aws-appconfig-agent

    Jika berhasil, perintah mengembalikan informasi seperti berikut:

    aws-appconfig-agent.service - aws-appconfig-agent ... Active: active (running) since Mon 2023-07-26 00:00:00 UTC; 0s ago ...
catatan

Untuk menghentikan agen, jalankan perintah berikut:

sudo systemctl stop aws-appconfig-agent

Langkah 3: (Opsional, tetapi disarankan) Mengirim file log ke CloudWatch Log

Secara default, AWS AppConfig Agen menerbitkan log keSTDERR. Pengalihan Systemd STDOUT dan STDERR untuk semua layanan yang berjalan pada instance Linux ke jurnal systemd. Anda dapat melihat dan mengelola data log di jurnal systemd jika Anda menjalankan AWS AppConfig Agen hanya pada satu atau dua instance. Solusi yang lebih baik, solusi yang sangat kami rekomendasikan untuk aplikasi terdistribusi, adalah menulis file log ke disk dan kemudian menggunakan CloudWatch agen Amazon untuk mengunggah data log ke AWS cloud. Selain itu, Anda dapat mengonfigurasi CloudWatch agen untuk menghapus file log lama dari instance Anda, yang mencegah instance Anda kehabisan ruang disk.

Untuk mengaktifkan logging ke disk, Anda harus mengatur variabel LOG_PATH lingkungan, seperti yang dijelaskan dalamLangkah 4: (Opsional) Menggunakan variabel lingkungan untuk mengkonfigurasi AWS AppConfig Agen untuk Amazon EC2.

Untuk memulai dengan CloudWatch agen, lihat Mengumpulkan metrik dan log dari EC2 instans Amazon dan server lokal dengan CloudWatch agen di Panduan Pengguna Amazon CloudWatch . Anda dapat menggunakan Quick Setup, kemampuan Systems Manager untuk menginstal CloudWatch agen dengan cepat. Untuk informasi selengkapnya, lihat Pengaturan Cepat Manajemen Host di Panduan AWS Systems Manager Pengguna.

Awas

Jika Anda memilih untuk menulis file log ke disk tanpa menggunakan CloudWatch agen, Anda harus menghapus file log lama. AWS AppConfig Agen secara otomatis memutar file log setiap jam. Jika Anda tidak menghapus file log lama, instance Anda dapat kehabisan ruang disk.

Setelah Anda menginstal CloudWatch agen pada instance Anda, buat file konfigurasi CloudWatch agen. File konfigurasi menginstruksikan CloudWatch agen tentang cara bekerja dengan file log AWS AppConfig Agen. Untuk informasi selengkapnya tentang membuat file konfigurasi CloudWatch agen, lihat Membuat file konfigurasi CloudWatch agen.

Tambahkan logs bagian berikut ke file konfigurasi CloudWatch agen pada instance dan simpan perubahan Anda:

"logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/path_you_specified_for_logging", "log_group_name": "${YOUR_LOG_GROUP_NAME}/aws-appconfig-agent.log", "auto_removal": true }, ... ] }, ... }, ... }

Jika nilainya auto_removal adalahtrue, CloudWatch agen secara otomatis menghapus file log AWS AppConfig Agen yang diputar.

Langkah 4: (Opsional) Menggunakan variabel lingkungan untuk mengkonfigurasi AWS AppConfig Agen untuk Amazon EC2

Anda dapat mengonfigurasi AWS AppConfig Agen untuk Amazon EC2 dengan menggunakan variabel lingkungan. Untuk mengatur variabel lingkungan untuk systemd layanan, Anda membuat file unit drop-in. Contoh berikut menunjukkan cara membuat file unit drop-in untuk mengatur tingkat logging AWS AppConfig Agen keDEBUG.

Contoh cara membuat file unit drop-in untuk variabel lingkungan
  1. Masuk ke instance Linux Anda.

  2. Buka terminal dan jalankan perintah berikut dengan izin Administrator. Perintah membuat direktori konfigurasi:

    sudo mkdir /etc/systemd/system/aws-appconfig-agent.service.d
  3. Jalankan perintah berikut untuk membuat file unit drop-in. Ganti file_name dengan nama untuk file tersebut. Ekstensi harus.conf:

    sudo touch /etc/systemd/system/aws-appconfig-agent.service.d/file_name.conf
  4. Masukkan informasi dalam file unit drop-in. Contoh berikut menambahkan Service bagian yang mendefinisikan variabel lingkungan. Contoh ini menetapkan level log AWS AppConfig Agen keDEBUG.

    [Service] Environment=LOG_LEVEL=DEBUG
  5. Jalankan perintah berikut untuk memuat ulang konfigurasi systemd:

    sudo systemctl daemon-reload
  6. Jalankan perintah berikut untuk me-restart AWS AppConfig Agen:

    sudo systemctl restart aws-appconfig-agent

Anda dapat mengonfigurasi AWS AppConfig Agen untuk Amazon EC2 dengan menentukan variabel lingkungan berikut dalam file unit drop-in.

Variabel lingkungan Detail Nilai default

ACCESS_TOKEN

Variabel lingkungan ini mendefinisikan token yang harus disediakan saat meminta data konfigurasi dari server agenHTTP. Nilai token harus diatur dalam header otorisasi HTTP permintaan dengan jenis otorisasi. Bearer Inilah contohnya.

GET /applications/my_app/... Host: localhost:2772 Authorization: Bearer <token value>
Tidak ada

BACKUP_DIRECTORY

Variabel lingkungan ini memungkinkan AWS AppConfig Agen untuk menyimpan cadangan dari setiap konfigurasi yang diambil ke direktori yang ditentukan.

penting

Konfigurasi yang dicadangkan ke disk tidak dienkripsi. Jika konfigurasi Anda berisi data sensitif, AWS AppConfig sarankan Anda mempraktikkan prinsip hak istimewa paling sedikit dengan izin sistem file Anda. Untuk informasi selengkapnya, lihat Keamanan di AWS AppConfig.

Tidak ada

HTTP_PORT

Variabel lingkungan ini menentukan port di mana HTTP server untuk agen berjalan.

2772

LOG_LEVEL

Variabel lingkungan ini menentukan tingkat detail yang dicatat agen. Setiap level mencakup level saat ini dan semua level yang lebih tinggi. Variabelnya peka huruf besar/kecil. Dari sebagian besar hingga yang paling tidak detail, level log adalah:debug,info,warn,error, dannone. Debugmencakup informasi terperinci, termasuk informasi waktu, tentang agen.

info

LOG_PATH

Lokasi disk tempat log ditulis. Jika tidak ditentukan, log ditulis ke stderr.

Tidak ada

MANIFEST

Variabel lingkungan ini mengonfigurasi AWS AppConfig Agen untuk memanfaatkan fitur per-konfigurasi tambahan seperti pengambilan multi-akun dan menyimpan konfigurasi ke disk. Anda dapat memasukkan salah satu nilai berikut:

  • "app:env:manifest-config"

  • "file:/fully/qualified/path/to/manifest.json"

Untuk informasi lebih lanjut tentang fitur ini, lihat Menggunakan manifes untuk mengaktifkan fitur pengambilan tambahan.

true

MAX_CONNECTIONS

Variabel lingkungan ini mengonfigurasi jumlah maksimum koneksi yang digunakan agen untuk mengambil konfigurasi dari. AWS AppConfig

3

POLL_INTERVAL

Variabel lingkungan ini mengontrol seberapa sering agen melakukan polling AWS AppConfig untuk data konfigurasi yang diperbarui. Anda dapat menentukan sejumlah detik untuk interval tersebut. Anda juga dapat menentukan angka dengan satuan waktu: s untuk detik, m untuk menit, dan h selama berjam-jam. Jika unit tidak ditentukan, agen default ke detik. Misalnya, 60, 60-an, dan 1m menghasilkan interval jajak pendapat yang sama.

45 detik

PREFETCH_LIST

Variabel lingkungan ini menentukan data konfigurasi permintaan agen AWS AppConfig segera setelah dimulai.

Tidak ada

PRELOAD_BACKUPS

Jika disetel ketrue, AWS AppConfig Agen memuat cadangan konfigurasi yang ditemukan di memori BACKUP_DIRECTORY ke dalam dan segera memeriksa untuk melihat apakah ada versi yang lebih baru dari layanan. Jika disetel kefalse, AWS AppConfig Agen hanya memuat konten dari cadangan konfigurasi jika tidak dapat mengambil data konfigurasi dari layanan, misalnya jika ada masalah dengan jaringan Anda.

true
PROXY_HEADERS Variabel lingkungan ini menentukan header yang diperlukan oleh proxy yang direferensikan dalam variabel lingkungan. PROXY_URL Nilainya adalah daftar header yang dipisahkan koma. Setiap header menggunakan formulir berikut.
"header: value"
Tidak ada
PROXY_URL Variabel lingkungan ini menentukan proxy yang URL akan digunakan untuk koneksi dari agen ke Layanan AWS, termasuk AWS AppConfig. HTTPSdan HTTP URLs didukung. Tidak ada

REQUEST_TIMEOUT

Variabel lingkungan ini mengontrol jumlah waktu agen menunggu respons. AWS AppConfig Jika layanan tidak merespons, permintaan gagal.

Jika permintaan untuk pengambilan data awal, agen mengembalikan kesalahan ke aplikasi Anda.

Jika batas waktu terjadi selama pemeriksaan latar belakang untuk data yang diperbarui, agen mencatat kesalahan dan mencoba lagi setelah penundaan singkat.

Anda dapat menentukan jumlah milidetik untuk batas waktu. Anda juga dapat menentukan angka dengan satuan waktu: ms untuk milidetik dan s untuk detik. Jika unit tidak ditentukan, agen default ke milidetik. Sebagai contoh, 5000, 5000 ms dan 5s menghasilkan nilai batas waktu permintaan yang sama.

3000 milidetik
ROLE_ARN Variabel lingkungan ini menentukan Amazon Resource Name (ARN) IAM peran. AWS AppConfig Agen mengasumsikan peran ini untuk mengambil data konfigurasi. Tidak ada
ROLE_EXTERNAL_ID Variabel lingkungan ini menentukan ID eksternal untuk digunakan dengan peran ARN yang diasumsikan. Tidak ada
ROLE_SESSION_NAME Variabel lingkungan ini menentukan nama sesi yang akan dikaitkan dengan kredensyal untuk peran yang diasumsikan. IAM Tidak ada
SERVICE_REGION Variabel lingkungan ini menentukan alternatif Wilayah AWS yang digunakan AWS AppConfig Agen untuk memanggil AWS AppConfig layanan. Jika dibiarkan tidak terdefinisi, agen mencoba menentukan Wilayah saat ini. Jika tidak bisa, agen gagal untuk memulai. Tidak ada

WAIT_ON_MANIFEST

Variabel lingkungan ini mengonfigurasi AWS AppConfig Agen untuk menunggu hingga manifes diproses sebelum menyelesaikan startup.

true

Langkah 5: (Diperlukan) Mengambil data konfigurasi

Anda dapat mengambil data konfigurasi dari AWS AppConfig Agen dengan menggunakan panggilan HTTP localhost. Contoh berikut digunakan curl dengan HTTP klien. Anda dapat menghubungi agen menggunakan HTTP klien yang tersedia yang didukung oleh bahasa aplikasi Anda atau pustaka yang tersedia, termasuk file AWS SDK.

Untuk mengambil konten lengkap dari konfigurasi yang diterapkan

$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name"

Untuk mengambil bendera tunggal dan atributnya dari AWS AppConfig konfigurasi tipe Feature Flag

$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name?flag=flag_name"

Untuk mengakses beberapa flag dan atributnya dari AWS AppConfig konfigurasi tipe Feature Flag

$ curl "http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name?flag=flag_name_one&flag=flag_name_two"

Langkah 6 (Opsional, tetapi disarankan): Mengotomatiskan pembaruan ke Agen AWS AppConfig

AWS AppConfig Agen diperbarui secara berkala. Untuk memastikan Anda menjalankan versi terbaru AWS AppConfig Agen pada instans Anda, kami sarankan Anda menambahkan perintah berikut ke data EC2 pengguna Amazon Anda. Anda dapat menambahkan perintah ke data pengguna baik pada instance atau grup EC2 Auto Scaling. Skrip menginstal dan memulai versi terbaru agen setiap kali instance dimulai atau reboot.

#!/bin/bash # install the latest version of the agent yum install -y https://s3.amazonaws.com/aws-appconfig-downloads/aws-appconfig-agent/linux/x86_64/latest/aws-appconfig-agent.rpm # optional: configure the agent mkdir /etc/systemd/system/aws-appconfig-agent.service.d echo "${MY_AGENT_CONFIG}" > /etc/systemd/system/aws-appconfig-agent.service.d/overrides.conf systemctl daemon-reload # start the agent systemctl start aws-appconfig-agent