[IaC] Terraform module ์ƒ์„ฑ

2025. 7. 18. 18:32ยทCloud/IaC

๐Ÿ“Œํ…Œ๋ผํผ ๋ชจ๋“ˆ์ด๋ž€?

https://developer.hashicorp.com/terraform/tutorials/modules/module

 

Modules overview | Terraform | HashiCorp Developer

Read about how Terraform modules make configuration easier to organize, understand, reuse, and share. Learn about the directory structure of a module, and how to call them.

developer.hashicorp.com

ํ…Œ๋ผํผ ๋ชจ๋“ˆ์€ ๋‹จ์ผ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํ…Œ๋ผํผ ๊ตฌ์„ฑ ํŒŒ์ผ ์„ธํŠธ์ด๋‹ค. ๋‹จ์ผ ๋””๋ ‰ํ† ๋ฆฌ์™€ ํ•˜๋‚˜ ์ด์ƒ์˜ .tf ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฐ„๋‹จํ•œ ๊ตฌ์„ฑ๋„ ๋ชจ๋“ˆ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ง์ ‘ ํ…Œ๋ผํผ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฃจํŠธ ๋ชจ๋“ˆ๋กœ ๊ฐ„์ฃผ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ํ…Œ๋ผํผ ๊ตฌ์„ฑ์€ ๋ชจ๋“ˆ์˜ ์ผ๋ถ€์ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๊ตฌ์„ฑ ํŒŒ์ผ ์„ธํŠธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

.
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ main.tf
โ”œโ”€โ”€ variables.tf
โ”œโ”€โ”€ outputs.tf

๐Ÿ“Œ๋ชจ๋“ˆ์€ ์™œ ํ•„์š”ํ•œ๊ฐ€?

ํ…Œ๋ผํผ ๋ชจ๋“ˆ์€ ์ธํ”„๋ผ ๊ตฌ์„ฑ์˜ ๋ณต์žก์„ฑ์„ ์ค„์ด๊ณ , ์ผ๊ด€์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์—ฌ์ฃผ๋Š” ์ค‘์š”ํ•œ ๋„๊ตฌ์ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

  • ๊ตฌ์„ฑ์ •๋ฆฌ: ๊ตฌ์„ฑ์„ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ จ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•จ๊ป˜ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ. ์ˆ˜๋ฐฑ~์ˆ˜์ฒœ ์ค„์˜ ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ํŠนํžˆ ์œ ์šฉ.
  • ๊ตฌ์„ฑ ์บก์Аํ™”: ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ถ„๋ฆฌํ•ด ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์˜ํ–ฅ์ด๋‚˜ ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Œ.
  • ๊ตฌ์„ฑ ์žฌ์‚ฌ์šฉ: ํ•œ ๋ฒˆ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๊ณ , ํŒ€์› ๊ฐ„ ๋˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฐ„ ๊ณต์œ ๋„ ๊ฐ€๋Šฅ.
  • ์ผ๊ด€์„ฑ๊ณผ ๋ชจ๋ฒ” ์‚ฌ๋ก€ ์ ์šฉ: ๋ณต์žกํ•œ ์„ค์ •์„ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ , ๋ณด์•ˆ ๋“ฑ ์ค‘์š”ํ•œ ์„ค์ •์„ ์‹ค์ˆ˜ ์—†์ด ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ.
  • ์…€ํ”„ ์„œ๋น„์Šค ์ œ๊ณต: ๋‹ค๋ฅธ ํŒ€์ด ๋ชจ๋“ˆ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜์—ฌ, ์ธํ”„๋ผ ๊ตฌ์„ฑ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ํŒ€๋„ ์กฐ์ง์˜ ์ •์ฑ…์— ๋งž๋Š” ์ธํ”„๋ผ๋ฅผ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ.

๐Ÿ“Œ๋กœ์ปฌ๊ณผ ์›๊ฒฉ ๋ชจ๋“ˆ

