Blog AWS Indonesia

Membuat Infrastructure as Code dengan CodeWhisperer

Pada acara re:Invent 2023, AWS mengumumkan dukungan Infrastructure as Code (IaC) untuk Amazon CodeWhisperer. CodeWhisperer adalah tool produktivitas AI untuk IDE dan command line yang membantu developer software untuk dengan cepat dan efisien membuat aplikasi cloud yang berjalan di AWS. Bahasa yang saat ini didukung untuk IaC adalah YAML dan JSON untuk AWS CloudFormation, Typescript dan Python untuk AWS CDK, dan HCL untuk HashiCorp Terraform. Selain memberikan rekomendasi kode di editor, CodeWhisperer juga memiliki security scanner yang memberi peringatan kepada developer tentang potensi kode infrastruktur yang tidak aman, dan menawarkan saran perbaikan yang dapat diterapkan dengan satu klik.

Dalam pos ini, kami akan menunjukkan Anda melalui beberapa skenario umum dan menunjukkan bagaimana Anda dapat memaksimalkan penggunaan CodeWhisperer di IDE. CodeWhisperer didukung oleh beberapa IDE, seperti Visual Studio Code dan JetBrains. Untuk tujuan pos ini, kami akan fokus pada Visual Studio Code. Ada beberapa hal yang perlu Anda ikuti untuk mengikuti contoh-contoh, yang tercantum di bagian persyaratan prasyarat di bawah ini.

Persyaratan Prasyarat

CloudFormation

Sekarang setelah Anda mengatur toolkit, buka file baru dengan ekstensi yaml. Karena file YAML dapat mewakili berbagai jenis file konfigurasi yang berbeda, ada baiknya menambahkan header AWSTemplateFormatVersion: '2010-09-09' ke file untuk memberi tahu CodeWhisperer bahwa Anda sedang mengedit file CloudFormation. Hanya mengetikkan beberapa karakter pertama dari header itu kemungkinan besar akan menghasilkan rekomendasi dari CodeWhisperer. Tekan TAB untuk menerima rekomendasi dan Escape untuk mengabaikannya.

AWSTemplateFormatVersion header

AWSTemplateFormatVersion header

Jika Anda memiliki ide yang baik tentang berbagai resource yang ingin Anda sertakan dalam template Anda, sertakan mereka dalam bagian Description level atas. Ini akan membantu CodeWhisperer untuk memahami hubungan antara resource yang akan Anda buat dalam file. Dalam contoh di bawah ini, kami menggambarkan stack yang ingin kami buat sebagai “VPC dengan subnet publik dan private”. Anda dapat lebih deskriptif jika Anda ingin, menggunakan string YAML multi-baris untuk menambahkan rincian yang lebih spesifik tentang resource yang ingin Anda buat.

Membuat CloudFormation template dengan deskripsi

Membuat CloudFormation template dengan deskripsi

Setelah menerima rekomendasi untuk parameter, Anda dapat melanjutkan untuk membuat resource.

Membuat CloudFormation resource

Membuat CloudFormation resource

Anda juga dapat memicu rekomendasi dengan komentar inline dan ID yang deskriptif jika Anda ingin membuat satu resource pada satu waktu. Semakin banyak kode yang Anda miliki dalam file, semakin banyak CodeWhisperer akan memahami dari konteks apa yang ingin Anda capai.

CDK

Juga dimungkinkan untuk membuat kode CDK menggunakan CodeWhisperer. Dalam contoh di bawah ini, kami memulai dengan proyek CDK menggunakan cdk init, menulis beberapa baris kode untuk membuat VPC dalam file TypeScript, dan CodeWhisperer mengusulkan beberapa saran kode menggunakan apa yang telah kami tulis. Setelah menerima saran tersebut, dimungkinkan untuk menyesuaikan kode agar sesuai dengan kebutuhan Anda. CodeWhisperer akan belajar dari gaya pengkodean Anda dan membuat saran yang lebih tepat saat Anda menambahkan lebih banyak kode ke proyek.

Membuat CDK stack

Membuat CDK stack

