menggunakan AWS CodePipeline

Dalam tutorial ini, Anda akan mempelajari cara membuat pipeline rilis perangkat lunak otomatis yang menerapkan aplikasi sampel asli. Anda akan membuat pipeline menggunakan AWS CodePipeline, sebuah layanan yang membangun, menguji, dan menerapkan kode Anda setiap kali terjadi perubahan kode. Anda akan menggunakan akun GitHub Anda, bucket Amazon Simple Storage Service (S3), atau repositori AWS CodeCommit sebagai lokasi sumber untuk kode aplikasi sampel. Anda juga akan menggunakan AWS Elastic Beanstalk sebagai target penerapan untuk aplikasi sampel. Pipeline Anda yang sudah selesai akan dapat mendeteksi perubahan yang dibuat pada repositori sumber yang berisi aplikasi sampel, kemudian memperbarui aplikasi sampel asli Anda.

Penerapan berkelanjutan memungkinkan Anda menerapkan revisi pada lingkungan produksi secara otomatis tanpa persetujuan eksplisit dari pengembang, yang mengotomatiskan seluruh proses rilis perangkat lunak.

Semua yang dilakukan dalam tutorial ini memenuhi syarat untuk tingkat gratis.

Mengelola Sumber Daya AWS Anda

Masuk ke Konsol

Pipeline penerapan berkelanjutan Anda akan memerlukan lingkungan target yang berisi server virtual, atau instans Amazon EC2, tempatnya akan menerapkan kode sampel. Anda akan menyiapkan lingkungan ini sebelum membuat pipeline.


a. Untuk menyederhanakan proses menyiapkan dan mengonfigurasikan instans EC2 untuk tutorial ini, Anda akan memulai cepat lingkungan menggunakan AWS Elastic Beanstalk. Elastic Beanstalk memungkinkan Anda dengan mudah meng-hosting aplikasi web tanpa perlu meluncurkan, mengonfigurasikan, atau mengoperasikan server virtual Anda sendiri. Elastic Beanstalk akan secara otomatis menyediakan dan mengoperasikan infrastruktur (misal, server virtual, penyeimbang muatan, dll.) serta menyediakan stack aplikasi (misal, OS, bahasa dan kerangka kerja, server web dan aplikasi, dll.) untuk Anda.


b. Pilih PHP dari menu menurun, kemudian klik Luncurkan Sekarang.

Catatan: Jika Anda telah membuat aplikasi Elastic Beanstalk sebelumnya, klik: Buat Aplikasi Baru di sudut kanan atas. Beri nama untuk aplikasi Anda dan buat lingkungan server web baru. Pilih PHP sebagai platform Anda dan Instans Tunggal sebagai tipe lingkungan Anda. Jika Anda berencana untuk masuk dari jarak jauh ke instans Anda, pilih pasangan kunci. Atau, biarkan nilai default untuk opsi tersisa dan buat lingkungan untuk pipeline penerapan berkelanjutan Anda.

(klik untuk memperbesar)


c. Elastic Beanstalk akan mulai membuat lingkungan sampel untuk Anda menerapkan aplikasi. Elastic Beanstalk akan membuat instans Amazon EC2, grup keamanan, Grup Auto Scaling, bucket Amazon S3, alarm Amazon CloudWatch, dan nama domain untuk aplikasi Anda.

Catatan: Ini mungkin perlu waktu beberapa menit untuk diselesaikan.

(klik untuk memperbesar)

Dalam langkah ini, Anda akan menarik salinan kode aplikasi sampe dan memilih sumber untuk meng-hosting kode. Pipeline akan mengambil kode dari sumber, kemudian menjalankan tindakan pada kode.