๋ชจ๋“ˆ์€ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋‚˜ ์›๊ฒฉ ์†Œ์Šค์—์„œ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ํ…Œ๋ผํผ์€ ๋‹ค์–‘ํ•œ ์›๊ฒฉ ์†Œ์Šค๋ฅผ ์ง€์›ํ•œ๋‹ค.

  • Terraform Registry
  • ๋Œ€๋ถ€๋ถ„์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ (์˜ˆ: GitHub, GitLab ๋“ฑ)
  • HTTP URL
  • HCP Terraform ๋˜๋Š” Terraform Enterprise์˜ ํ”„๋ผ์ด๋น— ๋ชจ๋“ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ

๋ชจ๋“ˆ์„ ์ง์ ‘ ์ž‘์„ฑํ•ด ๋กœ์ปฌ์—์„œ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ , ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋งŒ๋“  ๋ชจ๋“ˆ์„ ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.


 

๐Ÿ“Œ๋ชจ๋“ˆ ์ƒ์„ฑ

https://developer.hashicorp.com/terraform/tutorials/modules/module-create

 

Build and use a local module | Terraform | HashiCorp Developer

Write a local module to create an Amazon S3 bucket hosting a static website. Create a module directory, write the module configuration, variables, and outputs, and call the module from a root configuration.

developer.hashicorp.com

https://developer.hashicorp.com/terraform/tutorials/modules/pattern-module-creation

 

Module creation - recommended pattern | Terraform | HashiCorp Developer

Learn the architectural recommendations for module creation distilled from engagements with large enterprises using Terraform. Use Terraform module best practices to scope, build, improve and consume Terraform modules.

developer.hashicorp.com

ํ…Œ๋ผํผ ๋ชจ๋“ˆ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋กœ ๊ด€๋ฆฌ๋œ๋‹ค.

modules/
โ””โ”€โ”€ example-module/
    โ”œโ”€โ”€ main.tf        # ๋ฆฌ์†Œ์Šค ์ •์˜ - ์‹ค์ œ ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜
    โ”œโ”€โ”€ variables.tf   # ์ž…๋ ฅ ๋ณ€์ˆ˜ ์ •์˜ - ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์„ ๋ณ€์ˆ˜ ์„ ์–ธ
    โ””โ”€โ”€ outputs.tf     # ์ถœ๋ ฅ ๋ณ€์ˆ˜ ์ •์˜ - ๋ชจ๋“ˆ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ

โœ…ํ…Œ๋ผํผ ๋ชจ๋“ˆ ์ƒ์„ฑ ์›Œํฌํ”Œ๋กœ์šฐ

  1. ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ ์ ˆํ•œ ๋ชจ๋“ˆ๋กœ ๋‚˜๋ˆˆ๋‹ค.
    • ๋ชจ๋“ˆ์€ ํ•˜๋‚˜์˜ ๋ช…ํ™•ํ•œ ๋ชฉ์ ์„ ๊ฐ–๊ณ , ์ž‘๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
    • ์„ธ ๊ฐ€์ง€ ๊ธฐ์ค€์„ ๊ณ ๋ คํ•ด ์ธํ”„๋ผ๋ฅผ ๊ทธ๋ฃนํ™”
      • ์บก์Аํ™” - ํ•ญ์ƒ ํ•จ๊ป˜ ๋ฐฐํฌ๋˜๋Š” ์ธํ”„๋ผ๋Š” ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ๋กœ ๋ฌถ๊ธฐ. ๊ทธ๋Ÿฌ๋‚˜ ๋„ˆ๋ฌด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•œ ๋ชจ๋“ˆ์— ๋‹ด์œผ๋ฉด ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง.
      • ๊ถŒํ•œ ๊ฒฝ๊ณ„ - ์„œ๋กœ ๋‹ค๋ฅธ ์กฐ์ง/ํŒ€์ด ์ฑ…์ž„์ง€๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ํ•œ ๋ชจ๋“ˆ์— ๋„ฃ์ง€ ๋ง๊ธฐ. ๋ณด์•ˆ๊ณผ ๊ถŒํ•œ ๋ถ„๋ฆฌ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•จ.
      • ๋ณ€๋™์„ฑ - ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฆฌ์†Œ์Šค์™€ ์ž˜ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ฆฌ์†Œ์Šค๋Š” ๋ถ„๋ฆฌ. ์ƒํƒœ๋ฅผ ๋ณด์กดํ•ด์•ผ ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๋ถˆํ•„์š”ํ•œ ๋ณ€๊ฒฝ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ.
  2. ๋ชจ๋“ˆ MVP๋ฅผ ๋งŒ๋“ ๋‹ค.
    • ์ฒ˜์Œ๋ถ€ํ„ฐ ์™„๋ฒฝํ•œ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜์ง€ ์•Š์•„๋„ ๊ดœ์ฐฎ๋‹ค.
    • MVP ์„ค๊ณ„ ์‹œ ์œ ์˜์‚ฌํ•ญ
      • ํฌ๊ท€ํ•œ ์˜ˆ์™ธ ์ผ€์ด์Šค๋Š” ํฌํ•จํ•˜์ง€ ๋ง ๊ฒƒ.
      • ์กฐ๊ฑด๋ฌธ์„ ๊ฐ€๋Šฅํ•œ ํ”ผํ•˜๊ณ , ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ ์œ ์ง€
      • ๊ผญ ํ•„์š”ํ•œ ๋ณ€์ˆ˜๋งŒ ๋…ธ์ถœ
      • ์ถœ๋ ฅ๊ฐ’์€ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ํฌํ•จํ•  ๊ฒƒ.

์ถ”ํ›„ ์ƒ์„ฑ ์˜ˆ์ œ ์ถ”๊ฐ€ ์˜ˆ์ •

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Cloud > IaC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[IaC] ํ…Œ๋ผํผ(Terraform)์ด๋ž€?  (0) 2025.06.28
'Cloud/IaC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [IaC] ํ…Œ๋ผํผ(Terraform)์ด๋ž€?
The Engineer, Lucy
The Engineer, Lucy
  • The Engineer, Lucy
    Growing up for My Future๐Ÿ’•
    The Engineer, Lucy
    • Instagram
    • GitHub
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (173)
      • Linux (26)
      • Infra (9)
      • Cloud (25)
        • AWS (2)
        • GCP (3)
        • Docker (4)
        • Kubernetes (14)
        • IaC (2)
      • NGINX (1)
      • DevOps (3)
      • Computer Science (17)
        • Data Structure (0)
        • Algorithms (1)
        • Operating System (3)
        • Network (11)
        • Database System (2)
      • Coding Test (87)
        • Algorithms (79)
        • SQL (7)
      • ETC (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๊ณต์ง€์‚ฌํ•ญ

  • ๋งํฌ

    • Lucy's Instagram
    • Lucy's GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    dfs
    docker
    Baekjoon
    cs ๊ธฐ์ดˆ ์ง€์‹ ์ •๋ฆฌ
    ๋„คํŠธ์›Œํฌ
    ๋„์ปค
    Shell Script
    ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    K8s
    Java
    ์˜ค๋ธ”์™„
    network
    ์‰˜ ์Šคํฌ๋ฆฝํŠธ
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    Linux
    ๋ฐฑ์ค€
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณต๋ถ€
    ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ์…ธ ์Šคํฌ๋ฆฝํŠธ
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ
    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
    Shell
    bfs
    ์ž๋ฐ”
    Kubernetes
    ๋ฆฌ๋ˆ…์Šค
    ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰
    programmers
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
The Engineer, Lucy
[IaC] Terraform module ์ƒ์„ฑ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”