분류 전체보기 64

IaC : Terraform - 테라폼 모듈(module)로 재사용가능한 인프라 구성

각 환경( 스테이징, 프로덕션 .. )의 인프라는 거의 동일하지만 미세한 차이가 있는 정도⇒ 코드를 복사하여 붙여넣기⇒ HCL에서 중복되는 코드를 모듈로 만들어서 여러 위치에서 재사용( 범용프로그래밍 언어에서 동일한 코드를 함수내부에 배치하여 재사용하는 개념과 유사 ) 코드 이전작업없이 모듈을 참조하여 동일한 코드환경을 가지게 됨( 재사용성 ) ⇒ 모듈이란 여러환경에서 동일한 인프라환경을 구축하기 위해 사용하는 기술   기능 디렉토리별로 모듈을 만든다고 생각함( services/web-cluster, services/data-store 등 )root 모듈 : terraform apply 명령을 수행하는 위치, 직접 적용을 실행하는 모듈other 모듈 : 테라폼 구성파일세트, 루트 모듈 안에서 module..

CLOUDWAVE 2025.02.07

IaC : Terraform - 테라폼 상태관리 및 상태파일(tfstate)

Terraform상태관리terraform apply를 실행할때마다 생성한 리소스를 찾아 그에 따라 업데이트를 수행terraform의 상태관리 : 상태정보를 저장한 파일의 내용(terraform.tfstate)과수행작업을 담은 main.tf파일을 비교하여 상태와 일치하지 않은 경우에만 작업을 수행 → 멱등성을 보장( terraform.tfstate :: 멱등성을 위해 상태정보를 저장 ) 업무 프로세스는 다양한 리소스의 상태파일(tfstate)을 공유상태파일 공유저장소(동일한 상태파일에 접근)를 구축 → 상태파일 잠금기능(lock)으로 무결성 보장, 격리git에 업로드하는 것은 권장하지 않음( 버전관리 서비스가 아닌 공유저장소 : S3 등 ⇒ 원격 백앤드가 지원됨 )S3 : DB를 통한 잠금(lock)을 수..

CLOUDWAVE 2025.02.07

IaC : Terraform 실습 - 웹클러스터 배포, 로드밸런서 배포, 자원반환

