28개의 실시간 Terraform 인터뷰 질문과 답변

다음은 28개의 실시간 Terraform 인터뷰 질문과 답변과 인터뷰에서 자주 묻는 중요한 명령에 대한 목록과 설명입니다.

클라우드 기술 사용의 증가는 DevOps 세계에서 많은 기회를 열었습니다. 미래에는 클라우드 기술이 인터뷰 질문의 공통 주제가 될 것이며 클라우드 및 코드로서의 인프라에 대한 기본 지식, IAC 도구는 DevOps 역할에 필수가 될 것입니다.

목차

테라폼이란?

테라폼 모든 클라우드 엔지니어가 사용하는 가장 인기 있는 IAC 도구 중 하나입니다. 이를 통해 사람이 읽을 수 있는 구성 파일에서 클라우드 및 온프레미스 리소스를 모두 정의할 수 있으므로 이러한 리소스를 프로그래밍 방식으로 프로비저닝할 수 있습니다. Terraform의 가장 주목할만한 기능은 대부분의 IAC 도구와 달리 단일 클라우드 제공업체에 국한되지 않는다는 것입니다. Terraform을 사용하여 여러 클라우드 플랫폼에서 동시에 애플리케이션을 실행할 수 있습니다.

  보낸 사람별로 받은 편지함의 모든 메시지 그룹화 및 이메일 추적기 차단

Terraform이 지원하는 기술이 무엇인지 궁금한 경우 다음과 같은 작은 목록이 있습니다.

DevOps 엔지니어, 클라우드 설계자, 개발자 또는 관리자로서 경력을 쌓기 위해서는 Terraform 인터뷰 질문에 직면해야 합니다. Terraform에 대한 지식을 향상시키는 데 도움이 될 최고의 Terraform 인터뷰 질문 목록을 작성했습니다.

일반 Terraform 인터뷰 질문 및 답변

#1. Terraform이 무엇을 이해합니까?

Terraform은 다음에서 만든 오픈 소스 IAC 도구입니다. 하시코프. 여러 클라우드 플랫폼에서 인프라를 생성, 업데이트, 삭제 및 버전 관리하는 데 사용됩니다.

#2. DevOps용으로 Terraform을 선택하는 이유는 무엇입니까?

인프라 프로비저닝에 Terraform을 사용하면 인적 오류가 발생할 여지가 없으므로 클라우드 및 온프레미스 인프라의 품질, 일관성 및 효율성이 향상됩니다. Terraform은 JSON과 상당히 유사하고 배우고 사용하기 쉬운 HCL 언어를 사용합니다. Cloudformation for AWS와 같은 클라우드 공급자가 제공하는 다른 IAC 도구와 달리 Terraform은 여러 클라우드 플랫폼에서 동시에 사용할 수 있습니다. 이렇게 하면 여러 IAC 도구를 배울 필요가 없고 협업 범위가 향상됩니다.

#삼. Terraform은 어떻게 작동합니까?

Terraform은 Terraform 공급자라는 플러그인을 사용하여 Cloud Platform의 API와 상호 작용하고 리소스를 프로비저닝합니다. 최종 사용자로서 Terraform 워크플로에는 세 단계가 있습니다.

쓰기: 인프라를 코드로 작성합니다.

계획: 적용하기 전에 Terraform이 수행할 변경 사항을 미리 봅니다.

적용: 인프라를 프로비저닝하고 변경 사항을 적용합니다.

#4. Terraform 클라우드는 무엇을 의미합니까?

Terraform Cloud는 Terraform 워크플로에 최적화된 원격 환경입니다. 작업 공간 및 상태 잠금과 같은 기능을 제공하여 큰 팀의 사람들이 협업할 수 있습니다.

#5. Terraform의 State는 무엇을 이해합니까?

IAC 도구로서 Terraform은 관리 중인 구성 및 인프라의 현재 상태를 알아야 합니다. Terraform은 이 정보를 상태 파일이라는 파일에 저장합니다.

#6. Terraform State의 이점은 무엇입니까?

Terraform State를 사용하면 Terraform이 실제 리소스를 구성에 매핑하고, 메타데이터를 추적하고, 복잡한 인프라에 대한 변경을 계획할 때 성능을 개선할 수 있습니다. Terraform의 중요한 구성 요소입니다.

#7. Terraform 백엔드가 무엇을 이해합니까?

Terraform 백엔드는 Terraform 상태 스냅샷이 저장되는 플랫폼입니다. 기본적으로 Terraform은 로컬이라는 백엔드를 사용하여 디스크에 상태를 로컬 파일로 저장합니다. 지원되는 다른 모든 백엔드는 일종의 원격 스토리지 서비스입니다.

  Linux에서 리프트브레이커를 플레이하는 방법

#8. Terraform의 공급자는 무엇입니까?

Terraform의 공급자는 Terraform이 클라우드 공급자, SaaS 공급자 및 기타 API와 상호 작용할 수 있도록 하는 플러그인입니다. 예를 들어 Terraform을 사용하여 AWS에서 인프라를 프로비저닝하려는 경우 구성 파일에서 AWS 공급자를 선언해야 합니다.

