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

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


nacyot
January 13, 2018

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


nacyot

January 13, 2018
Tweet

More Decks by nacyot

Other Decks in Technology

Transcript

  1. 않5FSSBGPSN솒핓믾
    ,PSFB%FW0QT.FFUVQ
    [email protected]
    않푾슪핆않큲얻슪옪핺헣픦믾


    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    Resource Management
    ௏٘ ܻࣗझ

    View Slide

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

    Resource Management
    ௏٘ ܻࣗझ

    View Slide

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

    Resource Management
    ௏٘ ܻࣗझ

    View Slide

  12. 컲헣뫎읺
    $POHVSBUJPO.BOBHFNFOU
    ˖ 켾$IFG 1VQQFU 팲컪쯢"OTJCMF슿
    ˖ %4-슪옪컪쩒픦캏읊헣픦몮뫎읺
    ˖ 컪쩒졓옇펂쫂삲캏쇦펂핖픚
    ˖ 삲쿦픦컪쩒퐎삲퍟몋픒힎풞
    ˖ 퐒쪋힎쁢팘힎잚젿슿컿픒힎풞

    View Slide

  13. 핂빦폲퍊

    View Slide

  14. View Slide

  15. ˑ ➙䎃ך剢חⰅꟌ$IFG4PMP*OGSBTUSVDUVSFBT$PEFה
    ְֲ劤׾剅ְ׋կ
    ׉ךせך׶$IFGךⰅꟌ剅זך׌ֽוծֿך؟ـة؎
    زٕכ$POHVSBUJPO.BOBHFNFOU5PPM 䧭盖椚
    خ٦ٕ
    ד׮זֻ1SPWJTJPOJOH'SBNFXPSL فٗؽ
    آّصؚٝؿٖ٦يٙ٦ؙ
    ד׮זֻծכ׋ת׋
    "VUPNBUFE*OGSBTUSVDUVSF 荈⹛ׁ׸׋؎ٝؿٓ
    ד
    ׮זֻծ*OGSBTUSVDUVSFBT$PEFח׃׋կ
    *OGSBTUSVDUVSFBT$PEF 뼒풢 핂빦폲퍊

    View Slide

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

    View Slide

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

    View Slide

  18. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. View Slide

  23. ࣓೐ ੷੢ࣗ

    View Slide

  24. Pull Request

    View Slide

  25. ܻ࠭ ਃ୒

    View Slide

  26. ௏٘ ܻ࠭(௏ݭ౟)

    View Slide

  27. ࠽٘ Ѿҗ

    View Slide

  28. ݠ૑

    View Slide

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

    View Slide

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

    View Slide

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

    Resource Management
    ௏٘ ܻࣗझ

    View Slide

  32. 읺콚큲컮펆솒묺
    3FTPVSDF.BOBHFNFOU
    ˖ 않5FSSBGPSN 않푾슪젢핂켦슿
    ˖ %4-슪옪읺콚큲읊컮펆몮뫎읺
    ˖ 훊옪않푾슪픦많캏쇪읺콚큲읊뫎읺
    ˖ 슪많몵팒

    View Slide

  33. ܻࣗझ ࢶ঱ بҳ
    ࢸ੿ ҙܻ

    View Slide

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

    View Slide

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

    View Slide

  36. 않
    5FSSBGPSN

    View Slide

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

    View Slide

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

    View Slide

  39. )BTIJDPSQ

    View Slide

  40. 옪짢핂섢

    View Slide

  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.

    View Slide

  42. 픦홂컿
    4FDVSJUZ(SPVQ
    OBNFQVCMJD
    JEDPNQVUFE
    *OTUBODF
    ".*BNJFD
    [email protected]<>

    View Slide

  43. 픦홂컿
    4FDVSJUZ(SPVQ
    OBNFQVCMJD
    JEDPNQVUFE
    *OTUBODF
    ".*BNJFD
    [email protected]<>

    View Slide

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

    View Slide

  45. )$-뫊않믾
    )BTIJ$PSQ$POHVSBUJPO-BOHVBHF

    View Slide

  46. ˖ 킪)BTIJ$PSQ펞컪잚슮컲헣헒푷%4-
    ˖ 컲$POTVM 않5FSSBGPSN펞컪힎풞
    ˖ +40/뫊
    ˖ 쪎쿦 혾멂줆 핆엖핂켦슿힎풞
    )$-뫊않믾
    )BTIJ$PSQ$POHVSBUJPO-BOHVBHF

    View Slide

  47. )$-읺콚큲

    "84&$핆큲큲
    resource "aws_instance" "bastion" {
    ami = "${ var.ami_id }"
    instance_type = "${ var.type }"
    }

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  55. 8SJUF
    resource "aws_instance" "bastion" {
    ami = "${ var.ami_id }"
    instance_type = "${ var.type }"
    }
    instance.tf

    View Slide

  56. 8SJUF
    JOTUBODFUG "84҅੿
    [email protected]

    View Slide

  57. 1MBO
    JOTUBODFUG "84҅੿
    [email protected] [email protected]

    View Slide

  58. 1MBO
    $ terraform plan
    ...
    + aws_instance.bastion
    ami: "ami-1eabd32"
    type: "m4.large"
    ....
    Plan: 1 to add, 0 to change, 0 to destroy.

    View Slide

  59. $SFBUF
    JOTUBODFUG "84҅੿
    [email protected] [email protected]

    View Slide

  60. $SFBUF
    JOTUBODFUG UFSSBGPSNUGTUBUF
    [email protected] [email protected]

    View Slide

  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.

    View Slide

  62. ˖ 몒QMBO
    ˖ 헏푷BQQMZ
    ˖ 캏UGTUBUF
    푷펂

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  68. 킪핟
    뼒풢킲헏픊옪않옪헫킪핟

    View Slide

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

    View Slide

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

    View Slide

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

    ˖ 믾홂펞칺푷훟핆핆않많혆폲믾몮
    믾홂픦읺콚큲핒
    않픦JNQPSU졓옇펂

    View Slide

  72. *NQPSU졓옇펂많퓒핂퓮
    JOTUBODFUG UGTUBUF
    [email protected]

    View Slide

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

    View Slide

  74. ˖ "84읺콚큲읊UGUGTUBUF옪핒힎풞
    ˖ 읺콚큲핓쪒옪ퟆ옪핒
    ˖ 졶슮읺콚큲핓픒힎풞힎쁢팘픚
    ˖ 핒쇪멾뫊많퐒쪋힎쁢팘픚
    ˖ 핒큲짝쿦핟펓픊옪쫂헣퍊
    ˖ 픦홂뫎몒읊힎좉
    EUBOUFSSBGPSNJOH

    View Slide

  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"
    }
    }

    View Slide

  76. 믾홂펞칺푷훟핆핆않읊5FSSBGPSN픊옪많혆폲믾
    ˋ0VUTJEFST%FW4UPSZ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide


  80. UFSSBGPSN
    DPNNPO
    WQD
    JBN

    옪헫묺혾
    UFSSBGPSNJOH픦핒짷킫펞싾않묺컿
    } ਬࢎೠ ܻࣗझٜਸ ٣۩ఠܻ ߹۽ ੐ನ౟

    View Slide

  81. ˖ DPNNPO픎뫃퓮쇦쁢핞풞슲픒퓒훊옪헣읺
    ˖ 뻲풚읺콚큲 *".칺푷핞짝믾쫆헣슿
    ˖ 핒읺콚큲슲픎컪찒큲쪒옪쭒읺힒
    ˖ 삲훟71$힎풞ˋ맪짪 큲핂힎 옪섣켦
    ˖ 픚펞쁢컪찒큲슲픒훟쫃컪컮펆
    ˖ 컪찒큲쪒옪졶슖힒
    맪컮

    View Slide


  82. UFSSBGPSN
    DPNNPO
    TFSWJDFT
    [email protected]
    [email protected]

    묺혾맪컮
    컪찒큲삶퓒옪쭒읺
    } ࢲ࠺झ ߹ ೐۽ં౟۽ ҙܻ

    View Slide


  83. UFSSBGPSN
    DPNNPO
    TFSWJDFT
    NPEVMFT
    [email protected]
    [email protected]
    묺혾맪컮
    졶슖옪컪찒큲읺콚큲쭒읺

    View Slide

  84. 옪헫맒펞쁢읺콚큲읊힏헟뫃퓮쿦펔픚
    옪헫쪒읺콚큲뫃퓮

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  88. 5FSSBGPSN맒펞읺콚큲뫃퓮
    ˋ0VUTJEFST%FW4UPSZ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  92. *".읺콚큲
    *EFOUJUZBOE"DDFTT.BOBHFNFOU

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  96. *".힎폳

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  101. ˖ "84펞컪쁢읺콚큲펞샎믆읊힎풞
    ˖ 펂싢컪빦읺콚큲펞샎헣쫂핆많쁳
    ˖ 퓇콢핂빦큲잋펞컪믆읊푷많쁳
    ˖ 믆핟컿뮪픒뽊픦짝헣읺
    ˖ 쿦믆퐎컮믆읊쭒읺
    ˖ 쿦믆쁢짦슪킪빶밎
    읺콚큲믆
    읺콚큲펞힏헟믾옫쇦쁢젢섾핂

    View Slide

  102. 쿦
    ˖ /BNF
    ˖ 5FSSBGPSN.BOBHFE
    ˖ 5FSSBGPSN1BUI
    ˖ 71$
    ˖ $SFBUPS
    퐃켦
    ˖ 1SPKFDU
    ˖ .BJOUBJOFS
    ˖ 5FBN
    밓뮪

    View Slide

  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"
    }
    }

    View Slide

  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"
    }
    }

    View Slide

  105. ˖ 졶슮읺콚큲핓핂믆읊힎풞힎쁢팘픚
    ˖ 핊뫎헏핆뮪픒잚슲믾많펂엲풚힞
    ˖ 읺콚큲핓펞싾않칺푷많쁳줆핞많삲읒
    ˖ 핓펞싾않컪뫒많칺푷쭖많쁳몋푾많핖픚
    ˖ 퓇콢펞컪믆옪잏핂쇦쁢몋푾많슪줒
    밓픦헣
    "84읺콚큲밓픦줆헪헞

    View Slide

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

    View Slide

  107. ˖ 옪캏픦캏쁢뫃퓮쇦힎팘픚
    ˖ 캏많삲읂졂몒뫊헏푷픦멾뫊많삺않힞
    ˖ 맏맪짪핞많핟펓엲졂캏읊뫃퓮퍊
    ˖ 4 $POTVM FUDE슿삲퍟짿펢슪힎풞
    ˖ 4읊칺푷쁢몋푾삲핂빦졶%#읊앋힎풞
    읺졶큲핂

    View Slide

  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"
    }
    }

    View Slide

  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"
    }
    }

    View Slide

  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"
    }
    }

    View Slide

  111. 않읺졶큲핂
    짿펢슪옪"844칺푷믾ˋ+1#MPH

    View Slide

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

    View Slide

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

    View Slide

  114. 콚풶펂맪짪펞컪쁢
    뻖줂핞펾큲얺풂짷쩣

    View Slide

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

    View Slide

  116. 핞솧픦헣
    몒픎헏푷픦컿뫃펺쭎읊쫂핳힎좉

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  120. 않솒핓뼒

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  126. ˖ 쿦헣칺펞샎핆않킪쥺엖핂켦짝큲
    ˖ 퓇콢픒칺푷쪎몋믖힎헣헏푷
    ˖ 옪헫묺혾읊팖헣헏픊옪맪컮
    ˖ 컪찒큲쪒졶슖퐎핺칺푷헣
    ˖ 핳팮펞샎샎찒짝읺콚큲많캫컿킪쥺엖핂켦
    ˖ 맪짪핞않졂뿒묺빦펺쿦핖솒옫퓮솒
    짆앦
    맪컮퍊헞슲

    View Slide

  127. 홙픎캋힖핂펖삲

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  137. 않졶슖뫊핆않캏
    않졶슖픎팒캏않쁢캖옪풂솒헒

    View Slide

  138. View Slide

  139. ˖ *OGSBTUSVDUVSFBT$PEF 졶읺큲
    ˖ $IFG4PMP핓줆 핂빦폲퍊
    ˖ 5FSSBGPSN6QBOE3VOOJOH :FWHFOJZ#SJLNBO
    ˖ 핆않큲얻뫎읺솒묺않핓줆 OBDZPU
    ˖ 5FSSBGPSN .PP:FPM1SFTDPUU-FF
    ˖ )BTIJ$PSQ픦솒 0VUTJEFS삦쩖펻
    ˖ 5FSSBGPSN칺푷 0VUTJEFS삦쩖펻
    벦핋픊졂홙픎핞욚

    View Slide

  140. 맞칺삖삲

    View Slide