DevOps BootCamp/Iac

Research & Presentation

cloudmaster 2023. 5. 12. 13:05

가변적(mutable) 인프라와 불변적(immutable) 인프라의 차이는 무엇인가요?

 

가변적(mutable) 인프라:

  • 가변적(mutable) 인프라는 변화 가능한 인프라를 의미합니다.
  • 서버, 네트워크 및 스토리지와 같은 인프라 자원을 변경할 수 있습니다.
  • 예를 들어, 새로운 패치를 적용하거나 구성 변경을 수행할 수 있습니다.
  • 가변적(mutable) 인프라는 높은 유연성과 적응성을 제공하지만, 변경이 잘못되면 시스템 전체에 영향을 줄 수 있습니다.

 

불변적(immutable) 인프라:

  • 불변적(immutable) 인프라는 변경 불가능한 인프라를 의미합니다.
  • 서버, 네트워크 및 스토리지와 같은 인프라 자원을 변경할 수 없으며, 변경이 필요한 경우 새로운 인프라 자원을 만들어야 합니다.
  • 예를 들어, 컨테이너를 사용하는 경우, 새로운 컨테이너 이미지를 빌드하고 배포해야 합니다.
  • 불변적(immutable) 인프라는 변경 사항이 더욱 안정적이며, 시스템의 상태를 보다 명확하게 파악할 수 있습니다. 또한, 자동화 및 스케일링에 용이하며, 시스템의 안정성을 높일 수 있습니다.

 

Terraform의 선언적 방식으로 작성된 코드는 항상 인프라의 최신 상태를 의미합니다. Terraform은 어떤 방식으로 인프라를 최신 상태로 유지할 수 있는 걸까요?

  1. Plan and Apply Terraform :  Plan 명령어를 사용하여 변경 사항을 미리 검토할 수 있습니다. 이를 통해 변경 사항을 미리 확인하고 승인하면, Apply 명령어를 사용하여 변경 사항을 실제 인프라에 적용할 수 있습니다. 이를 통해 인프라를 최신 상태로 유지할 수 있습니다.
  2. State 파일 관리 : Terraform은 State 파일을 사용하여 인프라 상태를 추적합니다. 이 파일은 Terraform이 관리하는 인프라 자원의 현재 상태를 기록하며, 변경 사항을 추적하고 자동으로 업데이트됩니다. 이를 통해 Terraform은 항상 인프라의 최신 상태를 유지할 수 있습니다.
  3. Destroy and Re-create : Terraform은 Destroy 명령어를 사용하여 인프라 자원을 제거하고, Re-create 명령어를 사용하여 인프라 자원을 다시 만들 수 있습니다. 이를 통해 인프라 자원을 갱신하고 최신 상태로 유지할 수 있습니다.
  4. Auto-Apply : Terraform은 Auto-Apply 기능을 사용하여 변경 사항을 자동으로 승인하고 Apply 명령어를 실행할 수 있습니다. 이를 통해 빠른 인프라 업데이트를 할 수 있으며, 인프라를 항상 최신 상태로 유지할 수 있습니다.

 

'DevOps BootCamp > Iac' 카테고리의 다른 글

Terraform module 사용 방법  (0) 2023.07.04
Terraform x AWS - Iac를 이용한 인프라 구축  (0) 2023.05.17
Terraform x AWS  (0) 2023.05.16
Terraform 기본 명령어  (0) 2023.05.12
Infrastructure as Code (코드형 인프라)  (0) 2023.05.12