Bagaimana cara CloudFormation kerja - AWS CloudFormation

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

Bagaimana cara CloudFormation kerja

Topik ini menjelaskan cara CloudFormation kerja dan memperkenalkan Anda pada konsep-konsep kunci yang perlu Anda ketahui saat Anda menggunakannya.

Konsep utama

Saat Anda menggunakan CloudFormation, Anda bekerja dengan templat dan tumpukan. Anda membuat template untuk menggambarkan AWS sumber daya dan propertinya. Setiap kali Anda membuat tumpukan CloudFormation , berikan sumber daya yang dijelaskan dalam template Anda.

Template

CloudFormation Template adalah file teks JSON atau YAML diformat. Anda dapat menyimpan file-file ini dengan ekstensi apa pun, seperti.json,.yaml,.template, atau.txt. CloudFormation menggunakan template ini sebagai cetak biru untuk membangun AWS sumber daya. Misalnya, dalam template, Anda dapat mendeskripsikan EC2 instance Amazon, seperti jenis instans, AMI ID, pemetaan perangkat blok, dan nama EC2 key pair Amazon-nya. Setiap kali Anda membuat tumpukan, Anda juga menentukan template yang CloudFormation digunakan untuk membuat apa pun yang Anda jelaskan dalam template.

Misalnya, jika Anda membuat tumpukan dengan templat berikut, CloudFormation berikan instance dengan ami-0ff8a91507f77f867 AMI ID, jenis t2.micro instance, nama testkey key pair, dan EBS volume Amazon.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "A sample template", "Resources": { "MyEC2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": "ami-0ff8a91507f77f867", "InstanceType": "t2.micro", "KeyName": "testkey", "BlockDeviceMappings": [ { "DeviceName": "/dev/sdm", "Ebs": { "VolumeType": "io1", "Iops": 200, "DeleteOnTermination": false, "VolumeSize": 20 } } ] } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Description: A sample template Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-0ff8a91507f77f867 InstanceType: t2.micro KeyName: testkey BlockDeviceMappings: - DeviceName: /dev/sdm Ebs: VolumeType: io1 Iops: 200 DeleteOnTermination: false VolumeSize: 20

