Pemecahan masalah CloudFormation - AWS CloudFormation

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

Pemecahan masalah CloudFormation

Saat Anda menggunakan AWS CloudFormation, Anda mungkin mengalami masalah saat membuat, memperbarui, atau menghapus CloudFormation tumpukan. Bagian berikut ini dapat membantu Anda memecahkan beberapa masalah umum yang mungkin Anda temui.

Untuk pertanyaan umum tentang CloudFormation, lihat AWS CloudFormation FAQ. Anda juga dapat mencari jawaban dan memposting pertanyaan di forum AWS CloudFormation.

Panduan pemecahan masalah

Jika AWS CloudFormation gagal membuat, memperbarui, atau menghapus tumpukan, Anda dapat melihat pesan kesalahan atau log untuk membantu Anda mempelajari lebih lanjut tentang masalah ini. Tugas-tugas berikut menjelaskan metode umum untuk memecahkan masalah. CloudFormation Untuk informasi tentang kesalahan dan solusi tertentu, lihat bagian Memecahkan masalah kesalahan.

  • Gunakan CloudFormation konsol untuk melihat status tumpukan Anda. Di konsol, Anda dapat melihat daftar peristiwa tumpukan saat tumpukan Anda sedang dibuat, diperbarui, atau dihapus. Dari daftar ini, temukan peristiwa kegagalan dan kemudian lihat alasan status untuk peristiwa tersebut. Alasan status mungkin berisi pesan kesalahan dari AWS CloudFormation atau dari layanan tertentu yang dapat membantu Anda memecahkan masalah Anda. Untuk informasi selengkapnya tentang melihat peristiwa tumpukan, lihat Melihat data AWS CloudFormation tumpukan dan sumber daya di AWS Management Console.

  • Untuk masalah Amazon EC2, lihat log cloud-init dan cfn. Log ini dipublikasikan di instans Amazon EC2 di direktori. /var/log/ Log ini menangkap proses dan output perintah saat AWS CloudFormation menyiapkan instance Anda. Untuk Windows, lihat layanan EC2Configure di, EC2 Launch in%ProgramFiles%\Amazon\EC2ConfigService, EC2 Launch v2 in %ProgramData%\Amazon\EC2-Windows\Launch\Logs%ProgramData%\Amazon\EC2Launch\log, dan cfn log in. C:\cfn\log

    Anda juga dapat mengonfigurasi AWS CloudFormation template Anda sehingga log dipublikasikan ke Amazon CloudWatch, yang menampilkan log di AWS Management Console sehingga Anda tidak perlu terhubung ke instans Amazon EC2 Anda. Untuk informasi selengkapnya, lihat Melihat CloudFormation log di konsol di Blog Manajemen Aplikasi.

Memecahkan masalah kesalahan

Ketika Anda menemukan kesalahan berikut dengan AWS CloudFormation tumpukan Anda, Anda dapat menggunakan solusi berikut untuk membantu Anda menemukan sumber masalah dan memperbaikinya.

Gagal menghapus tumpukan