Anda dapat menggunakan salah satu dari tiga opsi sebagai sumber Anda: repositori GitHub, bucket Amazon S3, atau repositori AWS CodeCommit. Pilih preferensi Anda dan ikuti langkah-langkah di bawah:

 

  • GitHub

    a. Jika Anda ingin menggunakan akun GitHub Anda:

    (klik untuk memperbesar)

  • Amazon S3

    a. Jika Anda berencana untuk menggunakan Amazon S3 sebagai sumber, Anda akan menarik kode sampel dari repositori GitHub AWS, menyimpannya ke komputer Anda, dan mengunggahnya ke bucket Amazon S3.

    (klik untuk memperbesar)


    b. Simpan file sumber ke komputer Anda:

    • Klik file bernama aws-codepipeline-s3-aws-codedeploy_linux.zip 
    • Klik Lihat Raw.
    • Simpan file sampel ke komputer lokal Anda.

    (klik untuk memperbesar)


    c. Klik di sini untuk membuka konsol Amazon S3 dan membuat bucket Amazon S3 Anda:

    • Klik Buat Bucket
    • Nama Bucket: ketikkan nama unik untuk bucket Anda, seperti awscodepipeline-demobucket-variables.  Semua nama bucket di Amazon S3 harus unik, jadi gunakan milik Anda sendiri, buka yang namanya ditunjukkan dalam contoh.
    • Wilayah: Di daftar menurun, pilih wilayah tempat Anda akan membuat pipeline, seperti AS Standar
    • Klik Buat.

    (klik untuk memperbesar)


    d. Konsol akan menampilkan bucket kosong yang baru dibuat.

    • Klik Properti.
    • Perluas Pembuatan Versi dan pilih Aktifkan Pembuatan Versi. Jika pembuatan versi diaktifkan, Amazon S3 akan menyimpan setiap versi setiap objek dalam bucket.

    (klik untuk memperbesar)


    e. Kini Anda akan mengunggah kode sampel ke bucket Amazon S3: 

    • Klik Unggah.
    • Ikuti petunjuk pada layar untuk mengunggah file .zip yang berisi kode sampel yang Anda unduh dari GitHub.

    (klik untuk memperbesar)

  • AWS CodeCommit

    a. Jika Anda berencana untuk menggunakan Amazon CodeCommit sebagai sumber, Anda akan menarik kode sampel dari repositori GitHub AWS, menyimpannya ke komputer Anda, dan mengunggahnya ke bucket AWS CodeCommit.

    (klik untuk memperbesar)


    b. Simpan file sumber ke komputer Anda:

    • Pilih file bernama aws-codepipeline-s3-aws-codedeploy_linux.zip. 
    • Pilih Lihat Raw.
    • Simpan file sampel ke komputer lokal Anda.

    (klik untuk memperbesar)


    (klik untuk memperbesar)


    e. Di halaman Buat repositori baru:

    • Nama repositori: masukkan PipelineRepo.
    • Pilih Buat repositori.

    (klik untuk memperbesar)


    f. Hubungkan ke repositori Anda, kemudian dorong salinan file sampel ke dalamnya.  Untuk petunjuk, lihat Hubungkan ke Repositori AWS CodeCommit.

Di langkah ini, Anda akan membuat dan mengonfigurasikan pipeline sederhana dengan dua tindakan: sumber dan terapkan. Anda akan memberi CodePipeline lokasi repositori sumber dan lingkungan penerapan Anda.


a. Klik di sini untuk membuka konsol AWS CodePipeline.

  • Di halaman Selamat Datang, klik Buat pipeline
  • Jika ini adalah pertama kalinya Anda menggunakan AWS CodePipeline, sebuah halaman pengantar akan muncul sebagai ganti Selamat Datang. Klik Mulai.

(klik untuk memperbesar)


b. Di halaman Langkah 1: Nama:

  • Nama pipeline: masukkan nama untuk pipeline Anda, DemoPipeline. 
  • Klik Langkah berikutnya.

Catatan: Setelah membuat pipeline, Anda tidak dapat mengubah namanya.

(klik untuk memperbesar)