Anda juga dapat menentukan beberapa sumber daya dalam satu templat dan mengkonfigurasi sumber daya ini untuk bekerja sama. Misalnya, Anda dapat memodifikasi template sebelumnya untuk menyertakan alamat IP Elastis (EIP) dan mengaitkannya dengan EC2 instance Amazon, seperti yang ditunjukkan pada contoh berikut:

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "A sample template", "Resources": { "MyEC2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": "ami-0ff8a91507f77f867", "InstanceType": "t2.micro", "KeyName": "testkey", "BlockDeviceMappings": [ { "DeviceName": "/dev/sdm", "Ebs": { "VolumeType": "io1", "Iops": 200, "DeleteOnTermination": false, "VolumeSize": 20 } } ] } }, "MyEIP": { "Type": "AWS::EC2::EIP", "Properties": { "InstanceId": { "Ref": "MyEC2Instance" } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Description: A sample template Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-0ff8a91507f77f867 InstanceType: t2.micro KeyName: testkey BlockDeviceMappings: - DeviceName: /dev/sdm Ebs: VolumeType: io1 Iops: 200 DeleteOnTermination: false VolumeSize: 20 MyEIP: Type: 'AWS::EC2::EIP' Properties: InstanceId: !Ref MyEC2Instance

Template sebelumnya berpusat di sekitar satu EC2 instans Amazon; namun, CloudFormation template memiliki kemampuan tambahan yang dapat Anda gunakan untuk membangun kumpulan sumber daya yang kompleks dan menggunakan kembali template tersebut dalam berbagai konteks. Misalnya, Anda dapat menambahkan parameter input yang nilainya ditentukan saat Anda membuat CloudFormation tumpukan. Dengan kata lain, Anda dapat menentukan nilai seperti tipe instans ketika Anda membuat tumpukan bukan ketika Anda membuat templat, membuat templat lebih mudah untuk digunakan kembali dalam situasi yang berbeda.

Untuk informasi selengkapnya, lihat Bekerja dengan CloudFormation template.

Tumpukan

Saat Anda menggunakan CloudFormation, Anda mengelola sumber daya terkait sebagai satu unit yang disebut tumpukan. Anda membuat, memperbarui, dan menghapus kumpulan sumber daya dengan membuat, memperbarui, dan menghapus tumpukan. Semua sumber daya dalam tumpukan ditentukan oleh CloudFormation template stack. Misalkan Anda membuat template yang menyertakan grup Auto Scaling, penyeimbang beban Elastic Load Balancing, dan instance database Amazon Relational Database Service (Amazon). RDS Untuk membuat sumber daya tersebut, Anda membuat tumpukan dengan mengirimkan template yang Anda buat, dan CloudFormation menyediakan semua sumber daya tersebut untuk Anda. Anda dapat bekerja dengan tumpukan dengan menggunakan CloudFormation konsol, API, atau AWS CLI.

Untuk informasi selengkapnya, lihat Mengelola AWS sumber daya sebagai satu unit dengan AWS CloudFormation tumpukan.

Ubah set

Jika Anda perlu mengubah sumber daya yang sedang berjalan dalam tumpukan, Anda memperbarui tumpukan. Sebelum membuat perubahan pada sumber daya Anda, Anda dapat membuat kumpulan perubahan, yang merupakan ringkasan perubahan yang Anda ajukan. Set perubahan memungkinkan Anda melihat bagaimana perubahan dapat mempengaruhi sumber daya yang sedang berjalan, terutama untuk sumber daya kritis, sebelum menerapkannya.

Misalnya, jika Anda mengubah nama instance RDS database Amazon, CloudFormation akan membuat database baru dan menghapus yang lama. Anda akan kehilangan data dalam basis data lama kecuali Anda sudah mencadangkan itu. Jika Anda membuat set perubahan, Anda akan melihat bahwa perubahan Anda akan menyebabkan basis data Anda diganti, dan Anda akan dapat menyesuaikan rencana sebelum Anda memperbarui tumpukan Anda.

Untuk informasi selengkapnya, lihat Perbarui CloudFormation tumpukan menggunakan set perubahan.

Bagaimana cara CloudFormation kerja

Saat membuat tumpukan, CloudFormation buat panggilan layanan yang mendasarinya ke AWS untuk menyediakan dan mengkonfigurasi sumber daya Anda. CloudFormation hanya dapat melakukan tindakan yang Anda memiliki izin untuk melakukannya. Misalnya, untuk membuat EC2 instance dengan menggunakan CloudFormation, Anda memerlukan izin untuk membuat instance. Anda memerlukan izin yang sama untuk mengakhiri instans saat menghapus tumpukan dengan instans. Anda menggunakan AWS Identity and Access Management(IAM) untuk mengelola izin.

Panggilan yang dilakukan CloudFormation semuanya dideklarasikan oleh template Anda. Misalnya, Anda memiliki template yang menggambarkan sebuah EC2 instance dengan tipe t2.micro instance. Saat Anda menggunakan template tersebut untuk membuat tumpukan, CloudFormation memanggil instance Amazon EC2 create API dan menentukan jenis instance sebagait2.micro. Diagram berikut merangkum CloudFormation alur kerja untuk membuat tumpukan.

Template yang dibuat atau yang sudah ada yang disimpan secara lokal, atau dalam ember, yang digunakan untuk membuat tumpukan.
  1. Gunakan Komposer Aplikasi atau editor teks Anda sendiri untuk membuat atau memodifikasi CloudFormation templat dalam JSON atau YAML format. Anda juga dapat memilih untuk menggunakan templat yang disediakan. CloudFormation Template menjelaskan sumber daya yang Anda inginkan dan pengaturannya. Misalnya, Anda ingin membuat sebuah EC2 instance. Template Anda dapat mendeklarasikan EC2 instance Amazon dan mendeskripsikan propertinya, seperti yang ditunjukkan pada contoh berikut:

    contoh JSON
    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "A simple EC2 instance", "Resources": { "MyEC2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": "ami-0ff8a91507f77f867", "InstanceType": "t2.micro" } } } }
    contoh YAML
    AWSTemplateFormatVersion: 2010-09-09 Description: A simple EC2 instance Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-0ff8a91507f77f867 InstanceType: t2.micro
  2. Simpan template secara lokal atau di bucket Amazon S3. Jika Anda membuat templat, simpan dengan ekstensi file seperti: .json, .yaml, atau .txt.

  3. Buat CloudFormation tumpukan dengan menentukan lokasi file template Anda, seperti jalur di komputer lokal Anda atau Amazon URL S3. Jika templat berisi parameter, Anda dapat menentukan nilai input saat membuat tumpukan. Parameter memungkinkan Anda untuk meneruskan nilai ke template Anda sehingga Anda dapat menyesuaikan sumber daya Anda setiap kali Anda membuat tumpukan.

    Anda dapat membuat tumpukan dengan menggunakan CloudFormation konsol, CreateStackAPIoperasi, atau create-stack AWS CLI perintah.

    catatan

    Jika Anda menentukan file template yang disimpan secara lokal, CloudFormation unggah ke bucket S3 di AWS akun. CloudFormation membuat bucket untuk setiap wilayah tempat Anda mengunggah file template. Bucket dapat diakses oleh siapa saja yang memiliki izin Amazon Simple Storage Service (Amazon S3) di akun Anda AWS akun. Jika bucket yang dibuat oleh CloudFormation sudah ada, template ditambahkan ke bucket itu.

    Anda dapat menggunakan bucket Anda sendiri dan mengelola izinnya dengan mengunggah templat secara manual ke Amazon S3. Kemudian setiap kali Anda membuat atau memperbarui tumpukan, tentukan Amazon S3 URL dari file template.

