Public Cloud 환경에서 인프라를 관리하기 위한 방법으로 IAC를 이용한 방법이 있습니다.


IAC란?


가상화 기술의 발전으로 기하급수적으로 늘어나는 서버들에 대한 프로비저닝과 운영에 대한 이슈 발생으로

서버 구축과 운영에 대한 자동화가 필요로 프로그래밍 코드로 인프라를 구축/운영할 수 있는 IAC가 생겨났습니다.


이번 내용은 IAC 도구 중 테라폼을 이용한 환경 구성에 대한 가이드 입니다.


테라폼이란?

하시코프(Hashicorp)에서 오픈소스로 개발중인 클라우드 인프라스트럭처 자동화를 지향하는 코드러서의 인프라스트럭처(Iac)도구


Fortinet에서는 git을 운영하여 Terraform을 이용한 FortiVM 배포에 대한 기본 모듈을 제공합니다.

https://github.com/fortinet


이중 AWS 환경에서 FortiVM을 배포하기 위한  방법을 확인 해보겠습니다.


우선 테라폼을 사용하기 위해서는 테라폼을 구동할 위치(MAC, Windows, Linux 모두 가능)에 Install이 필요합니다.


구성 가이드는 아래 사이트를 참고 하시기 바랍니다.

https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli?in=terraform%2Faws-get-started


Windows

https://developer.hashicorp.com/terraform/install#windows

2. 환경변수 설정(오른쪽 이미지 참고)

3. 설치확인

CMD -> terraform version

Mac   

1. 브루를 사용해서 인스톨

  $ brew install terraform

2. 설치확인

  $terraform –version


테라폼을 시작하기 위해 최소한으로 필요한 정보


1. AWS의 계정 생성

Access Key, Secret Key 만들기


2. 생성된 Key를 이용해 Terraform 파일 *.tf을 생성하여 Provider는 AWS로 지정

region은 테라폼이 생성할 지역을 지정하는 것으로 여기서는 서울(ap-northeast-2)을 지정함


FortiVM 배포 방법

단순히 FortiVM만을 배포하는 것이라면, Fortinet git을 참고할 필요 없이 테라폼 사이트만 참고하여도 가능합니다.

여기서 Terraform 문법에 대한 설명은 별도로 하지 않습니다.


테라폼 사이트에서는 지원하는 벤더별 객체에 대한 구문을 확인할 수 있습니다.

FortiVM을 배포하려면 aws_instance 구문을 사용하면 됩니다.

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance


예시

resource(해당 객체를 생성하기 위한 구문) aws_instance(aws_instacne를 지정) TEST-Fortios(테라폼에서 인스턴스를 지칭하기 위한 임의 이름 지정)


하지만, 단순히 FortiVM만을 배포하기 위해서 테라폼을 사용하기 보다는 Fortinet에서 제공하는 모듈을 이용해 구축하는 것이 안정된 구성을 구축하는 방법입니다.

(단, Fortinet git에서 제공하는 모듈이지만, 별도의 Case open과 같은 Fortinet Tac 팀의 지원은 받을 수 없습니다.)



Fortinet 에서 지원하는 간단한 구성들은 아래와 같습니다.

AWS환경에서는 gwlb,tgw, ha와 같은 구성을 지원하기에 해당 구성을 고객사 환경에 맞게 일부 수정하는 것이 좋습니다.


aws-gwlb-tgw를 함께 사용하는 구성 예시


여기에 추가로 Autoscale 기능을 사용하고 싶다면, AWS의 경우 별도의 모듈탭이 존재합니다.


아래와 같이 asg가 포함된 예시들이 Autoscle을 지원하는 모듈로 볼 수 있습니다.


하나의 Security VPC를 새롭게 구성하여, 아래와 같은 구성을 할 수 있습니다.