Upgrade to Pro — share decks privately, control downloads, hide ads and more …

테라폼 도입기: 클라우드 인프라스트럭처 코드로 재정의하기


Afeb8054efb8e03aab4ed7d90a52f11c?s=47 nacyot
January 13, 2018

테라폼 도입기: 클라우드 인프라스트럭처 코드로 재정의하기


Afeb8054efb8e03aab4ed7d90a52f11c?s=128

nacyot

January 13, 2018
Tweet

Transcript

  1. 않5FSSBGPSN솒핓믾 ,PSFB%FW0QT.FFUVQ !OBDZP@U 않푾슪핆않큲얻슪옪핺헣픦믾


  2. ˖ 슪옪컪픦핆않큲얻 ˖ 않5FSSBGPSN콚맪퐎)$-믾 ˖ "84읺콚큲읊않픊옪핺헣픦 ˖ 핆않큲얻픦짪헒뫊않 폲쁦핂퍊믾훊헪

  3. 않 ˑ8SJUF 1MBO BOE$SFBUF*OGSBTUSVDUVSFBT$PEF˒ ˑ핆않큲얻읊슪옪컪핟컿 몒 캫컿쁢솒묺˒ 5FSSBGPSN

  4. 않 ˑ8SJUF 1MBO BOE$SFBUF*OGSBTUSVDUVSFBT$PEF˒ ˑ핆않큲얻읊슪옪컪핟컿 몒 캫컿쁢솒묺˒ 5FSSBGPSN

  5. 슪옪컪픦핆않큲얻 핆않큲얻읊샎쁢빦픦얺삲핒 *OGSBTUSVDUVSFBT$PEF *B$

  6. 핆않큲얻픦헣픦 ˖ 핆않큲얻쁢읺콚큲슲픦힟 ˖ 줊읺헏몋뻲풚핳찒 컪쩒슿 ˖ 않푾슪많캏핞풞 잲삖힎슪컪찒큲슿 ˖

    슪옪컪픦핆않큲얻*B$솒묺 ˖ 읺콚큲읊슪옪뫎읺쁢솒묺
  7. 슪옪컪픦핆않큲얻 슪옪읺콚큲읊뫎읺쁢솒묺슲 ˖ 컪쩒큲잋4FSWFS4DSJQUJOH ˖ 컲헣뫎읺$POHVSBUJPO.BOBHFNFOU ˖ 읺콚큲컮펆솒묺3FTPVSDF.BOBHFNFOU

  8. 슪옪컪픦핆않큲얻 슪옪읺콚큲읊뫎읺쁢솒묺슲 ˖ 컪쩒큲잋4FSWFS4DSJQUJOH ˖ 컲헣뫎읺$POHVSBUJPO.BOBHFNFOU ˖ 읺콚큲컮펆솒묺3FTPVSDF.BOBHFNFOU

  9. ҙܻ ߑߨ ؀࢚ ࢸ੿ ҙܻ Configuration Management ௏٘ ࢲߡ ܻࣗझ

    ࢶ঱ بҳ
 Resource Management ௏٘ ܻࣗझ
  10. ҙܻ ߑߨ ؀࢚ ࢸ੿ ҙܻ Configuration Management ௏٘ ࢲߡ ܻࣗझ

    ࢶ঱ بҳ
 Resource Management ௏٘ ܻࣗझ
  11. ҙܻ ߑߨ ؀࢚ ࢸ੿ ҙܻ Configuration Management ௏٘ ࢲߡ ܻࣗझ

    ࢶ঱ بҳ
 Resource Management ௏٘ ܻࣗझ
  12. 컲헣뫎읺 $POHVSBUJPO.BOBHFNFOU ˖ 켾$IFG 1VQQFU 팲컪쯢"OTJCMF슿 ˖ %4-슪옪컪쩒픦캏읊헣픦몮뫎읺 ˖ 컪쩒졓옇펂쫂삲캏쇦펂핖픚

    ˖ 삲쿦픦컪쩒퐎삲퍟몋픒힎풞 ˖ 퐒쪋힎쁢팘힎잚젿슿컿픒힎풞
  13. 핂빦폲퍊

  14. None
  15. ˑ ➙䎃ך剢חⰅꟌ$IFG4PMP*OGSBTUSVDUVSFBT$PEFה ְֲ劤׾剅ְ׋կ ׉ךせך׶$IFGךⰅꟌ剅זך׌ֽוծֿך؟ـة؎ زٕכ$POHVSBUJPO.BOBHFNFOU5PPM 䧭盖椚 خ٦ٕ ד׮זֻ1SPWJTJPOJOH'SBNFXPSL فٗؽ آّصؚٝؿٖ٦يٙ٦ؙ

    ד׮זֻծכ׋ת׋ "VUPNBUFE*OGSBTUSVDUVSF 荈⹛ׁ׸׋؎ٝؿٓ ד ׮זֻծ*OGSBTUSVDUVSFBT$PEFח׃׋կ *OGSBTUSVDUVSFBT$PEF 뼒풢 핂빦폲퍊
  16. ˑ 폺풢펞$IFG4PMP*OGSBTUSVDUVSFBT$PEF않쁢픒 힟킃삖삲 헪졷펞컪팚쿦핖슽핂$IFG핓줆컪핓삖삲힎잚핂픦쭎 헪쁢$POHVSBUJPO.BOBHFNFOU5PPM솒팒삖몮  1SPWJTJPOJOH'SBNFXPSL솒팒삖몮 "VUPNBUFE *OGSBTUSVDUVSF솒팒삚*OGSBTUSVDUVSFBT$PEF옪헣 킃삖삲

    *OGSBTUSVDUVSFBT$PEF 뼒풢 핂빦폲퍊
  17. ˑ 폺풢펞$IFG4PMP*OGSBTUSVDUVSFBT$PEF않쁢 픒힟킃삖삲 헪졷펞컪팚쿦핖슽핂$IFG핓줆컪핓삖삲힎잚핂픦쭎 헪쁢$POHVSBUJPO.BOBHFNFOU5PPM솒팒삖몮  1SPWJTJPOJOH'SBNFXPSL솒팒삖몮 "VUPNBUFE *OGSBTUSVDUVSF솒팒삚*OGSBTUSVDUVSFBT$PEF옪헣 킃삖삲

    *OGSBTUSVDUVSFBT$PEF 뼒풢 핂빦폲퍊
  18. None
  19. ˖ 슪읊핟컿 ˖ 밑(JU헎핳콚옪졶슮쪎몋픒뫎읺 ˖ 밑쯚(JU)VC옪펓 ˖ 핂큖뫎읺 ˖ 읺큲퐎슪읺쮾

    ˖ 힎콛헏 핊짦헏핆콚풶펂맪짪
  20. ˖ 슪읊핟컿 ˖ 밑(JU헎핳콚옪졶슮쪎몋픒뫎읺 ˖ 밑쯚(JU)VC옪펓 ˖ 핂큖뫎읺 ˖ 읺큲퐎슪읺쮾

    ˖ 힎콛헏 핊짦헏핆 핆않큲얻맪짪
  21. 핆않큲얻많슪많쇦졂

  22. None
  23. ࣓೐ ੷੢ࣗ

  24. Pull Request

  25. ܻ࠭ ਃ୒

  26. ௏٘ ܻ࠭(௏ݭ౟)

  27. ࠽٘ Ѿҗ

  28. ݠ૑

  29. 핆않큲얻많슪많쇦졂

  30. 콚풶펂엊맪짪쿦핖삲

  31. ҙܻ ߑߨ ؀࢚ ࢸ੿ ҙܻ Configuration Management ௏٘ ࢲߡ ܻࣗझ

    ࢶ঱ بҳ
 Resource Management ௏٘ ܻࣗझ
  32. 읺콚큲컮펆솒묺 3FTPVSDF.BOBHFNFOU ˖ 않5FSSBGPSN 않푾슪젢핂켦슿 ˖ %4-슪옪읺콚큲읊컮펆몮뫎읺 ˖ 훊옪않푾슪픦많캏쇪읺콚큲읊뫎읺 ˖

    슪많몵팒
  33. ܻࣗझ ࢶ঱ بҳ ࢸ੿ ҙܻ

  34. ܻࣗझ ࢶ঱ بҳ ࢸ੿ ҙܻ ࢲߡ ҙܻ ܻࣗझ ҙܻ

  35. ܻࣗझ ࢶ঱ بҳ ࢸ੿ ҙܻ ࢲߡ ҙܻ ܻࣗझ ҙܻ

  36. 않 5FSSBGPSN

  37. 않 ˑ8SJUF 1MBO BOE$SFBUF*OGSBTUSVDUVSFBT$PEF˒ ˑ핆않큲얻읊슪옪컪핟컿 몒 캫컿쁢솒묺˒ 5FSSBGPSN

  38. ˖ )BTIJ$PSQ펞컪잚슮폲콚큲핆않뫎읺솒묺 ˖ )$-읊칺푷핆않큲얻읊슪옪헣픦 ˖ 삲퍟옪짢핂섢읊힎풞 ˖ 잶슪않핆핆핂큲 ˖ 펢않핂흖컪찒큲헪뫃

    않 5FSSBGPSN
  39. )BTIJDPSQ

  40. 옪짢핂섢

  41. 핆핂큲 $ terraform apply aws_instance.bastion: Creating... ami: "" => "ami-1eabd32"

    type: "" => "m4.large" ... aws_instance.bastion: Creation complete (ID: bastion) Apply complete! 1 added, 0 changed, 0 destroyed.
  42. 픦홂컿 4FDVSJUZ(SPVQ OBNFQVCMJD JEDPNQVUFE *OTUBODF ".*BNJFD TFDVSJUZ@HSPVQ<>

  43. 픦홂컿 4FDVSJUZ(SPVQ OBNFQVCMJD JEDPNQVUFE *OTUBODF ".*BNJFD TFDVSJUZ@HSPVQ<>

  44. )$- resource "aws_instance" "bastion" { ami = "${ var.ami_id }"

    instance_type = "${ var.type }" }
  45. )$-뫊않믾 )BTIJ$PSQ$POHVSBUJPO-BOHVBHF

  46. ˖ 킪)BTIJ$PSQ펞컪잚슮컲헣헒푷%4- ˖ 컲$POTVM 않5FSSBGPSN펞컪힎풞 ˖ +40/뫊 ˖ 쪎쿦 혾멂줆

    핆엖핂켦슿힎풞 )$-뫊않믾 )BTIJ$PSQ$POHVSBUJPO-BOHVBHF
  47. )$-읺콚큲 폖 "84&$핆큲큲 resource "aws_instance" "bastion" { ami = "${

    var.ami_id }" instance_type = "${ var.type }" }
  48. )$-읺콚큲 resource "aws_instance" "bastion" { ami = "${ var.ami_id }"

    instance_type = "${ var.type }" }
  49. )$-읺콚큲 resource "aws_instance" "bastion" { ami = "${ var.ami_id }"

    instance_type = "${ var.type }" } 쬲팒퐪
  50. )$-읺콚큲 resource "aws_instance" "bastion" { ami = "${ var.ami_id }"

    instance_type = "${ var.type }" } 쬲팒퐪쬊
  51. )$-읺콚큲 resource "aws_instance" "bastion" { ami = "${ var.ami_id }"

    instance_type = "${ var.type }" } 팓튷쬊 팓튷붘
  52. )$-읺콚큲 resource "aws_instance" "bastion" { ami = "${ var.ami_id }"

    instance_type = "${ var.type }" } 쬲팒퐪 쬲팒퐪쬊 팓튷쬊 팓튷붘
  53. 않 ˑ8SJUF 1MBO BOE$SFBUF*OGSBTUSVDUVSFBT$PEF˒ ˑ핆않큲얻읊슪옪컪핟컿 몒 캫컿쁢솒묺˒ 5FSSBGPSN

  54. 않풚옪푾 5FSSBGPSN8PSLPX 8SJUF 1MBO $SFBUF

  55. 8SJUF resource "aws_instance" "bastion" { ami = "${ var.ami_id }"

    instance_type = "${ var.type }" } instance.tf
  56. 8SJUF JOTUBODFUG "84҅੿ BXT@JOTUBODFCBTUJPO

  57. 1MBO JOTUBODFUG "84҅੿ BXT@JOTUBODFCBTUJPO BXT@JOTUBODFCBTUJPO

  58. 1MBO $ terraform plan ... + aws_instance.bastion ami: "ami-1eabd32" type:

    "m4.large" .... Plan: 1 to add, 0 to change, 0 to destroy.
  59. $SFBUF JOTUBODFUG "84҅੿ BXT@JOTUBODFCBTUJPO BXT@JOTUBODFCBTUJPO

  60. $SFBUF JOTUBODFUG UFSSBGPSNUGTUBUF BXT@JOTUBODFCBTUJPO BXT@JOTUBODFCBTUJPO

  61. $SFBUF $ terraform apply aws_instance.bastion: Creating... ami: "" => "ami-1eabd32"

    type: "" => "m4.large" ... aws_instance.bastion: Creation complete (ID: bastion) Apply complete! 1 added, 0 changed, 0 destroyed.
  62. ˖ 몒QMBO ˖ 헏푷BQQMZ ˖ 캏UGTUBUF 푷펂

  63. 핆않큲얻뫎읺솒묺않핓줆 퓇컪찒큲짾푷"84읺콚큲옪찒헎삫

  64. "84읺콚큲읊않픊옪핺헣픦 3FEFOJOH"84SFTPVSDFT

  65. 줂ڰ빦ږ캋힖픦묞

  66. ˖ 믎쯢옪믆  ˖ PVUTJEFS ˖ BTCVCBN ˖ KQ ˖

    OBDZPU 캋힖뫊믾옫 않픒삲욶몮핖쁢믎쯢옪믆
  67. ˖ 믎쯢옪믆  ˖ PVUTJEFS ˖ BTCVCBN ˖ KQ ˖

    OBDZPU 캋힖뫊믾옫 않픒삲욶몮핖쁢믎쯢옪믆
  68. 킪핟 뼒풢킲헏픊옪않옪헫킪핟

  69. ˖ 않픒칺푷쁢숞많힎짷쩣 ˖ 캖옪잚슪쁢읺콚큲읊않픊옪핟컿 ˖ 풂폏훟핆않푾슪핞풞픒않슪옪핟컿 ˖ 솧핊핂읒픦욶찒않핂쯚얺읺 ˖ 않푾슪픦핞풞픒UG핊옪핒훊쁢솒묺

    않짛 5FSSBGPSNJOH
  70. ˖ 않픒헏푷쁢숞많힎짷쩣 ˖ 캖옪잚슪쁢읺콚큲읊않픊옪핟컿 ˖ 풂폏훟핆않푾슪핞풞픒않슪옪핟컿 ˖ 솧핊핂읒픦욶찒않핂쯚얺읺 ˖ 않푾슪픦핞풞픒UG핊옪핒훊쁢솒묺

    않짛 5FSSBGPSNJOH
  71. ˖ 않픎JNQPSU졓옇픒힎풞 ˖ 힎잚핂믾쁳픎핺캏잚픒UGTUBUF펞핒 ˖ UG핊픎캫컿쇦힎팘픚 ˖ UGTUBUF펞잚핞풞핂핖삲졂칻헪엲몮 퓒 

    ˖ 믾홂펞칺푷훟핆핆않많혆폲믾몮 믾홂픦읺콚큲핒 않픦JNQPSU졓옇펂
  72. *NQPSU졓옇펂많퓒핂퓮 JOTUBODFUG UGTUBUF BXT@JOTUBODFCBTUJPO

  73. ˖ 않픒칺푷쁢숞많힎짷쩣 ˖ 캖옪잚슪쁢읺콚큲읊않픊옪핟컿 ˖ 풂폏훟핆않푾슪핞풞픒않슪옪핟컿 ˖ 솧핊핂읒픦욶찒않핂쯚얺읺 ˖ 않푾슪픦핞풞픒UG핊옪핒훊쁢솒묺

    않짛 5FSSBGPSNJOH
  74. ˖ "84읺콚큲읊UGUGTUBUF옪핒힎풞 ˖ 읺콚큲핓쪒옪ퟆ옪핒 ˖ 졶슮읺콚큲핓픒힎풞힎쁢팘픚 ˖ 핒쇪멾뫊많퐒쪋힎쁢팘픚 ˖ 핒큲짝쿦핟펓픊옪쫂헣퍊

    ˖ 픦홂뫎몒읊힎좉 EUBOUFSSBGPSNJOH
  75. $ terraforming vpc resource "aws_vpc" "default_vpc" { cidr_block = "10.1.0.0/24"

    enable_dns_hostnames = true enable_dns_support = true instance_tenancy = "default" tags { "Name" = "default_vpc" } }
  76. 믾홂펞칺푷훟핆핆않읊5FSSBGPSN픊옪많혆폲믾 ˋ0VUTJEFST%FW4UPSZ

  77. ˖ 푾컮않짛픊옪졶슮읺콚큲읊핒힒 ˖ 않픎읺콚큲맒픦픦홂뫎몒읊많쁳 ˖ "읺콚큲컮펆#펞컪"읺콚큲픦콛컿픒혾 ˖ 졶슮읺콚큲많벦핖픊졂홙멮삲 ˖ 빦픦먾샎옪헫

    먾샎킪핟
  78. ˖ 몒뫊헏푷핂뻖줂쁞엲힞 ˖ 졓옇펂빦펞쿦킻쭒 ˖ 읺콚큲빦컪찒큲쪒옪헏헖쭒읺퍊 ˖ 퐒쪋짷쩣픎펔픚 헣

  79. 묺혾 삲쿦픦않옪헫

  80.    UFSSBGPSN  DPNNPO  WQD  JBN

      옪헫묺혾 UFSSBGPSNJOH픦핒짷킫펞싾않묺컿 } ਬࢎೠ ܻࣗझٜਸ ٣۩ఠܻ ߹۽ ੐ನ౟
  81. ˖ DPNNPO픎뫃퓮쇦쁢핞풞슲픒퓒훊옪헣읺 ˖ 뻲풚읺콚큲 *".칺푷핞짝믾쫆헣슿 ˖ 핒읺콚큲슲픎컪찒큲쪒옪쭒읺힒 ˖ 삲훟71$힎풞ˋ맪짪 큲핂힎

    옪섣켦 ˖ 픚펞쁢컪찒큲슲픒훟쫃컪컮펆 ˖ 컪찒큲쪒옪졶슖힒 맪컮
  82.    UFSSBGPSN  DPNNPO  TFSWJDFT  TFSWJDF@B

     TFSWJDF@C   묺혾맪컮 컪찒큲삶퓒옪쭒읺 } ࢲ࠺झ ߹ ೐۽ં౟۽ ҙܻ
  83.    UFSSBGPSN  DPNNPO  TFSWJDFT  NPEVMFT

     TFSWJDF@B  TFSWJDF@C 묺혾맪컮 졶슖옪컪찒큲읺콚큲쭒읺
  84. 옪헫맒펞쁢읺콚큲읊힏헟뫃퓮쿦펔픚 옪헫쪒읺콚큲뫃퓮

  85. 옪헫쪒읺콚큲뫃퓮 71$ *". 3%4 " # $ Common Services

  86. 71$ *". 3%4 " # $ Common Services A ೐۽ં౟ীࢲ

    ҕਬ੗ਗ੄ ࢚కܳ ଵઑ 옪헫쪒읺콚큲뫃퓮
  87. *". " # $ Services A ೐۽ં౟ীࢲ ҕਬ੗ਗ੄ ࢚కܳ ଵઑ

    옪헫쪒읺콚큲뫃퓮 PVUQVU
  88. 5FSSBGPSN맒펞읺콚큲뫃퓮 ˋ0VUTJEFST%FW4UPSZ

  89. 뫎읺많쁳핆않큲얻 않픒솒핓핂퓮

  90. ˖ 않픒솒핓믾잚솒 ˖ 슪읊쪎몋칺헏많쁳ˋ뿒많펆헪퐪 ˖ 핆않옲짿짝쪎몋펞샎쭎샂핂헏펂힞 ˖ 몮솒핟펓 ˖ *".읺콚큲옪칺푷핞뫎읺짝뭚헣읺

    ˖ 믆읊칺푷젢섾핂믾옫 뫎읺많쁳핆않큲얻 않픒솒핓핂퓮
  91. ˖ 않픒솒핓믾잚솒 ˖ 슪읊쪎몋칺헏많쁳ˋ뿒많펆헪퐪 ˖ 핆않옲짿짝쪎몋펞샎쭎샂핂헏펂힞 ˖ 몮솒핟펓 ˖ *".읺콚큲옪칺푷핞뫎읺짝뭚헣읺

    ˖ 믆읊칺푷젢섾핂믾옫 뫎읺많쁳핆않큲얻 않픒솒핓핂퓮
  92. *".읺콚큲 *EFOUJUZBOE"DDFTT.BOBHFNFOU

  93. 졶슮맪짪핞펞멚쭎펺쇪큖펂슪짊뭚

  94. 펂싢컪칺푷쁢힎솒팚쿦펔쁢펻헣칺푷핞

  95. 칺칺앚픦칺푷핞뭚픊옪핟솧훟핆컪찒큲

  96. *".힎폳

  97. ˖ 빦뫎읺믾펂엲풂읺콚큲 ˖ 뫎읺헣핂펔쁢몋푾펗잫핂쇦펂쩒잊 ˖ 뭚픒핦좉쿦헣졂컪찒큲핳팮옪핂펂힞 ˖ 않픊옪졶슮*".읺콚큲읊슪 ˖ 칺푷힎팘쁢졶슮헣뫊옲픎칻헪

    ˖ 뫎읺헣픒헣몮칺푷핞펞샎뭚혾헣 *".읺콚큲 *EFOUJUZBOE"DDFTT.BOBHFNFOU
  98. ˖ 빦뫎읺믾펂엲풂읺콚큲 ˖ 뫎읺헣핂펔쁢몋푾펗잫핂쇦펂쩒잊 ˖ 뭚픒핦좉쿦헣졂컪찒큲핳팮옪핂펂힞 ˖ 않픊옪졶슮*".읺콚큲읊슪 ˖ 칺푷힎팘쁢졶슮헣뫊옲픎칻헪

    ˖ 뫎읺헣픒헣몮칺푷핞펞샎뭚혾헣 *".읺콚큲 *EFOUJUZBOE"DDFTT.BOBHFNFOU
  99. ˖ 핆않펞샎쪎몋픎않잚픒칺푷 ˖ *".칺푷핞뭚슲픎헞힒헏픊옪콚 ˖ 헞힒헏픊옪퓇콢픒칺푷힎팘솒옫뭚퓮 ˖ 쭎슫핂멚퓇콢옪쪎몋뺂푷픎핂큖옪믾옫 ˖ 핂큖옪믾옫쇪뺂푷픎펞슪

    퓇콢칺푷콚
  100. ˖ 않픒솒핓믾잚솒 ˖ 슪읊쪎몋칺헏많쁳ˋ뿒많펆헪퐪 ˖ 핆않옲짿짝쪎몋펞샎쭎샂핂헏펂힞 ˖ 몮솒핟펓 ˖ *".읺콚큲옪칺푷핞뫎읺짝뭚헣읺

    ˖ 믆읊칺푷젢섾핂믾옫 뫎읺많쁳핆않큲얻 않픒솒핓핂퓮
  101. ˖ "84펞컪쁢읺콚큲펞샎믆읊힎풞 ˖ 펂싢컪빦읺콚큲펞샎헣쫂핆많쁳 ˖ 퓇콢핂빦큲잋펞컪믆읊푷많쁳 ˖ 믆핟컿뮪픒뽊픦짝헣읺 ˖ 쿦믆퐎컮믆읊쭒읺

    ˖ 쿦믆쁢짦슪킪빶밎 읺콚큲믆 읺콚큲펞힏헟믾옫쇦쁢젢섾핂
  102. 쿦 ˖ /BNF ˖ 5FSSBGPSN.BOBHFE ˖ 5FSSBGPSN1BUI ˖ 71$ ˖

    $SFBUPS 퐃켦 ˖ 1SPKFDU ˖ .BJOUBJOFS ˖ 5FBN 밓뮪
  103. resource "aws_s3_bucket" "awesome_bucket" { bucket = "awsome_bucket" acl = "private"

    tags { "Name" = "Awesome Bucket" "TerraformManaged" = "true" "TerraformRepository" = "tech/infrastructure" "TerraformPath" = "/terraform/common/s3/s3_bucket.tf" "Organization" = "tech" "Creator" = "asbubam" "Deployer" = "asbubam" "IsStaticHosting" = "false" "IsCloudFrontOrigin" = "false" } }
  104. resource "aws_s3_bucket" "awesome_bucket" { bucket = "awsome_bucket" acl = "private"

    tags { "Name" = "Awesome Bucket" "TerraformManaged" = "true" "TerraformRepository" = "tech/infrastructure" "TerraformPath" = "/terraform/common/s3/s3_bucket.tf" "Organization" = "tech" "Creator" = "asbubam" "Deployer" = "asbubam" "IsStaticHosting" = "false" "IsCloudFrontOrigin" = "false" } }
  105. ˖ 졶슮읺콚큲핓핂믆읊힎풞힎쁢팘픚 ˖ 핊뫎헏핆뮪픒잚슲믾많펂엲풚힞 ˖ 읺콚큲핓펞싾않칺푷많쁳줆핞많삲읒 ˖ 핓펞싾않컪뫒많칺푷쭖많쁳몋푾많핖픚 ˖ 퓇콢펞컪믆옪잏핂쇦쁢몋푾많슪줒

    밓픦헣 "84읺콚큲밓픦줆헪헞
  106. ˖ 읺졶큲핂읊칺푷캏UGTUBUF읊뫃퓮 ˖ 콚풶펂맪짪짷쩣픒믆샎옪칺푷 ˖ 밑쯚읊칺푷슪뫃퓮 ˖ 읺큲퐎슪읺쮾 ˖ 힎콛헏솒묺읊칺푷찚슪

    펓
  107. ˖ 옪캏픦캏쁢뫃퓮쇦힎팘픚 ˖ 캏많삲읂졂몒뫊헏푷픦멾뫊많삺않힞 ˖ 맏맪짪핞많핟펓엲졂캏읊뫃퓮퍊 ˖ 4 $POTVM FUDE슿삲퍟짿펢슪힎풞

    ˖ 4읊칺푷쁢몋푾삲핂빦졶%#읊앋힎풞 읺졶큲핂
  108. terraform { required_version = "= 0.10.7" backend "s3" { bucket

    = "terraform-state" key = "projects/project/terraform.tfstate" region = "ap-northeast-1" encrypt = true kms_key_id = "alias/terraform_state" dynamodb_table = "terraform-lock" } }
  109. terraform { required_version = "= 0.10.7" backend "s3" { bucket

    = "terraform-state" key = "projects/project/terraform.tfstate" region = "ap-northeast-1" encrypt = true kms_key_id = "alias/terraform_state" dynamodb_table = "terraform-lock" } }
  110. terraform { required_version = "= 0.10.7" backend "s3" { bucket

    = "terraform-state" key = "projects/project/terraform.tfstate" region = "ap-northeast-1" encrypt = true kms_key_id = "alias/terraform_state" dynamodb_table = "terraform-lock" } }
  111. 않읺졶큲핂 짿펢슪옪"844칺푷믾ˋ+1#MPH

  112. ˖ 읺졶큲핂읊칺푷캏UGTUBUF읊뫃퓮 ˖ 콚풶펂맪짪짷쩣픒믆샎옪칺푷 ˖ 밑쯚읊칺푷슪뫃퓮 ˖ 읺큲퐎슪읺쮾 ˖ 힎콛헏솒묺읊칺푷찚슪

    펓
  113. ˖ 졶슮핆않큲얻쿦헣픎슪옪핂욶펂힞 ˖ 쪎몋핂푢삲졂푾컮핂큖옪헪팖짝뽊픦 ˖ 젢핆헎핳콚픦슪쪎몋픎읺큲옪힒 ˖ 읺큲쁢43&픦읺쮾읊뫊퍊 ˖ 젆힎헏푷픎맪짪핞많힏헟헏푷

    않믾짦핆않큲얻뫎읺뮪 밑쯚퐎읺큲믾짦펓
  114. 콚풶펂맪짪펞컪쁢 뻖줂핞펾큲얺풂짷쩣

  115. ˖ 않옪헫쿦헣쌚잖삲$*찚슪 ˖ QMBO픒킲컪멾뫊읊팚엲훚 ˖ GNU읊킲컪슪큲핊픒맣헪 ˖ 슪읺쮾읺큲젆힎 ˖ BQQMZ읊킲컪쿦헣칺픒짦폏

    힎콛헏픒핞솧 줂펕픒핞솧쿦핖픒밚
  116. 핞솧픦헣 몒픎헏푷픦컿뫃펺쭎읊쫂핳힎좉

  117. ˖ 몒픎헏푷픦컿뫃펺쭎읊쫂핳힎좉 ˖ 몒픎삶쿪뽊읺헏핆멎흫잚훚 ˖ 젆힎펞헏푷핂킲졂뮎픎캏핂짪캫 ˖ 킲킪샎픟믾퓒킪빦읺폲많푢 ˖ 옪섣켦펞핞솧픊옪헏푷쌚픦퓒컿

    핞솧픦헣
  118. ˖ 않옪헫쿦헣쌚잖삲$*읊킲 ˖ QMBO픒킲컪멾뫊읊팚엲훚 ˖ GNU읊킲컪슪큲핊픒맣헪 ˖ 슪읺쮾읺큲읺쮾 ˖ BQQMZ읊킲컪쿦헣칺픒"84펞짦폏

    핞솧
  119. $JSDMF$*펞컪5FSSBGPSNGNU쿦믾 ˋBTCVCBNTCMPH

  120. 않솒핓뼒

  121. 526 ழ޿ 9 ஶ౟ܻ࠭ఠ HCL 97% 13

  122. 삶헞뫊핳헞믆읺몮짆앦

  123. ˖ 믾솒핓픦펂엲풎 ˖ 읺콚큲엖얾큲읊핃믾펂엲풎 ˖ 핞솧많캫맏쫂삲펂엲풎 삶헞 싿펔펖힎잚펃힎옪턶쫂졂

  124. ˖ 슪읊믾짦픊옪펓짝핞솧많쁳 ˖ 콚풶펂맪짪펞칺푷섦믾쩣슲픒헏푷많쁳 ˖ 슪읊핺칺푷쿦핖몮삲읆맪짪핞픦슪펞컪킃많쁳 ˖ 핆않큲얻쪎몋칺핂핞솧헏픊옪믾옫짝뫃퓮쇶 ˖ 뿒많펂썲핂퓮옪잚슲펖쁢힎헏많쁳

    ˖ 옲짿핂빦핆않쪎몋펞쭎샂핂펔펂힞 ˖ 팒펞샎뽆푾퐎앧큲탡펺맞 핳헞
  125. ˖ 슪읊믾짦픊옪펓짝핞솧많쁳 ˖ 콚풶펂맪짪펞칺푷섦믾쩣슲픒헏푷많쁳 ˖ 슪읊핺칺푷쿦핖몮삲읆맪짪핞픦슪펞컪킃많쁳 ˖ 핆않큲얻쪎몋칺핂핞솧헏픊옪믾옫짝뫃퓮쇶 ˖ 뿒많펂썲핂퓮옪잚슲펖쁢힎헏많쁳

    ˖ 옲짿핂빦핆않쪎몋펞쭎샂핂펔펂힞 ˖ 팒펞샎뽆푾퐎엗큲많탡펺빦맞 핳헞
  126. ˖ 쿦헣칺펞샎핆않킪쥺엖핂켦짝큲 ˖ 퓇콢픒칺푷쪎몋믖힎헣헏푷 ˖ 옪헫묺혾읊팖헣헏픊옪맪컮 ˖ 컪찒큲쪒졶슖퐎핺칺푷헣 ˖ 핳팮펞샎샎찒짝읺콚큲많캫컿킪쥺엖핂켦

    ˖ 맪짪핞않졂뿒묺빦펺쿦핖솒옫퓮솒 짆앦 맪컮퍊헞슲
  127. 홙픎캋힖핂펖삲

  128. 핆않큲얻픦짪헒뫊않 5IFGVUVSFPGJOGSBTUSVDUVSFPODMPVE

  129. ˖ 핂뻖퐎핂뻖믾짦폲큲엖핂켦 ˖ 쭖쪎핆않큲얻/P0QT ˖ 슪옪컪픦핆않큲얻 ˖ 않졶슖뫊핆않캏 핆않큲얻픦짪헒뫊않 5IFGVUVSFPGJOGSBTUSVDUVSFPODMPVE

  130. ˖ 핂뻖퐎핂뻖믾짦폲큲엖핂켦 ˖ 쭖쪎핆않큲얻/P0QT ˖ 슪옪컪픦핆않큲얻 ˖ 않졶슖뫊핆않캏 핆않큲얻픦짪헒뫊않 5IFGVUVSFPGJOGSBTUSVDUVSFPODMPVE

  131. 않졶슖뫊핆않캏 핆않읊캏쁢멚헣잞옪많쁳밚

  132. ˖ 않푾슪읊믾짦픊옪졶슮읺콚큲많많캏 ˖ *B$솒묺슲픒컪컲몒많몵묺핂쇶 ˖ 않옪헫쁢않푾슪팒컲몒컪 ˖ 졶슖픒칺푷헏헖삶퓒옪캏 않졶슖뫊핆않캏

  133. ˖ 않푾슪읊믾짦픊옪졶슮읺콚큲많많캏 ˖ *B$솒묺슲픒컪컲몒많몵묺핂쇶 ˖ 않옪헫쁢않푾슪팒컲몒컪 ˖ 졶슖픒칺푷헏헖삶퓒옪캏 않졶슖뫊핆않캏

  134. ./modules/module_v1 resource "circle" "" {} resource "square" "" {} resource

    "diamond" "" {} resource "pentagon" "" {}
  135. module "app1" { source = "module_v1" p_color= "blue" s_count =

    2 } module "app2" { source = "module_v1" p_color = "purple" s_count = 3 }
  136. module "app1" { source = "module_v2" p_color= "blue" s_count =

    2 } module "app2" { source = "module_v2" p_color = "red" s_count = 3 }
  137. 않졶슖뫊핆않캏 않졶슖픎팒캏않쁢캖옪풂솒헒

  138. None
  139. ˖ *OGSBTUSVDUVSFBT$PEF 졶읺큲 ˖ $IFG4PMP핓줆 핂빦폲퍊 ˖ 5FSSBGPSN6QBOE3VOOJOH :FWHFOJZ#SJLNBO ˖

    핆않큲얻뫎읺솒묺않핓줆 OBDZPU ˖ 5FSSBGPSN .PP:FPM1SFTDPUU-FF ˖ )BTIJ$PSQ픦솒 0VUTJEFS삦쩖펻 ˖ 5FSSBGPSN칺푷 0VUTJEFS삦쩖펻 벦핋픊졂홙픎핞욚
  140. 맞칺삖삲