Mengotomatiskan penilaian sumber daya AWS - AWS Prescriptive Guidance

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

Mengotomatiskan penilaian sumber daya AWS

Naveen Suthar, Arun Bagal, Manish Garg, dan Sandeep Gawande, Amazon Web Services

Ringkasan

Pola ini menjelaskan pendekatan otomatis untuk menyiapkan kemampuan penilaian sumber daya dengan menggunakan AWS Cloud Development Kit (AWS CDK). Dengan menggunakan pola ini, tim operasi mengumpulkan detail audit sumber daya secara otomatis dan melihat detail semua sumber daya yang digunakan di akun AWS pada satu dasbor. Ini sangat membantu dalam kasus penggunaan berikut:

  • Mengidentifikasi infrastruktur sebagai alat kode (IAc) dan mengisolasi sumber daya yang dibuat oleh berbagai solusi IAc seperti HashiCorp Terraform, AWS, AWS CDK CloudFormation, dan AWS Command Line Interface (AWS CLI)

  • Mengambil informasi audit sumber daya

Solusi ini juga akan membantu tim kepemimpinan memperoleh wawasan tentang sumber daya dan aktivitas dalam akun AWS dari satu dasbor.

Catatan: Amazon QuickSight adalah layanan berbayar. Sebelum menjalankannya untuk menganalisis data dan membuat dasbor, tinjau QuickSight harga Amazon.

Prasyarat dan batasan

Prasyarat

Batasan

  • Solusi ini diterapkan ke satu akun AWS.

  • Solusinya tidak akan melacak peristiwa yang terjadi sebelum penerapannya kecuali AWS CloudTrail sudah menyiapkan dan menyimpan data dalam bucket S3.

Versi produk

  • AWS CDK versi 2.55.1 atau yang lebih baru

  • Python versi 3.9 atau yang lebih baru

Arsitektur

Tumpukan teknologi target

  • Amazon Athena

  • AWS CloudTrail

  • AWS Glue

  • AWS Lambda

  • Amazon QuickSight

  • Amazon S3

Arsitektur target

Kode AWS CDK akan menerapkan semua sumber daya yang diperlukan untuk menyiapkan kemampuan penilaian sumber daya di akun AWS. Diagram berikut menunjukkan proses pengiriman CloudTrail log ke AWS Glue, Amazon Athena, dan. QuickSight

Penilaian sumber daya AWS dengan AWS Glue, Amazon Athena, dan Amazon QuickSight dalam proses enam langkah.
  1. CloudTrail mengirim log ke ember S3 untuk penyimpanan.

  2. Pemberitahuan peristiwa memanggil fungsi Lambda yang memproses log dan menghasilkan data yang difilter.

  3. Data yang difilter disimpan di bucket S3 lain.

  4. Crawler AWS Glue disiapkan pada data yang difilter yang ada di bucket S3 untuk membuat skema di tabel AWS Glue Data Catalog.

  5. Data yang difilter siap untuk ditanyakan oleh Amazon Athena.

  6. Data yang ditanyakan diakses oleh QuickSight untuk visualisasi.

Otomatisasi dan skala

  • Solusi ini dapat diskalakan dari satu akun AWS ke beberapa akun AWS jika ada CloudTrail jejak di seluruh organisasi di AWS Organizations. Dengan menerapkan CloudTrail di tingkat organisasi, Anda juga dapat menggunakan solusi ini untuk mengambil detail audit sumber daya untuk semua sumber daya yang diperlukan.

  • Pola ini menggunakan sumber daya tanpa server AWS untuk menerapkan solusi.

Alat

Layanan AWS

  • Amazon Athena adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon S3 dengan menggunakan SQL standar.

  • AWS Cloud Development Kit (AWS CDK) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.

  • AWS CloudFormation membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh akun AWS dan Wilayah AWS.

  • AWS CloudTrail membantu Anda mengaudit tata kelola, kepatuhan, dan risiko operasional akun AWS Anda.

  • AWS Glue adalah layanan ekstrak, transformasi, dan beban (ETL) yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data. Pola ini menggunakan crawler AWS Glue dan tabel AWS Glue Data Catalog.

  • AWS Lambda adalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

  • Amazon QuickSight adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

Repositori kode

Kode untuk pola ini tersedia di GitHub infrastructure-assessment-iac-automationrepositori.

