• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    해결됨

테라폼으로 EC2 생성 시 내부 미들웨어 설치 관련하여 문의드립니다.

21.02.04 13:46 작성 조회수 145

2

안녕하세요 강사님!

강사님의 강의 듣고 테라폼의 다양한 기능을 사용하고 싶어서 테스트 중입니다!

궁금한게 하나 있어 질문드립니다. 

제가 테라폼을 이용해서 AWS 기본 인프라 생성 후 EC2까지 생성하는 테라폼을 만들었습니다.

추가적으로 EC2가 생성된 후 서버 내부에 nginx라던지 k8s라던지 openvpn 같은 미들웨어도 설치를 시키고 싶습니다. 

위 작업이 테라폼으로 가능하다면

현업에서는 보통 어떤식로 구현을 하는지 궁금합니다.

현업에서 사용하는 테라폼의 기능이나 3rd 솔루션 등에 대해 피드백을 받고 싶습니다!

자세한 방법이 아니라도 구글에 검색해서 찾을 수 있을 정도의 

키워드나 정보를 주시면 정말 감사하겠습니다!! 

답변 1

답변을 작성해보세요.

1

안녕하세요.

EC2 내에 무엇인가 설치하는 작업은 실제 Terraform 이 하는 영역은 아닙니다.

하지만 Terraform 을 통해서 명세는 할 수 있습니다.

EC2는 최초의 인스턴스가 Launch 할때 실행되는 스크립트인 userdata 를 정의할 수 있습니다.

즉 Terraform 으로 EC2 혹은 AutoScailingGroup 을 만들고, userdata 값에 원하는 스크립트

예를들면, nginx 설치, application 설치 같은걸 진행할 수 있습니다.

설치 방법은 bash 를 이용해도 되고, bash 를 이용해 ansible 을 실행할 수 도 있습니다.

https://github.com/DevopsArtFactory/aws-provisioning/tree/main/terraform/platform/jenkins/_module/jenkins

위 깃허브를 가시면, ASG + jenkins 설치를 Terraform 을 이용해서 하는 방법을 볼 수 있습니다.

Jenkins 를 설치하는 부분을 원하시는 다른 설치 스크립트로 변경하시면 이해를 쉽게하실 수 있을겁니다.

방법은 다양하지만 저같은 경우는 EC2의 무엇인가 설치할때는 대부분 ansible 을 사용하고 있습니다.

그리고 이미 설치가 되어있는 AWS AMI 를 만드는 경우도 필요한대 그 경우, Terraform과 같은 회사에서 나온

Packer 를 이용중입니다.

위 언급한 레포가 제가 실제로 현업에서 사용하는 테라폼 코드를 공유한 레포입니다.

기초강의가 아닌 실제에서는 어떻게 사용하는지 참조를 할 수 있습니다~

그리고 해당 레포와 실무에 대한 설명은 추후 중급 강의를 통해 설명을 드릴 예정입니다.

감사합니다.