#9. 누가 Terraform 공급자를 유지 관리합니까?

공급자는 Terraform 자체와 별도로 배포됩니다. Terraform 사용자는 누구나 자신의 공급자를 개발할 수 있습니다. Hashicorp에서 명시적으로 유지 관리하는 몇 가지 표준 공급자가 있습니다.

#10. 센티넬이란?

보초 Terraform에서 배포하는 리소스에 대한 표준 구성을 적용하는 데 사용되는 코드 도구로서의 정책입니다. 규정 준수 및 거버넌스 목적으로 조직에서 사용할 수 있습니다.

#11. Terraform의 모듈은 무엇을 이해합니까?

Terraform 모듈은 리소스를 프로비저닝하고 구성하는 데 함께 사용되는 여러 리소스의 표준 컨테이너입니다. 예를 들어, 표준 VPC 및 서브넷 및 인터넷 게이트웨이와 같은 기타 리소스를 프로비저닝하는 조직에 대해 “VPC 모듈”을 생성할 수 있습니다. 모듈은 공개 모듈 레지스트리를 통해 공개적으로 공유할 수 있고 개인 모듈 레지스트리를 통해 비공개로 공유할 수 있습니다.

#12. Terraform에서 모듈을 사용하면 어떤 이점이 있습니까?

Terraform 모듈을 사용하면 리소스 세트 상단에 논리적 추상화를 생성할 수 있습니다. 모듈을 사용하면 리소스에 대한 표준 구성을 유지하고 재사용할 수 있습니다. 버전을 관리하고 팀 구성원과 공유하여 표준 방식으로 리소스를 프로비저닝할 수 있습니다.

#13. 프라이빗 모듈 레지스트리란 무엇입니까?

Private Module Registry Terraform Cloud 기능을 사용하면 조직 전체에서 Terraform 모듈을 공유할 수 있습니다.

고급 Terraform 인터뷰 질문 및 답변

#14. 한 모듈에서 다른 모듈로 데이터를 내보내려면 어떻게 해야 합니까?

모듈 구성 파일에서 출력 블록을 정의하여 모듈에서 데이터를 내보낼 수 있습니다. 그런 다음 이 데이터를 대상 모듈에 매개변수로 전송할 수 있습니다.

#13. Terraform에서 종속성을 어떻게 정의할 수 있습니까?

Terraform에는 종속성 관리가 내장되어 있습니다. Terraform에는 리소스 간에 두 가지 종류의 종속성이 있습니다. 즉, 암시적 종속성과 명시적 종속성이 있습니다.

암시적 종속성은 이름에서 알 수 있듯이 Terraform에서 자동으로 감지합니다. “리소스 A”의 출력이 “리소스 B”에서 사용되는 경우입니다. Terraform은 “리소스 A” 이후에만 “리소스 B”를 생성해야 함을 자동으로 감지합니다.

두 리소스가 출력을 공유하지 않고 서로 내부적으로 종속되는 경우 명시적 종속성을 지정할 수 있습니다. 이는 구성 블록에서Depends_on 매개변수를 사용하여 수행할 수 있습니다.

#14. Terraform의 프로비저닝 도구는 무엇입니까?

프로비저닝 도구는 리소스 생성 또는 삭제의 일부로 스크립트를 실행하는 데 사용되는 Terraform 리소스입니다. Terraform에는 두 가지 유형의 프로비저닝 도구가 있습니다.

  • local-exec: Terraform을 실행하는 시스템에서 스크립트를 호출합니다.
  • remoteexec: 원격 리소스가 생성된 후 스크립트를 호출합니다.
  Word 문서의 일부가 편집되지 않도록 보호하는 방법

Provisioner는 Terraform에서 최후의 수단으로만 사용됩니다.

#15. Terraform의 외부 데이터 블록은 무엇입니까?

local-exec 프로비저닝 도구와 마찬가지로 외부 데이터 블록을 사용하여 Terraform을 실행하는 시스템에서 스크립트를 실행할 수 있습니다. 프로비저닝 도구와 외부 데이터 블록의 차이점은 외부 데이터 블록의 스크립트는 데이터를 JSON 형식으로 반환할 수 있지만 프로비저닝 도구는 출력을 반환할 수 없다는 것입니다. 외부 데이터 블록도 최후의 수단으로 사용되어야 하며 더 나은 대안이 있는 경우 사용해서는 안 됩니다.

#16. Terraform 클라우드를 사용하는 두 사람이 어떻게 동일한 작업 디렉토리를 사용하여 두 개의 서로 다른 인프라 세트를 생성할 수 있습니까?

다양한 작업 공간을 사용합니다. 이러한 사용자는 두 개의 별도 작업 공간에서 Terraform 실행을 시작할 수 있습니다. 각 작업 공간에는 자체 상태 파일이 있으므로 리소스가 겹치지 않는 한 두 사용자 모두 동일한 코드를 사용하여 두 개의 서로 다른 인프라 세트를 성공적으로 프로비저닝할 수 있습니다.

