목록DevOps/Terraform (5)
devops
토스 DevOps Engineer, 김형록님의 개발자 컨퍼런스 내용을 정리해봤다. 안전하게, 편하게, 실수하지 않고 운영하기 위해서 GitOps와 OPA를 활용한다. 1. ArgoCD를 이용한 GitOps 패턴 2. Open Policy Agent(OPA)를 통한 안전 정책 적용 쿠버네티스의 컨테이너는 네트워크에 내에 높은 복잡도는 가시성을 떨어뜨려 휴먼에러나 보안 구멍을 발생하게 된다. 소통 과정 혹은 새로운 팀의 참여를 통해 발생할 수 있는 문제도 무시할 수 없다. 이런 문제들을 토스는 GitOps와 OPA로 해결했다. 토스는 크게 3가지 정도는 쿠버네티스 Cluster를 운영하고 있다. 1. Testbed : 아무 트래픽이 없는 클러스터 2. Dev : 개발/테스트 목적의 트래픽이 있는 클러스터 3..
Terraform Backend Terraform의 State 파일을 저장하는 위치와 어디서 가져올지에 대한 설정이다. 대체로 로컬에 저장하지만 설정에 따라서 s3, consul 등 다양한 backend type을 사용할 수 있다. Backend를 사용하는 이유 1) 대체로 Terraform 코드는 혼자 작성하지 않는다. 인프라를 변경하는 것은 민감하기 때문에 원격 저장소를 활용해서 같은 state를 사용하는 것을 막을 수 있다. 2) 로컬 스토리지에 저장하면 유실의 위험이 있다. 그래서 S3와 같은 원격 저장소를 활용하기도 한다. *주로 s3를 많이 사용한다. terraform { backend "s3" { bucket = "terraform-s3-bucket" # s3 bucket 이름 key = "..
간단한 기본 개념 복습 VPC : 사용자의 AWS 계정 전용의 가상 네트워크 서브넷(Subnet) : VPC의 IP 주소 범위 라우팅 테이블(Route Table) : 네트워크 트래픽을 전달할 위치 결정 인터넷 게이트웨이(Internet Gateway) : VPC의 리소스와 인터넷의 통신을 위해 사용되므로 VPC에 연결 Internet Gateway vs Nat Gateway IGW : VPC와 인터넷간의 통신을 활성화 NAT : 프라이빗 서브넷의 인스턴스가 인터넷에 연결할 수 있도록 해줌, 인터넷에서 원치않는 인바운드 연결 수신 차단 NAT는 위치가 Public Subnet에 있어야하며, 연결을 Private Subnet과 한다. EIP 생성이 필요하며 생성 및 삭제에 시간이 소요되는 편이다. *서브넷..
이용욱님 삼성전자 / Cloud 운영 그룹 Dev, DA/DBA, TechOps, DevOps, SRE IaC(Infrastructure as Code) 인프라 생성, 설정 관리를 코드로 작업 -> 반복 재현성, 이력관리 가능 인프라 코드와 설정 문서를 한번에 할 수 있는 장점이 있음 빠른 공유와 병렬 작업이 가능 정적인 인프라는 Terraform으로 운영, 수정이 잦은 배포(Auto Scaling Group, Image)의 경우 Ansible 사용 Spinnaker는 파이프라인부터 배포 설정까지 하는 데 주로 사용 주로 Spinnaker와 Terraform을 큰 축으로 가져가고 있음 쿠버네티스는 배포 스펙 지정에 편리해서 사용 Terraform 1. 관리 범위 쪼개기 Communication cost ..
Terraform 기본 구성 Provider : 테라폼으로 생성할 인프라 종류(AWS, GCP 등) Resource : 인프라 자원, AWS에서는 EC2, S3와 같은 인프라 내부 서비스로 생성되는 자원 State : 테라폼으로 생성한 자원 상태. 파일 형태로 남아있어, 테라폼 명령어를 실행한 결과물 Output : 테라폼으로 만든 자원을 변수 형태로 State에 저장 Module : 공통적으로 사용할 수 있는 코드들을 모듈 형태로 정의. Remote : 다른 경로의 State를 참조하는 것으로 Ouptut 변수를 불러 올때 사용 Terraform 기본 명령어 init : 테라폼 명령어 사용을 위한 설정 실행. plan : 테라폼으로 작성한 코드 실행시 만들어질 결과 예측, 가장 많이 사용 apply :..