CloudFormation menyediakan dan mengkonfigurasi sumber daya dengan melakukan panggilan ke AWS layanan yang dijelaskan dalam template Anda.

Setelah semua sumber daya dibuat, CloudFormation laporkan bahwa tumpukan Anda telah dibuat. Kemudian, Anda dapat mulai menggunakan sumber daya dalam tumpukan Anda. Jika pembuatan tumpukan gagal CloudFormation , kembalikan perubahan Anda dengan menghapus sumber daya yang dibuatnya.

Memperbarui tumpukan dengan set perubahan

Ketika Anda perlu memperbarui sumber daya tumpukan, Anda dapat mengubah templat tumpukan. Anda tidak perlu membuat tumpukan baru dan menghapus yang lama. Untuk memperbarui tumpukan, buat set perubahan dengan mengirimkan versi modifikasi dari template tumpukan asli, nilai parameter input yang berbeda, atau keduanya. CloudFormation membandingkan template yang dimodifikasi dengan template asli dan menghasilkan set perubahan. Set perubahan mencantumkan perubahan yang diajukan. Setelah meninjau perubahan, Anda dapat memulai set perubahan untuk memperbarui tumpukan Anda atau Anda dapat membuat set perubahan baru. Diagram berikut merangkum alur kerja untuk memperbarui tumpukan.

Template yang menggunakan set perubahan untuk melihat nilai yang dimodifikasi sebelum menjalankan set perubahan untuk memperbarui tumpukan.
penting

Pembaruan dapat menyebabkan gangguan. Bergantung pada sumber daya dan properti yang Anda perbarui, pembaruan mungkin mengganggu atau bahkan mengganti sumber daya yang ada. Untuk informasi selengkapnya, lihat Memahami perilaku pembaruan sumber daya tumpukan.

  1. Anda dapat memodifikasi template CloudFormation tumpukan dengan menggunakan Komposer Aplikasi atau editor teks. Misalnya, jika Anda ingin mengubah jenis instance untuk sebuah EC2 instance, Anda akan mengubah nilai InstanceType properti di template tumpukan asli. Untuk informasi selengkapnya, lihat Perbarui template tumpukan Anda.

  2. Simpan CloudFormation template secara lokal atau dalam ember S3.

  3. Buat set perubahan dengan menentukan tumpukan yang ingin Anda perbarui dan lokasi templat yang dimodifikasi, seperti jalur di komputer lokal Anda atau Amazon URL S3. Jika templat berisi parameter, Anda dapat menentukan nilai saat membuat set perubahan.

    Untuk informasi selengkapnya tentang cara membuat set perubahan, lihat Perbarui CloudFormation tumpukan menggunakan set perubahan.

    catatan

    Jika Anda menentukan template yang disimpan di komputer lokal Anda, CloudFormation secara otomatis mengunggah template Anda ke bucket S3 di Akun AWS.

  4. Lihat set perubahan untuk memeriksa apakah CloudFormation akan melakukan perubahan yang Anda harapkan. Misalnya, periksa apakah CloudFormation akan mengganti sumber daya tumpukan penting. Anda dapat membuat set perubahan sebanyak yang dibutuhkan sampai Anda telah menyertakan perubahan yang diinginkan.

    penting

    Set perubahan tidak menunjukkan apakah pembaruan tumpukan Anda akan berhasil. Misalnya, set perubahan tidak memeriksa apakah Anda akan melampaui kuota akun, jika Anda memperbarui sumber daya yang tidak mendukung pembaruan, atau jika Anda memiliki izin yang tidak memadai untuk mengubah sumber daya, yang dapat menyebabkan pembaruan tumpukan gagal.

  5. Memulai set perubahan yang ingin Anda terapkan ke tumpukan Anda. CloudFormation memperbarui tumpukan Anda dengan memperbarui hanya sumber daya yang Anda modifikasi dan memberi sinyal bahwa tumpukan Anda telah berhasil diperbarui. Jika pembaruan tumpukan gagal, CloudFormation memutar kembali perubahan untuk mengembalikan tumpukan ke status kerja terakhir yang diketahui.

Menghapus tumpukan

Saat Anda menghapus tumpukan, Anda menentukan tumpukan yang akan dihapus, dan CloudFormation menghapus tumpukan dan semua sumber daya di tumpukan itu. Anda dapat menghapus tumpukan dengan menggunakan CloudFormation konsol, DeleteStackAPIoperasi, atau menghapus-tumpukan AWS CLI perintah.

Jika Anda ingin menghapus tumpukan tetapi ingin mempertahankan beberapa sumber daya dalam tumpukan itu, Anda dapat menggunakan kebijakan penghapusan untuk mempertahankan sumber daya tersebut.

Setelah semua sumber daya telah dihapus, CloudFormation sinyal bahwa tumpukan Anda telah berhasil dihapus. Jika tidak CloudFormation dapat menghapus sumber daya, tumpukan tidak akan dihapus. Sumber daya apa pun yang belum dihapus akan tetap ada hingga Anda berhasil menghapus tumpukan.