해결된 질문
작성
·
210
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 를 이용중입니다.
위 언급한 레포가 제가 실제로 현업에서 사용하는 테라폼 코드를 공유한 레포입니다.
기초강의가 아닌 실제에서는 어떻게 사용하는지 참조를 할 수 있습니다~
그리고 해당 레포와 실무에 대한 설명은 추후 중급 강의를 통해 설명을 드릴 예정입니다.
감사합니다.