웹서버 클러스터 배포여러개의 인스턴스를 만들어 서버 클러스터 구축 → 개별 인스턴스에 문제 발생시(트래픽 과부하) 다른 인스턴스가 동작하며 다운타임을 줄이고 적절하게 라우팅하도록 하여 안전성을 확보가능 AWS의 ASG(Auto Scaling Group) 서비스 : EC2 인스턴스 클러스터 시작, 각 인스턴스 상태 모니터링, 실패한 인스턴스 교체, 로드에 따른 클러스터 크기 조정 등 많은 작업을 자동으로 처리 (1) 사전에 launch_configuration( launch_template ) 설정 : 각 EC2 인스턴스를 구성하는 방법을 지정 (공통속성에 대한 정의)resource "aws_launch_configuration" "example" { image_id = "ami-024ea4..

CLOUDWAVE 2025.02.07

IaC : Terraform 실습 - 단일 서버배포, 단일 웹서버배포, 구성가능한 웹서버배포

기존의 포트값 = 기존과 동일한 인스턴스의 사용 → destory작업이 전혀 없음Terraform을 이용한 단일서버 배포 실습VSCode에서 ssh로 가상머신에 연결하여 작업( 권장 )  Terraform 코드는 확장자가 .tf 인 파일에 HCL(HashiCorp 구성 언어)로 작성 ( main.tf ) 이때 tf파일에는 ACESS_KEY등의 개인정보를 입력하지 않도록 함 ( 노출의 위험 )  (1) 공급자 구성provider "aws" { region = "ap-northeast-2"}Terraform에 AWS를 공급자로 사용할 것이며 인프라를 ap-northeast-2 지역에 배포할 것임을 선언aws provider를 사용하겠다는 선언 → aws 전용 바이너리를 다운받아서 사용가능region을 고정..

CLOUDWAVE 2025.02.07

IaC : Terraform - 테라폼 소개, 테라폼 환경 구축

테라폼 소개클라우드 및 온프레미스 리소스를 모두 정의할 수 있는 코드형 인프라 관리도구일관된 워크플로우로 전반적인 인프라 수명주기를 관리하고 프로비저닝하는 역할 DevOps란전통적인 운영작업(Ops) : 개발후 코드를 배포하고 실행하는 작업, 수동으로 수행 → 눈송이 서버(snowflake server)(미묘하게 다른 구성, 종속성 설치가 상이) → 버그의 수 증가, 가동 중단 및 다운타임 자주 발생최근의 운영작업 : 인프라를 클라우드 환경으로 전환 + 자동화 도구를 이용하여 소프트웨어적으로 제어코드를 지속적으로 통합하고 배포가능한 상태로 유지 = 실행환경(runtime)을 일관적으로 유지DevOps의 핵심가치(4가지) : 문화, 자동화, 측정(모니터링 도구), 공유(약어로 CAMS라고도 함-git,no..

CLOUDWAVE 2025.02.07

IaC : Ansible 변수관리 및 작업제어

[ Ansible 변수관리 ]변수란? 재사용할 수 있는 값을 저장하는 대상, 동적인 환경에 따라서 바뀔 수 있는 값변수는 여러 위치에 정의가능 ( *총 23개의 위치 ) → 특정 호스트 그룹, 개별 호스트 단위 & 플레이, 플레이북 단위 등 다양한 범위에서 적용동일한 이름의 변수를 여러 위치에 정의했을때 우선순위가 높은 것이 적용됨 ( 위치에 따라 다른 우선순위 )Scope이 좁은 것이 우선순위가 높다.명령어 인자 옵션(CLI) : 특정실행에만 한정되는 변수정의로 가장 낮은 우선순위를 가짐 ansible-playbook playbook.yml -e "var1=value1”ansible-playbook playbook.yml --extra-vars "var1=value1”Playbook 내부변수 : 특정 ..

CLOUDWAVE 2025.02.01

IaC : Ansible 구성요소 - config file, Inventory file, Playbook

Ansible구성의 3가지 파일configuration fileplaybook fileinventory file→ 작업 디렉토리를 별도로 생성하고 해당 작업파일들을 생성→ cloud환경뿐아니라 on-premise상의 기기( VM을 로컬상에 직접 생성 )에도 전달하여 적용할 수 있음 ( 원하는 호스트에 적절한 작업을 수행 ) 구성파일( configuration file )Ansible의 동작방법을 설정하는 파일( 연결설정, 권한설정 )기본위치 /etc/ansible/ansible.cfg 에 위치 ( ansible --version으로 각 파일의 위치 및 설정확인가능 ) 이 위치는 기본위치일뿐이고 → 현재 ansible을 수행하는 경로의 cfg파일이 우선순위가 높음 ( 우선순위 : ./ansible.cfg ..

CLOUDWAVE 2025.02.01

IaC : Ansible 소개 및 설치

Cloud Native: 클라우드 이점을 최대로 활용하여 현대적인 애플리케이션을 구축하고 실행하는 방식 동적 인프라 환경에서 유연성, 가용성, 확장성을 갖추어 효율적인 애플리케이션 개발, 배포, 운영을 지향함 DevOps : 개발(Dev)과 운영(Ops)을 통합하여 협업 및 자동화를 강화하는 문화와 방법론 → 빠르고 안정적인 배포 및 유지보수 IaC(Infrastructure as Code) 도구 사용 (예: Ansible, Terraform) CI/CD : 코드 통합, 테스트, 빌드, 배포 프로세스를 자동화하여 배포 속도와 품질 극대화 GitHub Actions, Jenkins, ArgoCD Container : 애플리케이션과 그 실행환경(운영체제와 라이브러리,..

CLOUDWAVE 2025.01.31

Public Cloud(AWS) : Network Connectivity service - VPC Peering, VPC Endpoint, Route53

Network ConnectivityVPC PeeringPeering : 격리되어있는 서로 다른 2개이상의 VPC간의 네트워크 연결 → 매우 광범위한 연결까지 지원( 동일계정의 서로다른 VPC, 다른계정의 서로다른 VPC, 다른리전의 서로다른 VPC )연결자체는 무료이지만 트래픽에서 과금이 발생가능 ( 동일 리전, AZ의 데이터 트래픽은 무료이지만 이를 교차하는 트래픽에는 과금 )제약사항 : CIDR Block이 겹치는 경우 VPC Peering 구성 불가능 & 전이적 연결 제한 ( 통신을 위해서는 직접 피어링 ) VPC Peering 실습  [ 동일 리전 VPC Peering 연동 ] 피어링 연결 생성(1) VPC1이 요청자 & VPC2이 수락자 → 요청을 수락해야 피어링이 활성화됨  (2) 피어링된 ..

CLOUDWAVE 2025.01.30

Public Cloud(AWS) : Management Service - CloudFormation, CloudWatch

Management Service CloudFormation[ Cloud Native IaC Tools ]IaC : 콘솔환경이 아닌, 코드로 리소스를 구축 → 저장가능, 여러 환경해서복사하여 구축가능→ 대표적으로 terraform : 특정 벤더사에 종속되지 않고 모든 클라우드환경에서 사용가능CSP가 제공하는 IaC 솔루션은 클라우드 시스템에 종속 ( 벤더사에서 운영관점의 문제를 담당하여 해결 및 지원가능 ) Cloudformation : AWS 환경안에서만 동작하는 IaC tool, GUI방식으로 작업가능 코드를 템플릿 형태로 만들어 관리 & STACK을 생성 → AWS Resource의 생성, 관리, 업데이트를 자동화   [ CloudFormation 구성 ] templates : 인프라가 코드로 정의..

CLOUDWAVE 2025.01.24