Untuk mengatasi situasi ini, coba yang berikut ini:

  • Beberapa sumber daya harus kosong sebelum dapat dihapus. Misalnya, Anda harus menghapus semua objek di bucket Amazon S3 atau menghapus semua instans di grup keamanan Amazon EC2 sebelum Anda dapat menghapus bucket atau grup keamanan.

  • Pastikan Anda memiliki izin IAM yang diperlukan untuk menghapus sumber daya di tumpukan. Selain AWS CloudFormation izin, Anda harus diizinkan untuk menggunakan layanan yang mendasarinya, seperti Amazon S3 atau Amazon EC2.

  • Ketika tumpukan berada dalam DELETE_FAILED status karena AWS CloudFormation tidak dapat menghapus sumber daya, jalankan kembali penghapusan dengan RetainResourcesparameter dan tentukan sumber daya yang AWS CloudFormation tidak dapat dihapus. AWS CloudFormation menghapus tumpukan tanpa menghapus sumber daya yang dipertahankan. Mempertahankan sumber daya berguna saat Anda tidak dapat menghapus sumber daya, seperti bucket S3 yang berisi objek yang ingin Anda simpan, tetapi Anda masih ingin menghapus tumpukan.

    Setelah menghapus tumpukan, Anda dapat menghapus sumber daya yang disimpan secara manual dengan menggunakan AWS layanan terkaitnya.

    Atau, Anda dapat mempertimbangkan untuk menggunakan FORCE_DELETE_STACK opsi dengan DeletionMode parameter. Untuk informasi selengkapnya tentang penghapusan paksa tumpukan, lihat DeleteStack.

  • Anda tidak dapat menghapus tumpukan yang mengaktifkan perlindungan penghentian. Jika Anda mencoba menghapus tumpukan dengan perlindungan penghentian diaktifkan, penghapusan gagal dan tumpukan--termasuk statusnya--tetap tidak berubah. Nonaktifkan perlindungan penghentian pada tumpukan, lalu lakukan operasi penghapusan lagi.

    Ini mencakup tumpukan nested yang tumpukan akarnya memiliki perlindungan penghentian yang aktif. Nonaktifkan perlindungan terminasi pada tumpukan root, lalu lakukan operasi hapus lagi. Sangat disarankan agar Anda tidak menghapus tumpukan nested secara langsung, tetapi hanya menghapusnya sebagai bagian dari menghapus tumpukan akar dan semua sumber dayanya.

    Untuk informasi selengkapnya, lihat Melindungi tumpukan dari terhapus.

  • Untuk semua masalah lain, jika ada AWS Support, Anda dapat membuat AWS Support kasus. Lihat Menghubungi dukungan.

Kesalahan dependensi

Untuk mengatasi kesalahan dependensi, tambahkan atribut DependsOn ke sumber daya yang bergantung pada sumber daya lain dalam templat Anda. Dalam beberapa kasus, Anda harus secara eksplisit mendeklarasikan dependensi sehingga AWS CloudFormation dapat membuat atau menghapus sumber daya dalam urutan yang benar. Misalnya, jika Anda membuat IP Elastis dan VPC dengan gateway Internet di tumpukan yang sama, IP Elastis harus bergantung pada lampiran gateway Internet. Untuk informasi tambahan, lihat DependsOnatribut.

Kesalahan penguraian parameter saat melewati daftar

Saat Anda menggunakan AWS Command Line Interface or AWS CloudFormation untuk meneruskan daftar, tambahkan karakter escape (\) sebelum setiap koma. Contoh berikut menunjukkan bagaimana Anda menentukan parameter input saat menggunakan AWS CLI.

ParameterKey=CIDR,ParameterValue='10.10.0.0/16\,10.10.0.0/24\,10.10.1.0/24'

Izin IAM tidak mencukupi

Ketika Anda bekerja dengan AWS CloudFormation tumpukan, Anda tidak hanya memerlukan izin untuk digunakan AWS CloudFormation, Anda juga harus memiliki izin untuk menggunakan layanan dasar yang dijelaskan dalam template Anda. Misalnya, jika Anda membuat bucket Amazon S3 atau memulai instans Amazon EC2, Anda memerlukan izin ke Amazon S3 atau Amazon EC2. Tinjau kebijakan IAM Anda dan verifikasi bahwa Anda memiliki izin yang diperlukan sebelum bekerja dengan AWS CloudFormation tumpukan. Untuk informasi lebih lanjut lihat,Mengontrol akses dengan AWS Identity and Access Management.

Nilai tidak valid atau properti sumber daya tidak didukung

Saat Anda membuat atau memperbarui AWS CloudFormation tumpukan, tumpukan Anda dapat gagal karena parameter input yang tidak valid, nama properti sumber daya yang tidak didukung, atau nilai properti sumber daya yang tidak didukung. Untuk parameter input, verifikasi bahwa sumber daya ada. Misalnya, saat Anda menentukan key pair Amazon EC2 atau ID VPC, sumber daya harus ada di akun Anda dan di wilayah tempat Anda membuat atau memperbarui tumpukan Anda. Anda dapat menggunakan jenis parameter khusus AWS untuk memastikan bahwa Anda menggunakan nilai yang valid.