c. Di halaman Langkah 2: Sumber, pilih lokasi sumber yang Anda pilih dan ikuti langkah-langlah di bawah:

  • GitHub

    Penyedia Sumber: GitHub

    • Di bagian Hubungkan ke GitHub, klik Hubungkan ke GitHub.
    • Jendela browser baru akan terbuka untuk menghubungkan Anda ke GitHub. Jika diminta untuk masuk, berikan kredensial GitHub Anda. 
    • Anda akan diminta untuk mengotorisasi akses aplikasi ke akun Anda. Pilih Otorisasi aplikasi.

    (klik untuk memperbesar)


    Tetapkan repositori dan cabang:

    • Repositori: Di daftar menurun, pilih repositori GitHub yang ingin Anda gunakan sebagai lokasi sumber untuk pipeline Anda. Klik repositori bercabang di akun GitHub Anda yang berisi kode sampel bernama aws-codepipeline-s3-aws-codedeploy_linux
    • Cabang: Di daftar menurun, pilih cabang yang ingin Anda gunakan, master.
    • Klik Langkah Berikutnya.

    (klik untuk memperbesar)

  • Amazon S3

    Penyedia sumber: Amazon S3.

    • Lokasi Amazon S3: Ketik nama bucket Amazon S3 yang Anda buat diikuti oleh file sampel yang Anda salin ke bucket tersebut (aws-codepipeline-s3-aws-codedeploy_linux.zip). Sebagai contoh, jika Anda memberi nama awscodepipeline-demobucket-variable untuk bucket, Anda akan mengetikkan: s3://awscodepipeline-demobucket-variable/aws-codepipeline-s3-aws-codedeploy_linux.zip.
    • Klik Langkah Berikutnya.

    (klik untuk memperbesar)

  • AWS CodeCommit

    Penyedia sumber: AWS CodeCommit.

    • Nama repositori: Pilih nama repositori AWS CodeCommit. 
    • Nama cabang: Pilih nama cabang yang berisi file sampel.
    • Klik Langkah Berikutnya.

    (klik untuk memperbesar)


d. Sebuah pipeline penerapan berkelanjutan yang sebenarnya memerlukan tahap pembangunan, tempat kode dikompilasi dan unit diuji. CodePipeline memungkinkan Anda memasangkan penyedia build pilihan Anda ke pipeline Anda. Meski demikian, dalam tutorial ini Anda akan melewatkan tahap pembangunan.

  • Di halaman Langkah 3: Bangun, pilih Tidak Ada Bangun.
  • Klik Langkah berikutnya.

 

(klik untuk memperbesar)


e. Di halaman Langkah 4: Beta:

  • Penyedia penerapan: Klik AWS Elastic Beanstalk. 
  • Nama aplikasi: Klik Aplikasi Elastic Beanstalk Pertama Saya. 
  • Nama lingkungan: Klik Lingkungan Default.
  • Klik Langkah berikutnya.

Catatan: Nama "Beta" sebenarnya adalah nama yang diberikan secara default ke tahap pipeline ini, sama seperti "Sumber" menjadi nama yang diberikan ke tahap pertama pipeline.

(klik untuk memperbesar)


f. Di halaman Langkah 5: Peran Layanan:

  • Peran Layanan: Klik Buat peran.
  • Anda akan diarahkan ke halaman konsol IAM yang menguraikan peran Layanan AWS CodePipeline yang akan dibuat untuk Anda. Klik Izinkan
  • Setelah membuat peran, Anda akan dikembalikan ke halaman Langkah 5: Peran Layanan, tempat Layanan AWS CodePipeline muncul di nama Peran. Klik Langkah berikutnya.

Catatan: Pembuatan peran layanan hanya diperlukan saat pertama kali Anda membuat pipeline di AWS CodePipeline. Jika peran layanan telah dibuat, Anda akan dapat memilihnya dari daftar menurun peran. Karena daftar menurun menampilkan semua peran layanan IAM yang terkait dengan akun Anda, jika Anda memilih nama yan berbeda dari default, pastikan nama tersebut dapat dikenali sebagai peran layanan untuk AWS CodePipeline.

(klik untuk memperbesar)

Di langkah ini, Anda akan meluncurkan pipeline Anda. Setelah pipeline Anda dibuat, pipeline akan mulai berjalan secara otomatis. Pertama, pipeline akan mendeteksi kode aplikasi sampel di lokasi sumber Anda, membundel file, kemudian memindahkannya ke tahap kedua yang telah Anda tentukan. Selama tahap ini, pipeline akan meneruskan kode ke Elastic Beanstalk, yang berisi instans EC2 yang akan menjadi host untuk kode Anda. Elastic Beanstalk akan menangani penerapan kode ke instans EC2.


a. Di halaman Langkah 6: Tinjau, tinjau informasi dan klik Buat pipeline.

(klik untuk memperbesar)


b. Setelah pipeline Anda dibuat, halaman status pipeline akan muncul dan pipeline akan secara otomatis mulai berjalan. Anda dapat melihat kemajuan serta pesan keberhasilan dan kegagalan saat pipeline menjalankan setiap tindakan.

