全リソースぶっ壊し回避のためのTerraform構成 / terraform-constitution

12a5cec7a54018170b1a009731acf477?s=47 VTRyo
April 06, 2018

全リソースぶっ壊し回避のためのTerraform構成 / terraform-constitution

2018/4/6 WEBエンジニア勉強会06 LT枠
資料内コード:https://github.com/VTRyo/terraform-my-template
blog: https://tech.vtryo.me

12a5cec7a54018170b1a009731acf477?s=128

VTRyo

April 06, 2018
Tweet

Transcript

  1. શϦιʔεͿͬյ͠ճආͷͨΊͷ 5FSSBGPSNߏ੒ *OGSB43&ɹ3ZP

  2. ͸͡ΊΔલʹ ڧؾͳλΠτϧͰ͕ͨ͠ શϦιʔε͕͍͖ͳΓ ͿͬյΕΔ͜ͱ͸ ͋Γ·ͤΜʂ͆

  3. ͸͡ΊΔલʹ Ͱ΋ɺ஌Βͳ͍ͱةͳ͍͜ͱ͕ ͋Δπʔϧ ϦεΫճආͳߏ੒Λ͝঺հ

  4. ໨࣍ ٱʑʹٕज़తͳ࿩͠·͢ ɾࣗݾ঺հ ɾ5FSSBGPSNͬͯʁ ɾ࣮ࡍʹӡ༻͍ͯ͠Δߏ੒ ɾҰ೥ӡ༻ͯ͠Έͯͷ࿩

  5. ͓લ JT ͩΕʁ ͬͦࣗ͘͞ݾ঺հ͍͘Αʔ

  6. 8&#ܥͰָ͘͠΍͓ͬͯΓ·͢ ೥ͷ3ZP

  7. ָ͘͠ͳ͔ͬͨͱ͖ͷ࿩͸ͪ͜Β ͦΕ·Ͱͷ3ZP ɾTQBʲήετT@IWʳ ָ͍͠ɺۀ຿ޮ཰ԽېࢭͷϒϥοΫ4&4اۀ͔Βͷ୤ग़ ɾ4JFS࣍੥͚͔Β+PC$IBOHF

  8. ࠓ೔͸Πϯϑϥ͡Όͳ͍ਓ޲͚ʹ΋෍ڭͰ͖Δ͔ͳʂʁ 5FSSBGPSNJTԿʁ

  9. Πϯϑϥ͡Όͳ͍ਓ޲͚ʹ؆୯ʹ 5FSSBGPSNJTԿʁ ɾ"84ͳͲͷϦιʔεΛίʔυͰ؅ཧͰ͖Δ $MPVE͚ͩ͡Όͳ͘ɺ1BB4΍4BB4΋αϙʔτ

  10. Πϯϑϥ͡Όͳ͍ਓ޲͚ʹ؆୯ʹ 5FSSBGPSNJTԿʁ ɾ"84ͳͲͷϦιʔεΛίʔυͰ؅ཧͰ͖Δ ࠓճ͸"84Λ؅ཧͨ͠ͱ͖ͷ͓࿩

  11. ಋೖͷϝϦοτ͍Ζ͍Ζ 5FSSBGPSNJTԿʁ ޻਺࡟ݮ ਓҝతϛεճආ Ϧιʔεফ͠๨Ε๷ࢭ ίʔυԽ͞ΕͨΠϯϑϥʹ͸ɺ༷ʑͳϝϦοτ͕͋Δ

  12. "OTJCMF΍$IFGͱ͸Կ͕ҧ͏ʁ 5FSSBGPSNJTԿʁ 5FSSBGPSNͱ"OTJCMFͰ͸ಘҙͳϨΠϠʔ͕ҧ͏ʂ

  13. Ұ೥΋΍Δͱ͍Ζ͍Ζ͋Δ 5FSSBGPSNΛҰ೥ӡ༻ͯ͠Έͯͷ࿩

  14. Ұ೥΋΍Δͱ͍Ζ͍Ζ͋Δ 5FSSBGPSNΛҰ೥ӡ༻ͯ͠Έͯͷ࿩ ৽نߏங΋ Β͘Β͘ Ϧιʔε͕࠶࡞੒ʂʁ ॻ͚Δਓ͕গͳ͍ खಈͰ Ϧιʔεมߋ͢Δͳʂ ྑ͍͜ͱѱ͍͜ͱ͋Δ͚Ͳɺ5FSSBGPSN͸ϓϩάϥϚϒϧͩΑʂ

  15. ৽نߏங΋Β͘Β͘ 5FSSBGPSNΛҰ೥ӡ༻ͯ͠Έͯͷ࿩ ͙͢ফͤΔ Կ౓Ͱ΋ಉ͡αʔόΛ ߏஙͰ͖Δ Ϧιʔεઅ໿ ςετͱͷ਌࿨ੑ ίʔυʹΑΔ؅ཧͷϝϦοτ͸ࣗಈԽ ؀ڥ૿ஙͳͲ΋εϐʔσΟʹͰ͖Δ

  16. ॻ͚Δਓ͕গͳ͍ 5FSSBGPSNΛҰ೥ӡ༻ͯ͠Έͯͷ࿩ ͍͍ͭͭ(6*Ͱ ΍Γ͕ͪ ֶशίετ Πϯϑϥઐ೚ऀ͸ ίʔυ͕ॻ͚ͳ͔ͬͨΓ νʔϜͰӡ༻Ͱ͖ͯ ॻ͚Δͱݴ͑Δ ͔͘ݴ͏ࢲ΋࠷ॳ͸ฉ͖ͳ͕Β࢝Ίͨ

  17. Ϧιʔε͕࠶࡞੒ʂʁ 5FSSBGPSNΛҰ೥ӡ༻ͯ͠Έͯͷ࿩ UFSSBGPSNUGTUBUFϑΝΠϧ ͷ؅ཧϛε 4(͕ফ͑ͨʂ ٯʹফ͍ͨ͠Ϧιʔε͕ ফ͑ͳ͍X

  18. खಈͰϦιʔεมߋ͢Δͳʂ 5FSSBGPSNΛҰ೥ӡ༻ͯ͠Έͯͷ࿩ ୭͔4(௥Ճͨ͠Ͱ͠ΐʂ ίʔυϝϯςͯ͠ͳ͍͠ ઃఆมߋͲ͜Ͱ͚ͨͬ͠

  19. ͔ͭͯͷߏ੒ ࣮ࡍʹӡ༻͍ͯ͠Δߏ੒ ͳΜͰͦΜͳ͜ͱ͕ى͖Δʁ

  20. ͔ͭͯͷߏ੒ ࣮ࡍʹӡ༻͍ͯ͠Δߏ੒ IUUQTHPPHM9)B#( ͱʹ͔͘ϝϯς͠ʹ͍͘ߏ੒

  21. ࠓ͸ͪ͜Β ࣮ࡍʹӡ༻͍ͯ͠Δߏ੒ ɾϝϯς͠΍͘͢ ɾΠϛϡʔλϒϧϦιʔεͱ /PUΠϛϡʔλϒϧϦιʔε ɾ؀ڥ͝ͱʹ෼͚Δ IUUQTHPPHM9)B#( ֤؀ڥ͝ͱʹ͔͠UFSSBGPSNBQQMZ͸ଧͨͳ͍ ˠʢϝϯςγ΍ؚ͢͞ΊͯʣϦεΫ෼ࢄʹͭͳ͕Δ

  22. ࠷ॳ͔Β෼͚ͱ͚͹Α͔ͬͨͷͰ͸ʁ ࣮ࡍʹӡ༻͍ͯ͠Δߏ੒ IUUQTHPPHM9)B#(

  23. ͔ΜͨΜʹݴ͚ͬͨͲ݁ߏ෼͚Δͷେมͩͬͨ ࣮ࡍʹӡ༻͍ͯ͠Δߏ੒ ɾଞͷσΟϨΫτϦͷม਺Λ ɹࢀরͰ͖ͳ͍໰୊ͱ͔ ɹʢPVUQVUUG͕ͳ͍ͱͩΊʣ IUUQTHPPHM9)B#(

  24. ͦͯ͜͠͏ͳͬͨ ࣮ࡍʹӡ༻͍ͯ͠Δߏ੒ ɾTUH EFW͸DPNNPO ɹͷ71$*%Λࢀর͢Δ ɾPVUQVUUGͰ ɹࢀরՄೳʹͤ͞Δ IUUQTHPPHM9)B#( ɾม਺ϑΝΠϧͱ ɹϦιʔεϑΝΠϧ͸෼͚Δ

  25. ॳݟͩͱ΍΍ෳࡶʹݟ͑Δ໰୊ ࣮ࡍʹӡ༻͍ͯ͠Δߏ੒ IUUQTHPPHM9)B#( 5FSSBGPSN͸+40/Λվ଄ͨ͠)$-ͱ͍͏ݴޠͰهड़

  26. ม਺ϑΝΠϧ͸؆ૉ͔ͭ%3:ʹ ࣮ࡍʹӡ༻͍ͯ͠Δߏ੒ IUUQTHPPHM9)B#( .BQܕͰهड़ͨ͠ม਺ϑΝΠϧɻಡΈ΍͘͢ͶʁʢυϠ

  27. ͔ͳΓϝϯςφϯε͠΍͘͢ͳͬͨʂ ࣮ࡍʹӡ༻͍ͯ͠Δߏ੒ IUUQTHPPHM9)B#( ϝϯς͠΍͢͞͸Ϧιʔεഁյͷճආʹ΋ͭͳ͕Δ

  28. Ϧιʔεഁյͱ͍͑͹UFSSBGPSNUGTUBUFϑΝΠϧ ͓·͚ʢͰ΋ॏཁʣ ɾCBDLFOEUG #BDLFOEUGʹTͰϑΝΠϧΛอ؅ͤ͞ΔઃఆΛهड़ ɾ4ͳͲϦϞʔτʹ ɹอ؅͢Δ IUUQTHPPHM9)B#( ɹ͜ͷϑΝΠϧ͕ϦιʔεΛ؅ཧɻ ɹ؅ཧΛଵΔͱϦιʔε͕ফ͑ͨΓ͢ΔͷͰཁ஫ҙ

  29. ͲΜͳߏ੒Λͱ͍͚ͬͯ͹ΑΓΑ͍͔ʁ ·ͱΊ IUUQTHPPHM9)B#( ϝϯςͷ͠΍͢͞͸ةݥΛະવʹ๷͗·͢ʂ ɾ؀ڥผʹ෼͚Δ ɾมߋΛ͠ͳ͍/PUΠϛϡʔλϒϧͳϦιʔε͸ผʹ͢Δ ɾUFSSBGPSNUGTUBUFͷ؅ཧΛ࣮֬ʹ͢ΔʢνʔϜ։ൃ͸ಛʹʣ ɾม਺͸.BQܕͰॻ͍ͨ΄͏͕ݟ΍͍͢ʂ

  30. શϦιʔεͿͬյ͠ճආͷͨΊͷ 5FSSBGPSNߏ੒ *OGSB43&ɹ3ZP ׬