Untuk nama dan nilai properti sumber daya, perbarui templat Anda untuk menggunakan nama dan nilai yang valid. Untuk daftar semua sumber daya dan nama propertinya, lihat AWS referensi jenis sumber daya dan properti.

Kuota terlampaui

Verifikasi bahwa Anda tidak mencapai kuota sumber daya. Misalnya, jumlah maksimum default instans On-Demand Amazon EC2 yang dapat Anda luncurkan adalah 5. Jika mencoba membuat lebih banyak instans Amazon EC2 On-Demand daripada kuota akun, pembuatan instans gagal dan Anda menerima kesalahan. Status=start_failed Untuk melihat AWS kuota default berdasarkan layanan, lihat kuota AWS layanan di. Referensi Umum AWS

Untuk AWS CloudFormation kuota dan strategi penyesuaian, lihat. Memahami CloudFormation kuota

Juga, selama pembaruan, jika sumber daya diganti, AWS CloudFormation buat sumber daya baru sebelum menghapus yang lama. Penggantian ini dapat menempatkan akun Anda di atas kuota sumber daya, yang akan menyebabkan pembaruan Anda gagal. Anda dapat menghapus kelebihan sumber daya atau meminta peningkatan kuota.

Tumpukan nested terjebak dalam UPDATE_COMPLETE_CLEANUP_IN_PROGRESS, UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS, atau UPDATE_ROLLBACK_IN_PROGRESS

Tumpukan nested gagal untuk melakukan rollback. Karena potensi dependensi sumber daya antara tumpukan bersarang, AWS CloudFormation tidak mulai membersihkan sumber daya tumpukan bersarang sampai semua tumpukan bersarang telah diperbarui atau telah diputar kembali. Ketika tumpukan bersarang gagal diputar kembali, AWS CloudFormation membatalkan semua operasi, terlepas dari status tumpukan bersarang lainnya. Tumpukan bersarang yang selesai memperbarui atau memutar kembali tetapi tidak menerima sinyal dari AWS CloudFormation untuk mulai membersihkan karena nested lain gagal untuk memutar kembali dalam keadaan UPDATE_COMPLETE_CLEANUP_IN_PROGRESS atauUPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS. Tumpukan nested yang gagal diperbarui tetapi tidak menerima sinyal untuk mulai melakukan rollback berada dalam status UPDATE_ROLLBACK_IN_PROGRESS.

Tumpukan bersarang mungkin gagal diputar kembali karena perubahan yang dibuat di luar AWS CloudFormation, ketika template tumpukan tidak secara akurat mencerminkan status tumpukan. Tumpukan bersarang mungkin juga gagal jika grup Auto Scaling di tumpukan bersarang memiliki periode batas waktu sinyal sumber daya yang tidak mencukupi saat grup dibuat atau diperbarui.

Untuk memperbaiki tumpukan, hubungi AWS Support.

Tidak ada pembaruan untuk dilakukan

Untuk memperbarui AWS CloudFormation tumpukan, Anda harus mengirimkan perubahan nilai template atau parameter ke AWS CloudFormation. Namun, AWS CloudFormation tidak akan mengenali beberapa perubahan template sebagai pembaruan, seperti perubahan pada kebijakan penghapusan, kebijakan pembaruan, deklarasi kondisi, atau deklarasi keluaran. Jika Anda perlu membuat perubahan tersebut tanpa membuat perubahan lain, Anda dapat menambahkan atau mengubah atribut metadata untuk sumber daya mana pun.

Untuk informasi selengkapnya tentang cara mengubah templat selama pembaruan, lihat Mengubah templat tumpukan.