#17. 여러 엔지니어가 동일한 상태 파일을 사용하여 인프라 배포를 시작하면 어떻게 됩니까?

Terraform에는 “상태 잠금”이라는 매우 중요한 기능이 있습니다. 이 기능은 실행 중에 상태 파일이 변경되지 않도록 하고 상태 파일이 손상되는 것을 방지합니다. 모든 Terraform 백엔드가 상태 잠금 기능을 지원하는 것은 아닙니다. 이 기능이 요구 사항인 경우 올바른 백엔드를 선택해야 합니다.

#18. Terraform에서 null 리소스란 무엇입니까?

terraform null 리소스는 표준 terraform 리소스 블록처럼 실행되지만 리소스를 생성하지 않는 구성입니다. 이상하고 쓸모없는 리소스처럼 들릴 수 있지만 Terraform의 제한 사항을 해결하기 위해 다양한 상황에서 유용할 수 있습니다.

#19. 다른 구성으로 Terraform에서 동일한 공급자를 어떻게 사용할 수 있습니까?

공급자 블록에서 별칭 인수를 사용합니다.

#20. 리소스가 없는 Terraform 구성 파일이 있습니다. Terraform 적용 명령을 실행하면 어떻게 됩니까?

Terraform은 모든 리소스를 파괴합니다. terraform apply 명령으로 빈 실행을 시작하는 것은 terraform destroy 실행을 시작하는 것과 정확히 동일합니다.

#21. 리소스가 Terraform에서 성공적으로 생성되었지만 프로비저닝 중에 실패한 경우 어떻게 됩니까?

이것은 있을 법하지 않은 시나리오이지만 이런 일이 발생하면 리소스가 오염된 것으로 표시되고 terraform 실행을 다시 시작하여 다시 만들 수 있습니다.

#22. TF_LOG 변수의 어떤 값이 가장 자세한 정보 로깅을 제공합니까?

TRACE는 TF_LOG 변수의 가장 장황하고 기본값입니다.

#23. Terraform Management에서 기존 리소스를 어떻게 가져올 수 있습니까?

Terraform 가져오기 명령을 사용합니다.

#24. Terraform 실행 계획을 미리 보는 데 사용할 수 있는 명령은 무엇입니까?

Terraform plan 명령은 Terraform이 인프라에 수행할 변경 사항의 실행 계획을 생성합니다.

#25. Terraform 상태를 실제 실제 인프라와 조정하는 데 사용할 수 있는 명령은 무엇입니까?

terraform apply -refresh-only 명령은 Terraform 상태를 실제 실제 인프라와 조정하는 데 사용됩니다. 현재 사용되지 않는 terraform 새로 고침 명령의 새로운 대안입니다.

#26. Terraform Cloud를 사용할 때 작업 공간을 전환하는 데 사용할 수 있는 명령은 무엇입니까?

terraform workspace select 명령은 다른 작업 공간을 선택하는 데 사용됩니다.

#27. Terraform 구성 파일에서 구문 유효성 검사를 수행하는 데 사용되는 명령은 무엇입니까?

terraform validate 명령은 구성이 구문적으로 유효하고 내부적으로 일관성이 있는지 확인하는 데 사용됩니다.

#28. Terraform 클라우드에서 새 작업 공간을 만드는 데 사용되는 명령은 무엇입니까?

terraform workspace new 명령은 새 작업 공간을 만드는 데 사용됩니다.

기술 인터뷰를 위한 몇 가지 다른 중요한 Terraform 명령.

  • terraform init: 원격 백엔드를 초기화합니다. 구성에 정의된 공급자 및 원격 모듈을 다운로드합니다.
  • terraform init -upgrade: 기존에 다운로드한 공급자를 업그레이드하는 데 사용됩니다.
  • terraform plan: 인프라 생성 또는 업데이트를 위한 실행 계획을 생성합니다.
  • terraform apply: 사용자의 확인 요청 후 인프라를 생성하거나 업데이트합니다.
  • terraform apply –auto-approve: 인프라를 생성하거나 업데이트합니다. 사용자 승인 단계를 건너뜁니다.
  • terraform destroy: 사용자에게 확인 요청 후 인프라를 삭제합니다.
  • terraform destroy –auto-approve: 인프라를 삭제합니다. 사용자 승인 단계를 건너뜁니다.
  • terraform fmt: 현재 디렉터리에서 구성 파일을 검색하고 HCP 표준 스타일 및 형식에 따라 형식을 지정합니다.
  • terraform fmt –recursive: 현재 디렉터리와 하위 디렉터리에서 구성 파일을 검색하고 HCP 표준 스타일 및 형식에 따라 형식을 지정합니다.
  • terraform show: 상태 또는 계획 파일에서 사람이 읽을 수 있는 출력을 제공합니다.

위의 정보가 Terraform 취업에 도움이 되기를 바랍니다.