Untuk memverifikasi keberhasilan pipeline berjalan, pantau kemajuan pipeline saat pipeline berpindah ke setiap tahap. Status setiap tahap akan berubah dari Belum ada eksekusi ke Sedang Berjalan, kemudian ke Berhasil atau Gagal. Pipeline seharusnya menyelesaikan operasi pertama dalam beberapa menit.

(klik untuk memperbesar)


c. Di area status untuk tahap Beta, klik AWS Elastic Beanstalk

(klik untuk memperbesar)


d. Konsol AWS Elastic Beanstalk akan terbuka dengan detail penerapan.

  • Klik lingkungan bernama Default-Environment yang Anda buat sebelumnya. 

(klik untuk memperbesar)


e. Klik URL yang muncul di bagian kanan atas halaman untuk melihat situs web sampel yang Anda terapkan.

(klik untuk memperbesar)

Di langkah ini, Anda akan merevisi kode sampe dan menerapkan perubahan pada repositori. CodePipeline akan mendeteksi kode sampel yang diperbarui, kemudian secara otomatis memulai penerapannya ke instans EC2 Anda melalui Elastic Beanstalk. 

Harap diingat bahwa halaman web sampel yang Anda terapkan mengacu pada AWS CodeDeploy, sebuah layanan yang mengotomatiskan penerapan kode. Di CodePipeline, CodeDeploy menjadi alternatif untuk menggunakan Elastic Beanstalk untuk tindakan penerapan. Mari kita perbarui kode sampel agar kode menyatakan dengan benar bahwa Anda menerapkan sampel menggunakan Elastic Beanstalk.

  • GitHub

    a. Lihat salinan repositori Anda sendiri yang Anda bagi di GitHub.

    • Buka index.html
    • Pilih ikon Edit.

    (klik untuk memperbesar)


    b. Perbarui halaman web dengan menyalin dan menempel teks berikut pada baris 30: 

    Anda telah berhasil membuat pipeline yang menarik aplikasi sumber ini dari GitHub dan menerapkannya ke satu instans Amazon EC2 menggunakan AWS Elastic Beanstalk. Anda tinggal selangkah lagi menuju mempraktikkan penerapan berkelanjutan!

    (klik untuk memperbesar)


    c. Terapkan perubahan ke repositori Anda.

    (klik untuk memperbesar)

  • Amazon S3

    a. Pada desktop Anda, lihat file zip bernama aws-codepipeline-s3-aws-codedeploy_linux.zip yang Anda unduh.


    b. Edit kode aplikasi web sampel:

    • Ekstrak index.html dari file zip dan buka menggunakan editor teks pilihan Anda. 
    • Perbarui teks header yang muncul setelah “Selamat!” agar berbunyi:

    “Anda telah berhasil membuat pipeline yang menarik aplikasi sumber ini dari Amazon S3 dan menerapkannya ke satu instans Amazon EC2 menggunakan AWS Elastic Beanstalk. Anda tinggal selangkah lagi menuju mempraktikkan penerapan berkelanjutan!

    • Salin file index.html yang diperbarui kembali ke aws-codepipeline-s3-aws-codedeploy_linux.zip dan ganti versi index.html yang lebih lama.

    (klik untuk memperbesar)


    c. Unggah ulang file yang telah diedit ke bucket Amazon S3 Anda:

    • Kembali ke bucket S3 yang Anda buat sebelumnya. 
    • Unggah file aws-codepipeline-s3-aws-codedeploy_linux.zip yang telah diperbarui ke bucket. 

    Catatan: S3 akan menyimpan salinan setiap versi file Anda karena Anda mengaktifkan pembuatan versi saat pertama kali membuat bucket S3.

    (klik untuk memperbesar)

  • AWS CodeCommit

    a. Lihat file zip yang berisi kode sampel bernama aws-codepipeline-s3-aws-codedeploy_linux.zip yang Anda unggah.


    b. Edit kode aplikasi web sampel:
     
    • Ekstrak index.html dari file zip dan buka menggunakan editor teks pilihan Anda. 
    • Kemudian perbarui teks header yang muncul setelah “Selamat!” agar berbunyi:

    Anda telah berhasil membuat pipeline yang menarik aplikasi sumber ini dari AWS CodeCommit dan menerapkannya ke satu instans Amazon EC2 menggunakan AWS Elastic Beanstalk. Anda tinggal selangkah lagi menuju mempraktikkan penerapan berkelanjutan!

    (klik untuk memperbesar)


    c. Terapkan dan dorong file zip ke repositori CodeCommit Anda.