Sumber daya gagal distabilkan selama membuat, memperbarui, atau menghapus operasi tumpukan

Sumber daya tidak merespons karena operasi melebihi periode AWS CloudFormation batas waktu atau AWS layanan terganggu. Untuk gangguan layanan, periksa apakah AWS layanan yang relevan sedang berjalan, lalu coba lagi operasi tumpukan.

Jika AWS layanan telah berhasil berjalan, periksa apakah tumpukan Anda berisi salah satu sumber daya berikut:

  • AWS::AutoScaling::AutoScalingGroup untuk membuat, memperbarui, dan menghapus operasi

  • AWS::CertificateManager::Certificate untuk membuat operasi

  • AWS::CloudFormation::Stack untuk membuat, memperbarui, dan menghapus operasi

  • AWS::ElasticSearch::Domain untuk memperbarui operasi

  • AWS::RDS::DBCluster untuk membuat dan memperbarui operasi

  • AWS::RDS::DBInstance untuk membuat, memperbarui, dan menghapus operasi

  • AWS::Redshift::Cluster untuk memperbarui operasi

Operasi untuk sumber daya ini mungkin memerlukan waktu lebih lama daripada periode waktu tunggu default. Periode waktu tunggu bergantung pada sumber daya dan kredensial yang Anda gunakan. Untuk memperpanjang periode waktu habis, tentukan peran layanan saat Anda melakukan operasi tumpukan. Jika Anda sudah menggunakan peran layanan, atau jika tumpukan Anda berisi sumber daya yang tidak terdaftar, hubungi AWS Support.

Jika tumpukan Anda berada di status UPDATE_ROLLBACK_FAILED, lihat Pembaruan Rollback Gagal.

Grup keamanan tidak ada di VPC

Verifikasi bahwa grup keamanan ada di VPC yang Anda tentukan. Jika grup keamanan ada, pastikan bahwa Anda menentukan ID grup keamanan dan bukan nama grup keamanan. Misalnya, sumber daya AWS::EC2::SecurityGroupIngress memiliki properti SourceSecurityGroupName dan SourceSecurityGroupId. Untuk grup keamanan VPC, Anda harus menggunakan properti SourceSecurityGroupId dan menentukan ID grup keamanan.

Pembaruan rollback gagal

Sumber daya dependen tidak dapat kembali ke status semula, menyebabkan rollback gagal (status UPDATE_ROLLBACK_FAILED). Misalnya, Anda mungkin memiliki tumpukan yang memutar kembali ke instance database lama yang dihapus di luar AWS CloudFormation. Karena AWS CloudFormation tidak tahu database telah dihapus, itu mengasumsikan bahwa instance database masih ada dan mencoba untuk memutar kembali ke sana, menyebabkan pembaruan rollback gagal.

