Share
Embed
Terraform のための AVM を使った IaC のモジュール戦略 / Azure Verified Modules for Terraform
HashiTalks: Japan 2024 で Azure Verified Modules for Terraform について話をしました。
YouTube: https://www.youtube.com/live/XaAuWXZ28lA?si=1UUfEZE1kI1J4_ld
Event: https://events.hashicorp.com/hashitalksjapan
Kodai Sakabe
November 14, 2024
Transcript
12 slides
-
ຊࢿྉใఏڙͷΈΛతͱ͓ͯ͠Γɺຊࢿྉʹهࡌ͞Ε͍ͯΔใɺຊࢿྉ࡞࣌ͰͷϚΠΫϩιϑτͷݟղΛࣔͨ͠ͷͰ͢ɻঢ়گͷมԽʹΑΓɺ༰มߋ͞ΕΔ߹͕͋Γ·͢ɻຊࢿྉʹදه͞Ε͍ͯΔ༰ʢఏࣔ͞Ε͍ͯΔ݅ΛؚΈ·͢ʣɺوࣾͱͷ༗ޮͳܖΛ௨ܾͯ͡ఆ͞Ε·͢ɻͦΕ·Ͱɺਖ਼ࣜʹ֬ఆ͢ΔͷͰ͋Γ·ͤΜɻ ैͬͯɺຊࢿྉͷهࡌ༰ͱҟͳΔ߹͕͋Γ·͢ɻ·ͨɺຊࢿྉʹهࡌ͞Ε͍ͯΔՁ͍֨ͣΕɺผஈͷදه͕ͳ͍ݶΓɺࢀߟՁ֨ͱͳΓ·͢ɻوࣾͷ࠷ऴతͳߪೖՁ֨ɺوࣾͷϦηϥʔ༷ʹΑΓܾఆ͞Ε·͢ɻϚΠΫϩιϑτɺຊࢿྉͷใʹରͯ͠໌ࣔతɺࣔత·ͨ๏తͳɺ͍͔ͳΔอূߦ͍·ͤΜɻ.JDSPTPGU$PSQPSBUJPO"MMSJHIUTSFTFSWFE "[VSF7FSJGJFE.PEVMFT 8IZ)PX8IBU w (6*Ͱͷૢ࡞ w *B$%FW0QTελʔτ
w ίʔυͷ૿Ճͱ w ߹ཧԽΛ࢝ΊΔ w 044ʹ͋Δ*B$ϦϙδτϦࢀߟ w ͦΕͰܧଓతͳӡ༻͕͍͠ w ެ͔ࣜΒαϙʔτ͢ΔϞδϡʔϧΛެ։ Problem Statement from our Customers Customer operates cloud with ClickOps Customer starts adopting basic IaC and DevOps practices Proliferation of code, lots of repeated lines Customer tries to decouple repeated code & rationalize Customer looks for open-source IaC repos There are many IaC repos with their own standards Customer picks one repo The repo is not officially supported by Microsoft, or the repo gets abandoned over time Solution: introduce the official Microsoft approach, Azure Verified Modules (AVM) -
ຊࢿྉใఏڙͷΈΛతͱ͓ͯ͠Γɺຊࢿྉʹهࡌ͞Ε͍ͯΔใɺຊࢿྉ࡞࣌ͰͷϚΠΫϩιϑτͷݟղΛࣔͨ͠ͷͰ͢ɻঢ়گͷมԽʹΑΓɺ༰มߋ͞ΕΔ߹͕͋Γ·͢ɻຊࢿྉʹදه͞Ε͍ͯΔ༰ʢఏࣔ͞Ε͍ͯΔ݅ΛؚΈ·͢ʣɺوࣾͱͷ༗ޮͳܖΛ௨ܾͯ͡ఆ͞Ε·͢ɻͦΕ·Ͱɺਖ਼ࣜʹ֬ఆ͢ΔͷͰ͋Γ·ͤΜɻ ैͬͯɺຊࢿྉͷهࡌ༰ͱҟͳΔ߹͕͋Γ·͢ɻ·ͨɺຊࢿྉʹهࡌ͞Ε͍ͯΔՁ͍֨ͣΕɺผஈͷදه͕ͳ͍ݶΓɺࢀߟՁ֨ͱͳΓ·͢ɻوࣾͷ࠷ऴతͳߪೖՁ֨ɺوࣾͷϦηϥʔ༷ʹΑΓܾఆ͞Ε·͢ɻϚΠΫϩιϑτɺຊࢿྉͷใʹରͯ͠໌ࣔతɺࣔత·ͨ๏తͳɺ͍͔ͳΔอূߦ͍·ͤΜɻ.JDSPTPGU$PSQPSBUJPO"MMSJHIUTSFTFSWFE "[VSF7FSJGJFE.PEVMFT 8IZ)PX8IBU w "7.ɺϞδϡʔϧΛ౷߹ͱઃఆ͢ΔͨΊͷίϛϡχςΟओಋͷ׆ಈ w ϞδϡʔϧɺͭͷλεΫઐ༻ͷϦιʔεάϧʔϓΛΧϓηϧԽ
w ϕετϓϥΫςΟεΛ༻ͯ͠.JDSPTPGUΨΠμϯε 8"' ΛମܥԽ IUUQTB[VSFHJUIVCJP"[VSF7FSJ fi FE.PEVMFTSFTPVSDFTQSFTFOUBUJPOT -
ຊࢿྉใఏڙͷΈΛతͱ͓ͯ͠Γɺຊࢿྉʹهࡌ͞Ε͍ͯΔใɺຊࢿྉ࡞࣌ͰͷϚΠΫϩιϑτͷݟղΛࣔͨ͠ͷͰ͢ɻঢ়گͷมԽʹΑΓɺ༰มߋ͞ΕΔ߹͕͋Γ·͢ɻຊࢿྉʹදه͞Ε͍ͯΔ༰ʢఏࣔ͞Ε͍ͯΔ݅ΛؚΈ·͢ʣɺوࣾͱͷ༗ޮͳܖΛ௨ܾͯ͡ఆ͞Ε·͢ɻͦΕ·Ͱɺਖ਼ࣜʹ֬ఆ͢ΔͷͰ͋Γ·ͤΜɻ ैͬͯɺຊࢿྉͷهࡌ༰ͱҟͳΔ߹͕͋Γ·͢ɻ·ͨɺຊࢿྉʹهࡌ͞Ε͍ͯΔՁ͍֨ͣΕɺผஈͷදه͕ͳ͍ݶΓɺࢀߟՁ֨ͱͳΓ·͢ɻوࣾͷ࠷ऴతͳߪೖՁ֨ɺوࣾͷϦηϥʔ༷ʹΑΓܾఆ͞Ε·͢ɻϚΠΫϩιϑτɺຊࢿྉͷใʹରͯ͠໌ࣔతɺࣔత·ͨ๏తͳɺ͍͔ͳΔอূߦ͍·ͤΜɻ.JDSPTPGU$PSQPSBUJPO"MMSJHIUTSFTFSWFE Ͳ͏ͬͯ͏ͷ͔ʁ IUUQTMFBSONJDSPTPGUDPNFOVTTBNQMFTB[VSFTBNQMFTBWNUFSSBGPSNMBCTBWNUFSSBGPSNMBCT IUUQTHJUIVCDPNB[VSFTBNQMFTBWNUFSSBGPSNMBCT w νϡʔτϦΞϧͰࢼ͢ w
"7.UFSSBGPSNSFTPVSDFNPEVMFTͰҰཡ͔Βબ w ྫ͑BWNSFTBQQDPOUBJOFSBQQͷϦϯΫઌ5FSBGPSN3FHJTUSZͱ ͦͷઌͷ͍ํ͜Ε·Ͱ௨Γ -
ຊࢿྉใఏڙͷΈΛతͱ͓ͯ͠Γɺຊࢿྉʹهࡌ͞Ε͍ͯΔใɺຊࢿྉ࡞࣌ͰͷϚΠΫϩιϑτͷݟղΛࣔͨ͠ͷͰ͢ɻঢ়گͷมԽʹΑΓɺ༰มߋ͞ΕΔ߹͕͋Γ·͢ɻຊࢿྉʹදه͞Ε͍ͯΔ༰ʢఏࣔ͞Ε͍ͯΔ݅ΛؚΈ·͢ʣɺوࣾͱͷ༗ޮͳܖΛ௨ܾͯ͡ఆ͞Ε·͢ɻͦΕ·Ͱɺਖ਼ࣜʹ֬ఆ͢ΔͷͰ͋Γ·ͤΜɻ ैͬͯɺຊࢿྉͷهࡌ༰ͱҟͳΔ߹͕͋Γ·͢ɻ·ͨɺຊࢿྉʹهࡌ͞Ε͍ͯΔՁ͍֨ͣΕɺผஈͷදه͕ͳ͍ݶΓɺࢀߟՁ֨ͱͳΓ·͢ɻوࣾͷ࠷ऴతͳߪೖՁ֨ɺوࣾͷϦηϥʔ༷ʹΑΓܾఆ͞Ε·͢ɻϚΠΫϩιϑτɺຊࢿྉͷใʹରͯ͠໌ࣔతɺࣔత·ͨ๏తͳɺ͍͔ͳΔอূߦ͍·ͤΜɻ.JDSPTPGU$PSQPSBUJPO"MMSJHIUTSFTFSWFE Ͳ͏ͬͯ࡞͍ͬͯΔͷ͔ʁ IUUQTB[VSFHJUIVCJP"[VSF7FSJ fi FE.PEVMFTDPOUSJCVUJOHQSPDFTT w ެࣜϖʔδͷϓϩηεΛ֬ೝ
w .PEVMF1SPQPTBMͷJTTVF͔Βελʔτ w <.PEVMF1SPQPTBM>ΑΓఏҊ w ݱࡏͷ׆ಈͪ͜Β"[VSF"[VSF7FSJ fi FE.PEVMFT w Ϟδϡʔϧʹ0OXFSͷΞαΠϯ w ίϯτϦϏϡʔγϣϯ • 5FSSBGPSN$POUSJCVUJPO(VJEF • 1SFSFRVJTJUFT • $PNQPTJUJPO • 5FSSBGPSNDPOUSJCVUJPOGMPX -
ຊࢿྉใఏڙͷΈΛతͱ͓ͯ͠Γɺຊࢿྉʹهࡌ͞Ε͍ͯΔใɺຊࢿྉ࡞࣌ͰͷϚΠΫϩιϑτͷݟղΛࣔͨ͠ͷͰ͢ɻঢ়گͷมԽʹΑΓɺ༰มߋ͞ΕΔ߹͕͋Γ·͢ɻຊࢿྉʹදه͞Ε͍ͯΔ༰ʢఏࣔ͞Ε͍ͯΔ݅ΛؚΈ·͢ʣɺوࣾͱͷ༗ޮͳܖΛ௨ܾͯ͡ఆ͞Ε·͢ɻͦΕ·Ͱɺਖ਼ࣜʹ֬ఆ͢ΔͷͰ͋Γ·ͤΜɻ ैͬͯɺຊࢿྉͷهࡌ༰ͱҟͳΔ߹͕͋Γ·͢ɻ·ͨɺຊࢿྉʹهࡌ͞Ε͍ͯΔՁ͍֨ͣΕɺผஈͷදه͕ͳ͍ݶΓɺࢀߟՁ֨ͱͳΓ·͢ɻوࣾͷ࠷ऴతͳߪೖՁ֨ɺوࣾͷϦηϥʔ༷ʹΑΓܾఆ͞Ε·͢ɻϚΠΫϩιϑτɺຊࢿྉͷใʹରͯ͠໌ࣔతɺࣔత·ͨ๏తͳɺ͍͔ͳΔอূߦ͍·ͤΜɻ.JDSPTPGU$PSQPSBUJPO"MMSJHIUTSFTFSWFE Ͳ͏ͬͯ࡞͍ͬͯΔͷ͔ʁ نͱUFNQMBUF w IUUQTB[VSFHJUIVCJP"[VSF7FSJ fi FE.PEVMFTDPOUSJCVUJOH
UFSSBGPSNDPNQPTJUJPOEJSFDUPSZBOE fi MFTUSVDUVSF w IUUQTHJUIVCDPNLPVEBJJJTBNQMFUFSSBGPSNB[VSFSNBWN UFNQMBUF -
ຊࢿྉใఏڙͷΈΛతͱ͓ͯ͠Γɺຊࢿྉʹهࡌ͞Ε͍ͯΔใɺຊࢿྉ࡞࣌ͰͷϚΠΫϩιϑτͷݟղΛࣔͨ͠ͷͰ͢ɻঢ়گͷมԽʹΑΓɺ༰มߋ͞ΕΔ߹͕͋Γ·͢ɻຊࢿྉʹදه͞Ε͍ͯΔ༰ʢఏࣔ͞Ε͍ͯΔ݅ΛؚΈ·͢ʣɺوࣾͱͷ༗ޮͳܖΛ௨ܾͯ͡ఆ͞Ε·͢ɻͦΕ·Ͱɺਖ਼ࣜʹ֬ఆ͢ΔͷͰ͋Γ·ͤΜɻ ैͬͯɺຊࢿྉͷهࡌ༰ͱҟͳΔ߹͕͋Γ·͢ɻ·ͨɺຊࢿྉʹهࡌ͞Ε͍ͯΔՁ͍֨ͣΕɺผஈͷදه͕ͳ͍ݶΓɺࢀߟՁ֨ͱͳΓ·͢ɻوࣾͷ࠷ऴతͳߪೖՁ֨ɺوࣾͷϦηϥʔ༷ʹΑΓܾఆ͞Ε·͢ɻϚΠΫϩιϑτɺຊࢿྉͷใʹରͯ͠໌ࣔతɺࣔత·ͨ๏తͳɺ͍͔ͳΔอূߦ͍·ͤΜɻ.JDSPTPGU$PSQPSBUJPO"MMSJHIUTSFTFSWFE ࢀߟϦϯΫ "7.ใҰཡ IUUQTBLBNTBWNSFTPVSDFT "7.ͷར༻ IUUQTMFBSONJDSPTPGUDPNFOVTTBNQMFTB[VSFTBNQMFTBWNUFSSBGPSNMBCTBWNUFSSBGPSNMBCT IUUQTHJUIVCDPNB[VSFTBNQMFTBWNUFSSBGPSNMBCT
IUUQTB[VSFHJUIVCJP"[VSF7FSJ fi FE.PEVMFTJOEFYFTUFSSBGPSNUGSFTPVSDFNPEVMFT ίϯτϦϏϡʔγϣϯ IUUQTB[VSFHJUIVCJP"[VSF7FSJ fi FE.PEVMFTDPOUSJCVUJOHQSPDFTT IUUQTB[VSFHJUIVCJP"[VSF7FSJ fi FE.PEVMFTDPOUSJCVUJOHUFSSBGPSN IUUQTB[VSFHJUIVCJP"[VSF7FSJ fi FE.PEVMFTDPOUSJCVUJOHUFSSBGPSNQSFSFRVJTJUFT IUUQTB[VSFHJUIVCJP"[VSF7FSJ fi FE.PEVMFTDPOUSJCVUJOHUFSSBGPSNDPNQPTJUJPO IUUQTB[VSFHJUIVCJP"[VSF7FSJ fi FE.PEVMFTDPOUSJCVUJOHUFSSBGPSNUFSSBGPSNDPOUSJCVUJPO fl PX نͱςϯϓϨʔτ IUUQTB[VSFHJUIVCJP"[VSF7FSJ fi FE.PEVMFTDPOUSJCVUJOHUFSSBGPSNDPNQPTJUJPOEJSFDUPSZBOE fi MFTUSVDUVSF IUUQTHJUIVCDPNLPVEBJJJTBNQMFUFSSBGPSNB[VSFSNBWNUFNQMBUF