d. Kembali ke pipeline di konsol CodePipeline. Dalam beberapa menit, Anda akan melihat Sumber berubah ke biru, yang menunjukkan bahwa pipeline telah mendeteksi perubahan yang Anda buat pada repositori sumber. Setelah perubahan ini terjadi, pipeline akan otomatis memindahkan kode yang diperbarui ke Elastic Beanstalk.

  • Setelah status pipeline menampilkan Berhasil, di area status untuk tahap Beta, klik AWS Elastic Beanstalk.

(klik untuk memperbesar)


e. Konsol AWS Elastic Beanstalk akan terbuka dengan detail penerapan. Pilih lingkungan bernama Default-Environment yang Anda buat sebelumnya.

(klik untuk memperbesar)


f. Klik URL yang muncul di bagian kanan atas halaman untuk melihat situs web sampel lagi.  Teks Anda telah diperbarui secara otomatis melalui pipeline penerapan berkelanjutan!

 

(klik untuk memperbesar)

Untuk menghindari biaya di masa depan, Anda akan menghapus semua sumber daya yang Anda luncurkan di sepanjang tutorial ini, yang meliputi pipeline, aplikasi Elastic Beanstalk, dan sumber yang Anda siapkan untuk menjadi host kode.  


a. Pertama, Anda akan menghapus pipeline.

  • Di tampilan pipeline, klik Edit
  • Klik Hapus.
  • Ketik nama bucket pipeline Anda dan klik Hapus.

(klik untuk memperbesar)


b. Kedua, hapus aplikasi Elastic Beanstalk Anda:

  • Kunjungi konsol Elastic Beanstalk. 
  • Klik Tindakan.
  • Kemudia klik Hentikan Lingkungan.

(klik untuk memperbesar)

  • Amazon S3

    c. Jika Anda membuat bucket S3 untuk tutorial ini, hapus bucket yang Anda buat:

    • Kunjungi konsol S3. 
    • Klik kanan nama bucket dan pilih Hapus Bucket
    • Saat muncul pesan konfirmasi, masukkan nama bucket, kemudian klik Hapus.

    (klik untuk memperbesar)

  • AWS CodeCommit

    c. Jika Anda membuat repositori AWS CodeCommit untuk tutorial ini, kunjungi konsol CodeCommit dan hapus repositori yang Anda buat:

    (klik untuk memperbesar)


    c. Di panel navigasi, pilih Pengaturan.

    • Klik Hapus Repositori.
    • Jendela konfirmasi akan muncul. Ketikkan nama repositori Anda dan klik Hapus.

    (klik untuk memperbesar)

Anda telah berhasil membuat pipeline rilis perangkat lunak otomatis menggunakan AWS CodePipeline! Dengan menggunakan CodePipeline, Anda membuat pipeline yang menggunakan GitHub, Amazon S3, atau AWS CodeCommit sebagai lokasi sumber untuk kode aplikasi, kemudian menerapkan kode ke instans Amazon EC2 yang dikelola oleh AWS Elastic Beanstalk. Pipeline Anda akan otomatis menerapkan kode setiap kali terjadi perubahan pada kode. Anda tinggal selangkah lagi untuk dapat mempraktikkan penerapan berkelanjutan!

Sekarang setelah Anda mempelajari cara membuat pipeline sederhana menggunakan AWS CodePipeline, Anda dapat mempelajari selengkapnya dengan mengunjungi sumber daya berikut.

  • Buat pipeline empat tahap yang lebih canggih dengan mengikuti panduan ini. Pipeline ini menggunakan repositori GitHub untuk sumber Anda, server build Jenkins untuk membangun dan menguji proyek, serta aplikasi AWS CodeDeploy untuk menerapkan kode buil ke server tahap.
  • Mulai cepat pipeline empat tahap dengan server build Jenkins menggunakan Kit Mulai Pipeline kami.
  • Pelajari selengkapnya mengenai pengiriman berkelanjutan.