본문 바로가기

반응형

♻ Terraform(테라폼)

(39)
Terraform을 활용한 EKS 클러스터 설계 # Terraform을 활용한 EKS 설계... - 일단 Terraform을 활용해서 EKS 클러스터까지 구성을 하였는데, 소감은 복잡하다. 아직 Terraform을 완벽히 숙지하지 못한 부분도 있겠지만, 리소스 영역이 확립이 안돼서 그런 것 같다. 예를 들어 EKS 클러스터를 생성할 때 필요한 디펜던시 요소들이 어떤 것들이 있는지... 등등 정확한 리소스 사용에 대한 확립이 없이는 자유 자재로 컨트롤하기가 쉽지는 않을 거 같다. - 아래는 설계한 아키텍처 흐름을 표현한 그림이다. (내가 그렸지만 나도 하나하나 자세히 봐야하는건 문제다...) - 관련 소스는 보완이 되는대로 올리자. - Terraform을 활용해서 자유자재로 리소스를 컨트롤 하게끔 많은 노력과 연습이 필요할 듯싶다. # Terraform..
Terraform을 활용한 EC2 인스턴스 생성 및 아파치 웹서버 설치 # Terraform을 활용한 EC2 인스턴스 생성 후 아파치 웹서버를 설치하여 확인을 해보자. 1. 목표 아키텍처 확인하기 - 이해를 돕기 위해 주요 리소스에 넘버링을 하였다. - EC2 인스턴그 관련 리소스만 설명을 하면 아래와 같다. (파란색 바탕의 넘버링 확인) ① EIP : EC2 인스턴스가 사용할 EIP를 생성한다. ② EC2 인스턴스 : 퍼블릭 망에 존재하는 EC2 인스턴스이다. ②-① : EC2 인스턴스에 구성될 Apache WebServer이다. ③ PrivateKey : RSA 알고리즘으로 구성된 TLS Private Key이다. ④ 보안그룹 : 해당 EC2 인스턴스에서 사용할 보안그룹을 생성한다. (인바운드와 아웃바운드도 설정) ⑤ KeyPair :. pem으로 구성된 Key_Pair..
Terraform - Module을 활용한 VPC 설계 # 생성 리소스 설명 -목표 아키텍처는 아래와 같고, Terraform Module을 활용하여 VPC를 설계한다. - 리전 : ap-northeast-2 (서울) - AZ : A영역과 C영역 사용 - 서브넷 : 4개 (퍼블릭 2개, 프라이빗 2개) - 인터넷 게이트웨이 : 1개 - NAT 게이트웨이 : 1개 - EIP (NAT에서 사용) : 1개 - 퍼블릭 라우팅 테이블 : 1개 - 프라이빗 라우팅 테이블 : 1개 - 기타 : 라우팅 테이블 연결 작업 → 퍼블릭 서브넷 2개, 프라이빗 서브넷 2개 - EC2 : 2개의 프라이빗 인스턴스 생성 # 목표 아키텍처 - BasicVPC 0. 기본 폴더 구조 확인 - 기본 폴더 구조는 아래와 같다. ① 리소스를 생성하기 위한 변수들을 입력한다. ② vpc.tf에서..
Terraform Module 구조 설명 # Terraform Module 구조 설명 - Terraform Module 구조를 확인하는 방법 - 아래의 명령어로 현재의 구조를 확인할 수 있다. tree . - tree. 명령어를 실행한 결과는 아래와 같다. 아래 구조를 잠시 설명하자면, Terraform_seung라는 폴더가 있고 그 밑에 다른 폴더는 생략하고 modules라는 폴더가 존재, 해당 폴더 아래에 module.ec2와 module.vpc가 존재하는 구조라고 볼 수 있다. - 아래의 링크를 참조하여 모듈을 왜 사용하는지 확인한다. 2022.04.15 - [Terraform(테라폼)/Terraform Modules] - 모듈을 활용한 재사용 가능한 인프라 생성 모듈을 활용한 재사용 가능한 인프라 생성 테라폼의 핵심은 바로 모듈을 활용한..
테라폼 모듈을 2개 사용하는 방법 When you declare modules as follows in ./main.tf: module "networking" { source = "./modules/networking" } module "security" { source = "./modules/security" } The references to module.networking and module.security are only in scope for local variables, resources, data sources, outputs, and expressions in TF files in the same directory (./*.tf in this case). Since ./modules/security/security.tf i..
Terraform 모듈 사용 시 주의 할점 (file path 관련) # Terraform 에서 모듈 사용 시 file path 와 관련하여 설명 - 아래의 내용을 보면 private_ec2_postgresql.tf 파일에서 사용하는 private_key 파일의 패스 파일의 주소가 입력 되어 있다. 근데 실제로 module을 사용하여 작업을 수행하면 파일이 존재하지 않는다는 메세지가 나온다. 이유는 간단한데, 모듈은 모듈의 root 경로에서 파일을 찾고, private_ec2_postgresql.tf는 해당 파일이 존재하는 폴더의 경로에서 파일을 찾기 때문에 파일을 참조하는 위치가 다르기 때문이다. - 매우 당연한 이야기 인데, 그래서 만약에 root 경로에서 실행하는 것이 아니고, 해당 모듈에서 직접 terraform 리소스 생성을 실행할 경우 위와 같이 private_..
Terraform을 활용하여 기존 인프라 정보를 가져오기 # AWS로 구성된 기존 인프라를 가져오는 방법에 대해서 설명 1. terraforming을 통한 기존 인프라 코드를 가져오기 - 일단 지금은 AWS만 지원이 되며 Ruby on Rails가 설치 되어 있어야 한다. https://rubyinstaller.org/downloads/ Downloads Which version to download? If you don’t know what version to install and you’re getting started with Ruby, we recommend that you use the Ruby+Devkit 3.1.X (x64) installer. It provides the biggest number of compatible gems and inst..
목표 아키텍처 구성 및 terraform 을 활용한 생성 # 목표아키텍처를 기반으로 테라폼 코드를 활용한 인프라 구성 1. 목표 아키텍처 - 목표 아키텍처 리소스 VPC, 인터넷 게이트웨이, NAT 게이트웨어, EC2 인스턴스, 퍼블릭 서브넷 2개, 프라이빗 서브넷 2개, ap-northeast-2 A-C - 위와 같이 목표 아키텍처를 정의 하였고, 실행한 아파치 웹서버로 접근을 하게 되면 아래와 같은 페이지를 출력하게 된다. 2. 테라폼 코드 살펴보기 - 일단 모듈로 구성을 했기때문에 폴더 구조는 아래와 같다. - Root 경로의 파일을 정의하여 해당 모듈인 vpc 및 ec2를 실행하여 리소스를 생성하는 구조이다. - ec2 폴더 main.tf 더보기 # RSA 알고리즘을 이용해 private 키 생성 resource "tls_private_key" "pk"..

728x90
반응형