Anda dapat memilih apakah Anda ingin mendapatkan saran yang mencakup kode dengan referensi dengan versi profesional CodeWhisperer. Jika Anda memilih untuk mendapatkan referensinya, Anda dapat menemukannya di Log Referensi Kode. Referensi ini dapat memberi tahu Anda bahwa rekomendasi kode hampir sama persis dengan kode di repositori open source, memungkinkan Anda memeriksa lisensinya dan memutuskan apakah Anda ingin menggunakan kode itu atau tidak.

Referensi

Referensi

Terraform HCL

Setelah kolaborasi yang erat antara tim di Hashicorp dan AWS, Terraform HashiCorp Configuration Language (HCL) juga didukung oleh CodeWhisperer. Rekomendasi CodeWhisperer dipicu oleh komentar dalam file. Dalam contoh ini, kami mengulangi prompt yang serupa dengan yang kami gunakan dengan CloudFormation dan CDK.

Kode rekomendasi Terraform

Kode rekomendasi Terraform

Security Scanner

Selain konfigurasi rekomendasi, CodeWhisperer toolkit juga mencakup security scanner bawaan. Mengingat bahwa kode hasil dapat diedit dan dikombinasikan dengan kode yang sudah ada sebelumnya, adalah praktik yang baik untuk menscan hasil akhir untuk melihat apakah ada rekomendasi best-practice untuk keamanan yang dapat diterapkan.

Perluas bagian CodeWhisperer dari AWS Toolkit untuk melihat tombol “Run Security Scan”. Klik untuk memulai scanning, yang mungkin memakan waktu hingga satu menit untuk dijalankan. Dalam contoh di bawah ini, kami mendefinisikan bucket S3 yang dapat dibaca oleh siapa pun di internet.

Security Scanner

Security Scanner

Setelah security scan selesai, kode dengan masalah akan digarisbawahi dan setiap saran akan ditambahkan ke tab ‘Problems’. Klik salah satu dari itu untuk mendapatkan detail lebih lanjut.

Hasil scan

Hasil scan

CodeWhisperer menyediakan link yang dapat diklik untuk mendapatkan informasi lebih lanjut tentang kerentanan, dan apa yang dapat Anda lakukan untuk memperbaikinya.

Scanner Link

Scanner Link

Kesimpulan

Integrasi tool generative AI seperti Amazon CodeWhisperer sedang mengubah lanscape pengembangan aplikasi cloud. Dengan mendukung bahasa Infrastructure as Code (IaC) seperti CloudFormation, CDK, dan Terraform HCL, CodeWhisperer memperluas jangkauannya melampaui peran pengembangan tradisional. Kemajuan ini sangat penting dalam menggabungkan kode runtime dan infrastruktur menjadi satu kesatuan yang kohesif, meningkatkan produktivitas dan kolaborasi dalam proses pengembangan secara signifikan. Inklusi IaC memungkinkan berbagai profesional yang lebih luas, terutama Site Reliability Engineers (SRE), untuk terlibat aktif dalam pengembangan aplikasi, mengotomatisasi dan mengoptimalkan tugas manajemen infrastruktur secara lebih efisien.

Kemampuan CodeWhisperer untuk melakukan security scan pada kode yang dihasilkan selaras dengan tujuan kritis keandalan dan keamanan sistem, yang penting bagi developer dan SRE. Dengan memberikan wawasan tentang best-practice keamanan, CodeWhisperer memungkinkan manajemen infrastruktur yang baik dan aman di cloud AWS. Hal ini membuat CodeWhisperer menjadi alat yang berharga tidak hanya untuk developer, tetapi sebagai solusi komprehensif yang menjembatani berbagai disiplin teknis yang berbeda, menumbuhkan lingkungan kolaboratif untuk inovasi dalam solusi berbasis cloud.


Artikel ini diterjemahkan dari artikel asli dengan judul “Infrastructure as Code development with Amazon CodeWhisperer” yang ditulis oleh Eric Beard, AWS dan Amar Meriche, AWS.

Anda mungkin tertarik dengan artikel terkait generative AI berikut:

Rio Astamal

Rio Astamal

Rio Astamal is a Developer Advocate at AWS and a passionate web developer since 2003. In his spare time he loves writing small open source projects to solve problem in his daily activity.