본문 바로가기

IAC35

[Terraform] Terraform import와 terraforming (AWS) 1. Terraform import란? https://www.terraform.io/docs/cli/import/index.html Import - Terraform by HashiCorp Terraform can import and manage existing infrastructure. This can help you transition your infrastructure to Terraform. www.terraform.io Terraform import는 말 그대로 기존에 존재하던 인프라를 가져오는 기능이다 는 너무 내 희망회로였고, 공식 도큐를 잘 읽어보면 알겠지만 리소스를 그저 "상태"로 땡겨오는 기능이었다 심지어는 가져올 개체가 매핑될 리소스에 대한 빈 블록을 수동으로 미리 작성해놔야 했다 .. 2021. 11. 7.
[Terrafrom] IP Network Functions (cidrhost, cidrnetmask, cidrsubnet, cudrsubnets) 1. cidrhost https://www.terraform.io/docs/language/functions/cidrhost.html cidrhost - Functions - Configuration Language - Terraform by HashiCorp The cidrhost function calculates a full host IP address within a given IP network address prefix. www.terraform.io 주어진 IP 대역에서의 특정번째 호스트 IP 찾기 기본 구조 : cidrhost(prefix, hostnum) Ex) cidrhost("10.0.0.0/16", 39) > 10.0.0.39 cidrhost("192.168.32.96/27", 12.. 2021. 10. 18.
[Terraform on AWS] CSV 파일 참조해서 Security Group Rule 만들기 CSV 파일 형식 module/main.tf variable "sg_id" {} variable "rule_type" {} # ingress / egress variable "from_port" {} variable "to_port" {} variable "protocol" {} # tcp / udp / icmp variable "src_or_dst_type" {} # cidr(list) / pl(list) / sg variable "destination" {} variable "description" {} # Rule with CIDR Blocks resource "aws_security_group_rule" "sg_cidr_rule" { count = var.src_or_dst_type == "cid.. 2021. 10. 10.
[Terraform] 실행 환경 분리와 Backend 설정 (AWS/Terraform Cloud) Terraform Backend에 대해 썼던 기존 글 [Terraform] 테라폼 backend의 이해 [Terraform on AWS] 테라폼 backend, 상태 잠금 설정해보기 위 글들은 잘 모르는 상태에서 책 내용을 정리만 해 놓은 것이었다 테라폼을 실무에서 쓰게 되면서 깨닫고 느낀 것들을 다시 정리해 보겠다 Terraform 실행 환경 분리 & Backend 설정의 필요성 참고한 글 : https://rampart81.github.io/post/terraform-directory-structure/ Terraform은 기본적으로 apply가 일어나는 폴더 내의 .tf 파일들을 모두 실행시킨다 VPC/EC2와 같은 기본적인 인프라만 프로비저닝할거라면 상관없지만, Database/Directory/.. 2021. 10. 10.
[Terraform on AWS] Routing Module Example 21.11.5 수정 https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route registry.terraform.io Terraform AWS Routing은 대상의 종류에 따라 들어가야 할 옵션이 다르다 옵션 자체가 다르다 보니 삼항 구문을 이용한 조건문을 생성해 case처럼 사용할 수 있게 만들어야 했다 modules/main.tf variable "routings" {} variable "rt_id" {} variable "gateway" { default = ["ig.. 2021. 10. 3.
[Terraform CI/CD] Terraform Cloud 사용법 (GitHub -> AWS) 준비물 : GitHub 계정, AWS User ACCESS/SECRET KEY Terraform Cloud 계정 만들기 (5인 이하는 무료) : https://app.terraform.io/signup/account 이름, 메일, 비번을 가지고 간단하게 회원가입을 하면, Confirm Email Address라는 창이 뜬다 가입할 때 입력한 메일의 메일함을 확인해보면 Terraform Cloud로부터 메일이 하나 와있다 주어진 링크를 클릭하면 아래와 같은 창이 뜬다 나는 example 없는 Start from scratch를 눌러주었다 -> Organization을 만들라고 뜬다 Organization은 말 그대로 조직이고, 그 안에 프로젝트들을 여러 개 만들 수 있다 물론 Organization도 여러.. 2021. 9. 19.
[AWS] Code Series로 Terraform CI/CD 환경 구성해보기 들어가면서 AWS Code Series란? AWS의 CodeCommit, CodeBuild, CodeDeploy, CodePipeline을 통칭하는 단어 CodeCommit : AWS의 GitHub (버전 관리 서비스) - [AWS] CodeCommit 사용법 참고 CodeBuild : 소스코드 컴파일해주고 빌드해주는 서비스 (Source Repository의 buildspec.yml 파일대로 빌드) CodeDeploy : 배포하고자 하는 대상(Application)을 Deployment Group으로 배포시켜줌 (appspec.yml 파일대로) 가능 배포 대상 : EC2/On-premis, Lambda, ECS CodePipeline : Source - Build - Deploy 과정을 관리해주는 서비.. 2021. 9. 18.
[AWS] Private NAT Gateway Test (+ TGW, VPC Flow Log) https://aws.amazon.com/ko/about-aws/whats-new/2021/06/aws-removes-nat-gateways-dependence-on-internet-gateway-for-private-communications/ AWS, 프라이빗 통신을 위한 인터넷 게이트웨이에 대한 NAT 게이트웨이의 종속성 제거 이제, VPC에 인터넷 게이트웨이를 연결하지 않고도 Amazon Virtual Private Cloud(VPC)에서 NAT 게이트웨이를 실행할 수 있습니다. NAT 게이트웨이에 대한 인터넷 액세스를 제공하려면 인터넷 게이트웨이가 aws.amazon.com 이제 NAT GW를 IGW, EIP 없이 프라이빗한 용도로 사용할 수 있다고 한다...................? 도대.. 2021. 6. 16.
[AWS] Transit Gateway Multi Region 구축하기 for 행주 Transit Gateway 사용해보는 글의 마지막에서 2개 이상의 리전을 연결할 땐 각 리전별로 TGW를 만든 후 TGW끼리 연결하면 된다고 했다 그 과정을 간단한 실습을 통해 연습해보도록 하겠다 최종 아키텍처는 아래와 같다 시작! 1. 실습환경(VPC, EC2) 생성 - CloudFormation 이전 글의 실습에서 사용한 CloudFormation 파일을 좀 변형하여 실습에 필요한 VPC와 EC2를 생성하도록 하겠다 먼저 아래의 파일을 다운받자 그리고 원하는 리전 두 군데(본 포스팅에선 서울, 도쿄 사용)의 CloudFormation 스택을 생성해주자 ※ 버지니아, 오하이오, 캘리포니아, 오레곤, 도쿄, 서울만 가능 ※ 해당 리전에 Key Pair가 존재해야한다 (없으면 만들어두자) A.. 2021. 6. 15.
[AWS CloudFormation] Security Group Ingress 예제 (YAML) 참고로 Egress(OutBound)는 설정 안하면 0.0.0.0/0에 ALL로 열려있는게 Default다 1. ICMP 허용 Resources: [SG 리소스 이름]: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Allow ICMP GroupName: [SG 이름] SecurityGroupIngress: - IpProtocol: icmp FromPort: -1 ToPort: -1 CidrIp: [허용할 IP/bit] VpcId: !Ref [VPC 리소스 이름] 2. 모든 TCP 트래픽 허용 Resources: [SG 리소스 이름]: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: A.. 2021. 6. 14.