Repositori kode berisi file dan folder berikut:

  • libfolder — AWS CDK membangun file Python yang digunakan untuk membuat sumber daya AWS

  • src/lambda_code— Kode Python yang dijalankan dalam fungsi Lambda

  • requirements.txt— Daftar semua dependensi Python yang harus diinstal

  • cdk.json— File input untuk memberikan nilai yang diperlukan untuk memutar sumber daya

Praktik terbaik

Siapkan pemantauan dan peringatan untuk fungsi Lambda. Untuk informasi selengkapnya, lihat Memantau dan memecahkan masalah fungsi Lambda. Untuk praktik terbaik umum saat bekerja dengan fungsi Lambda, lihat dokumentasi AWS.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repo di mesin lokal Anda.

Untuk mengkloning repositori, jalankan perintah. git clone https://github.com/aws-samples/infrastructure-assessment-iac-automation.git

AWS DevOps, DevOps insinyur

Siapkan lingkungan virtual Python dan instal dependensi yang diperlukan.

Untuk mengatur lingkungan virtual Python, jalankan perintah berikut.

cd infrastructure-assessment-iac-automation python3 -m venv .venv source .venv/bin/activate

Untuk mengatur dependensi yang diperlukan, jalankan perintah. pip install -r requirements.txt

AWS DevOps, DevOps insinyur

Siapkan lingkungan AWS CDK dan sintesis kode AWS CDK.

  1. Untuk mengatur lingkungan AWS CDK di akun AWS Anda, jalankan perintahcdk bootstrap aws://ACCOUNT-NUMBER/REGION.

  2. Untuk mengonversi kode ke konfigurasi AWS CloudFormation stack, jalankan perintahcdk synth.

AWS DevOps, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Ekspor variabel untuk akun dan Wilayah tempat tumpukan akan digunakan.

Untuk memberikan kredensi AWS untuk AWS CDK dengan menggunakan variabel lingkungan, jalankan perintah berikut.

export CDK_DEFAULT_ACCOUNT=<12 Digit AWS Account Number> export CDK_DEFAULT_REGION=<region>
AWS DevOps, DevOps insinyur

Siapkan profil AWS CLI.

Untuk menyiapkan profil AWS CLI untuk akun, ikuti petunjuk dalam dokumentasi AWS.

AWS DevOps, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Menyebarkan sumber daya di akun.

Untuk menerapkan sumber daya di akun AWS menggunakan AWS CDK, lakukan hal berikut:

  1. Di root repositori kloning, dalam cdk.json file, berikan input untuk parameter berikut:

    • s3_context

    • ct_context

    • kms_context

    • lambda_context

    • glue_context

    • qs_context

    Nilai-nilai ini menentukan konfigurasi sumber daya dan nomenklatur. Nilai default diatur dan dapat diubah jika diperlukan.

    catatan

    Untuk menghindari kesalahan yang mengatakan bahwa bucket S3 sudah ada, pastikan untuk memberikan nama unik untuk s3_context di output bagian ct dan.

  2. Untuk menyebarkan sumber daya, jalankan perintahcdk deploy.

    cdk deployPerintah membuat CloudTrail sumber daya untuk mencatat peristiwa dan menyimpan file log di bucket input S3. File log jejak akan diproses oleh fungsi Lambda. Hasil yang difilter disimpan dalam bucket output S3 dan siap dikonsumsi oleh Amazon Athena dan Amazon. QuickSight

AWS DevOps

Jalankan crawler AWS Glue dan buat tabel Katalog Data.

Crawler AWS Glue digunakan untuk menjaga skema data tetap dinamis. Solusi ini membuat dan memperbarui partisi dalam tabel AWS Glue Data Catalog dengan menjalankan crawler secara berkala seperti yang ditentukan oleh penjadwal crawler AWS Glue. Setelah data tersedia di bucket keluaran S3, gunakan langkah-langkah berikut untuk menjalankan crawler AWS Glue dan buat skema tabel Katalog Data untuk pengujian:

  1. Masuk ke AWS Management Console dan navigasikan ke konsol AWS Glue.

  2. Di panel navigasi, di bawah Katalog Data, pilih Crawler.

  3. Pilih iac-tool-qa-resource-iac-json-crawler crawler.

  4. Jalankan crawler.

  5. Setelah crawler berjalan dengan sukses, crawler akan membuat tabel AWS Glue Data Catalog. AWS QuickSight akan menggunakan tabel untuk memvisualisasikan data.