Bergantung pada penyebab kegagalan, Anda dapat memperbaiki kesalahan secara manual dan melanjutkan rollback. Dengan melanjutkan rollback, Anda dapat mengembalikan tumpukan Anda ke status kerja (status UPDATE_ROLLBACK_COMPLETE), dan kemudian mencoba untuk memperbarui tumpukan lagi. Daftar berikut menjelaskan solusi untuk kesalahan umum yang menyebabkan kegagalan pembaruan rollback:

  • Gagal menerima jumlah sinyal yang dibutuhkan

    Gunakan perintah sumber daya sinyal untuk secara manual mengirim jumlah sinyal berhasil yang diperlukan ke sumber daya yang menunggu mereka, dan kemudian lanjutkan memutar kembali pembaruan. Misalnya, selama rollback pembaruan, instance dalam grup Auto Scaling mungkin gagal memberi sinyal keberhasilan dalam durasi waktu tunggu yang ditentukan. Kirim sinyal sukses secara manual ke grup Auto Scaling. Ketika Anda melanjutkan rollback pembaruan, AWS CloudFormation melihat sinyal Anda dan melanjutkan dengan rollback.

  • Perubahan pada sumber daya dilakukan di luar AWS CloudFormation

    Sinkronkan sumber daya secara manual sehingga sesuai dengan templat tumpukan asli, lalu lanjutkan rollback pembaruan. Misalnya, jika Anda secara manual menghapus sumber daya yang AWS CloudFormation mencoba memutar kembali, Anda harus secara manual membuat sumber daya tersebut dengan nama dan properti yang sama dengan yang dimilikinya di tumpukan asli.

  • Izin tidak cukup

    Periksa apakah Anda memiliki izin IAM yang cukup untuk memodifikasi sumber daya, dan kemudian lanjutkan pembaruan rollback. Misalnya, kebijakan IAM Anda mungkin memungkinkan Anda membuat bucket S3, tetapi tidak mengubah bucket. Tambahkan tindakan modifikasi ke kebijakan Anda.

  • Token keamanan tidak valid

    AWS CloudFormation membutuhkan satu set kredensil baru. Tidak ada perubahan yang diperlukan. Lanjutkan rollback pembaruan, yang menyegarkan kredensial.

  • Kesalahan pembatasan

    Hapus sumber daya yang tidak Anda perlukan atau minta peningkatan kuota, lalu lanjutkan memutar kembali pembaruan. Misalnya, jika kuota akun Anda untuk jumlah instans EC2 On-Demand adalah 5 dan rollback pembaruan melebihi kuota tersebut, maka akan gagal.

  • Sumber daya tidak stabil

    Sumber daya tidak merespons karena operasi mungkin telah melebihi periode AWS CloudFormation batas waktu atau AWS layanan mungkin telah terganggu. Tidak ada perubahan yang diperlukan. Setelah operasi sumber daya selesai atau AWS layanan kembali beroperasi, lanjutkan memutar kembali pembaruan.

Untuk melanjutkan memutar kembali pembaruan, Anda dapat menggunakan AWS CloudFormation konsol atau antarmuka baris AWS perintah (AWS CLI). Untuk informasi selengkapnya, lihat Terus mengembalikan pembaruan.

Jika tidak ada solusi ini yang berhasil, Anda dapat melewati sumber daya yang AWS CloudFormation tidak berhasil diputar kembali. Untuk informasi selengkapnya, lihat ResourcesToSkip parameter untuk operasi ContinueUpdateRollbackAPI di Referensi AWS CloudFormation API. AWS CloudFormation menetapkan status sumber daya yang ditentukan ke UPDATE_COMPLETE dan terus memutar kembali tumpukan. Setelah rollback selesai, status sumber daya yang dilewati akan tidak konsisten dengan status sumber daya di templat tumpukan. Sebelum Anda melakukan pembaruan tumpukan lain, Anda harus mengubah sumber daya atau memperbarui tumpukan agar konsisten satu sama lain. Jika tidak, pembaruan tumpukan berikutnya mungkin akan gagal dan membuat tumpukan Anda tidak dapat dipulihkan.

Kondisi tunggu tidak menerima jumlah sinyal yang diperlukan dari instans Amazon EC2

Untuk mengatasi situasi ini, coba yang berikut ini:

  • Pastikan AMI yang Anda gunakan telah menginstal skrip AWS CloudFormation helper. Jika AMI tidak menyertakan skrip pembantu, Anda juga dapat mengunduhnya ke instans Anda. Untuk informasi selengkapnya, lihat CloudFormation referensi skrip pembantu.

  • Verifikasi bahwa perintah cfn-signal berhasil dijalankan di instans. Anda dapat melihat log, seperti /var/log/cloud-init.log atau /var/log/cfn-init.log, untuk membantu Anda men-debug peluncuran instans. Anda dapat mengambil log dengan masuk ke instance Anda, tetapi Anda harus menonaktifkan rollback pada kegagalan atau AWS CloudFormation menghapus instance setelah tumpukan Anda gagal dibuat. Anda juga dapat mempublikasikan log ke Amazon CloudWatch. Untuk Windows, Anda dapat melihat log cfn di C:\cfn\log dan log layanan EC2Config di %ProgramFiles%\Amazon\EC2ConfigService.

  • Verifikasi bahwa instans tidak memiliki koneksi ke internet. Jika instans berada di VPC, instans harus dapat terhubung ke Internet melalui perangkat NAT jika berada di subnet pribadi atau melalui gateway Internet jika berada di subnet publik. Untuk menguji koneksi Internet instans, coba akses halaman web publik, seperti http://aws.amazon.com. Misalnya, Anda dapat menjalankan perintah berikut pada instans. Ini harus mengembalikan kode status HTTP 200.

    curl -I https://aws.amazon.com

    Untuk informasi tentang mengonfigurasi perangkat NAT, lihat NAT di Panduan Pengguna Amazon VPC.

Sumber daya dihilangkan dari tumpukan tetapi tidak dihapus

Selama pembaruan tumpukan, CloudFormation telah menghapus sumber daya dari tumpukan tetapi tidak menghapus sumber daya. Sumber daya masih ada, tetapi tidak lagi dapat diakses melalui CloudFormation. Hal ini dapat terjadi selama pembaruan tumpukan di mana:

  • CloudFormation perlu mengganti sumber daya yang ada, jadi pertama-tama menciptakan sumber daya baru, kemudian mencoba menghapus sumber daya lama.

  • Anda telah menghapus sumber daya dari template tumpukan, jadi CloudFormation cobalah untuk menghapus sumber daya dari tumpukan.

Namun, mungkin ada kasus di mana tidak CloudFormation dapat menghapus sumber daya. Misalnya, jika pengguna tidak memiliki izin untuk menghapus sumber daya dari jenis tertentu.

CloudFormation mencoba untuk menghapus sumber daya lama tiga kali. Jika tidak CloudFormation dapat menghapus sumber daya lama, itu menghapus sumber daya lama dari tumpukan dan terus memperbarui tumpukan. Ketika pembaruan tumpukan selesai, CloudFormation mengeluarkan peristiwa UPDATE_COMPLETE tumpukan, tetapi menyertakan StatusReason yang menyatakan bahwa satu atau beberapa sumber daya tidak dapat dihapus. CloudFormation juga mengeluarkan DELETE_FAILED acara untuk sumber daya tertentu, dengan yang sesuai StatusReason memberikan detail lebih lanjut tentang mengapa CloudFormation gagal menghapus sumber daya.

Untuk mengatasi situasi ini, hapus sumber daya langsung menggunakan konsol atau API untuk layanan yang mendasari.

Menghubungi dukungan

Jika sudah AWS Support, Anda dapat membuat kasus dukungan teknis di https://console.aws.amazon.com/support/home#/. Sebelum Anda menghubungi dukungan, kumpulkan informasi berikut ini:

  • ID tumpukan. Anda dapat menemukan ID tumpukan di tab Gambaran Umum dari konsol AWS CloudFormation. Untuk informasi selengkapnya, lihat Melihat data AWS CloudFormation tumpukan dan sumber daya di AWS Management Console.

    penting

    Jangan membuat perubahan pada tumpukan di luar AWS CloudFormation. Membuat perubahan pada tumpukan Anda di luar AWS CloudFormation mungkin menempatkan tumpukan Anda dalam keadaan tidak dapat dipulihkan.

  • Pesan kesalahan tumpukan apa pun. Untuk informasi tentang melihat pesan kesalahan tumpukan, lihat bagian Panduan pemecahan masalah.

  • Untuk masalah Amazon EC2, kumpulkan log cloud-init dan cfn. Log ini dipublikasikan di instans Amazon EC2 di direktori. /var/log/ Log ini menangkap proses dan output perintah saat instans Anda sedang disiapkan. Untuk Windows, lihat layanan EC2Configure dan log cfn di %ProgramFiles%\Amazon\EC2ConfigService dan C:\cfn\log.

Anda juga dapat mencari jawaban dan memposting pertanyaan di forum AWS CloudFormation.