catatan

Kode AWS CDK mengonfigurasi crawler AWS Glue untuk berjalan pada waktu tertentu, tetapi Anda juga dapat menjalankannya sesuai permintaan.

AWS DevOps, DevOps insinyur

Menyebarkan QuickSight konstruksi.

  1. Untuk menerapkan QuickSight konstruksi, hapus komentar kode antara #QuickSight setup - start dan di. #QuickSight setup – ends resource_iac_tool_stack.py

  2. Setelah Anda menghapus komentar, jalankan cdk deploy perintah untuk membuat QuickSight DataSource dan QuickSight DataSet di QuickSight akun.

AWS DevOps, DevOps insinyur

Buat QuickSight dasbor.

Untuk membuat contoh QuickSight dasbor dan analisis, lakukan hal berikut:

  1. Arahkan ke QuickSight konsol dan pilih Wilayah AWS tempat sumber daya digunakan.

  2. Di panel navigasi, pilih Kumpulan data, dan validasi bahwa kumpulan data bernama ct-operations-iac-ds telah dibuat di kumpulan data Amazon. QuickSight

    Jika Anda tidak melihat kumpulan data, gunakan kembali konstruksinya. QuickSight

  3. Pilih ct-operations-iac-ds dataset, dan pilih GUNAKAN DALAM ANALISIS.

  4. Pilih lembar default.

  5. Pilih kolom masing-masing dari daftar bidang di sisi kiri.

  6. Setelah memilih kolom yang diperlukan, pilih jenis visual yang sesuai untuk melihat data.

Untuk informasi selengkapnya, lihat Memulai analisis di Amazon QuickSight dan tipe Visual di Amazon QuickSight.

AWS DevOps, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Hapus sumber daya AWS.

  1. Untuk menghapus sumber daya AWS yang digunakan oleh solusi, jalankan perintahcdk destroy.

  2. Hapus semua objek dari dua ember S3, lalu lepaskan ember.

    Untuk informasi selengkapnya, lihat Menghapus bucket.

AWS DevOps, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Pantau dan bersihkan sumber daya yang dibuat secara manual.

(Opsional) Jika organisasi Anda memiliki persyaratan kepatuhan untuk membuat sumber daya menggunakan alat IAC, Anda dapat mencapai kepatuhan dengan menggunakan otomatisasi alat penilaian sumber daya AWS untuk mengambil sumber daya yang disediakan secara manual. Anda juga dapat menggunakan alat ini untuk mengimpor sumber daya ke alat IAc atau untuk membuatnya kembali. Untuk memantau sumber daya yang disediakan secara manual, lakukan tugas tingkat tinggi berikut:

  1. Terapkan otomatisasi alat penilaian sumber daya AWS.

  2. Siapkan fungsi Lambda untuk menanyakan tabel Athena setiap hari, menemukan data yang relevan tentang sumber daya yang disediakan secara manual, dan mengekspornya ke file nilai yang dipisahkan koma (CSV).

  3. Setelah fungsi Lambda berjalan, pemberitahuan dengan data yang diperlukan dapat dikirim ke masing-masing pemangku kepentingan.

  4. Untuk retensi yang lebih lama, file.csv dapat disimpan di bucket S3.

  5. Berdasarkan informasi dalam file.csv, hapus sumber daya yang dibuat secara manual atau impor ke solusi IAc yang ada.

AWS DevOps, DevOps insinyur

Pemecahan Masalah

IsuSolusi

AWS CDK mengembalikan kesalahan.

Untuk bantuan terkait masalah AWS CDK, lihat Memecahkan masalah umum AWS CDK.

Sumber daya terkait

Informasi tambahan

Beberapa akun

Untuk menyiapkan kredensi AWS CLI untuk beberapa akun, gunakan profil AWS. Untuk informasi selengkapnya, lihat bagian Mengonfigurasi beberapa profil di Mengatur AWS CLI.

Perintah AWS CDK

Saat bekerja dengan AWS CDK, ingatlah perintah berguna berikut:

  • Daftar semua tumpukan di aplikasi

    cdk ls
  • Memancarkan template AWS yang disintesis CloudFormation

    cdk synth
  • Menerapkan tumpukan ke akun AWS default dan Wilayah Anda

    cdk deploy
  • Membandingkan tumpukan yang diterapkan dengan status saat ini

    cdk diff
  • Membuka dokumentasi AWS CDK

    cdk docs