IaC 8

EKS 환경에서 오브젝트(GitLab-Runner) 배포 -2

EKS 환경에서 오브젝트(Sonarqube, ArgoCD) 배포 -1 에 이어서 작성하도록 하겠다.gitlab-runner는 yaml로 배포하는 방식, argocd를 활용해 배포하는 방식.. 등이 있다. 2.4 GitLab Runner 배포# helm 저장소 추가 및 업데이트helm repo add gitlab https://charts.gitlab.iohelm repo update2.4.1 yaml로 배포하는 방식 2.4.1 .1 GitLab Personal Access Token 생성전체 소스 코드 apiVersion: v1kind: Namespacemetadata: name: gitlab-runner---apiVersion: v1kind: ServiceAccountmetadata: name: g..

IaC 2025.01.03

EKS 환경에서 오브젝트(Sonarqube, Argocd) 배포 -1

CloudFormation을 통해 VPC, EC2, EKS 등 인프라를 생성하고EC2의 Shell Script를 통해 EKS 오브젝트(EKS Pod, Ingress)를 배포할 예정이다. 1.  사전 작업IaC(Cloudformation) 기반으로 인프라를 생성한다.Private EC2를 생성하여 EKS를 관리하고자 한다.메인 작업을 위해 EC2에 필요한 솔루션 설치 및 IAM Role 설정하여 환경 구성을 한다.모든 작업은 IaC 및 Script 기반으로 수행한다. (코드는 github 게시 예정)1.1 EC2 생성1.1.1 eksctl 설치https://wrynn.tistory.com/62curl --silent --location "https://github.com/weaveworks/eksctl/..

IaC 2024.12.06

[Terraform] 배포 및 플래그

Terraform 배포 시 사용되는 명령어 및 플래그를 정리해 둔 공간입니다.배포initTerraform 작업 디렉터리를 초기화planTerraform 구성 파일 기반 실행 계획 생성실제로 리소스를 변경하지 않고, 어떤 리소스가 추가, 변경, 삭제될지 미리 보여줌applyTerraform plan 명령어에서 생성된 실행 계획을 실제로 실행하여 인프라 변경 terraform initprovider가 정의되어 있는 위치에서 해당 명령어를 입력한다면 provider, module, state를 설정한다. (사용준비) .terraform 디렉터리 생성, .terraform.lock.hcl 파일 생성 terraform plan이전 state와 비교하여 변경될 내역을 보여준다.terraform apply현재 작성된..

IaC 2024.06.11

[Terraform] 디렉터리 구조

.terraform 의존되는 파일들이 다운로드(외부, 로컬까지도) 되어 저장되는 공간이다.내부적으로 .tfstate의 정보 포함 .teeraform.lock.hcl의존성 관련 잠금파일이다. 의존되는 파일들에 대해 명시되어 있다.git과 같은 버전관리 시스템에서 .terraform 디렉터리를 업로드하지 않고 이 파일만 업로드한다. 다른 PC/유저들은 init 명령어를 사용하여 이 파일에 명시되어 있는 의존 파일들을 다운로드한다. terraform.tfstateTerraform의 상태 파일이다. apply를 통해 실제 인프라에 적용한 결과를 기억하는 파일이다.인프라 설계 인원이 많아질 경우 이 파일을 원격으로 공유하며 사용해야한다.각 로컬에서 관리할 경우 모든 이들의 tfstate가 다르므로 인프라가 꼬일 ..

IaC 2024.06.11

[Terraform] 용어

Terraform 키워드 terraformprovider Terraform 자체에 대한 설정을 작성하는 블록 Terraform과 외부 서비스를 연결해주는 기능 resourcedata 인프라 구성요소 Terraform 외부에 정의되어 있는 정보를 가져와서 사용할 수 있게 해주는 기능 variablelocals개발자로부터 입력받는 변수. 재사용성 O지역변수 선언 키워드. 현재 파일에서만 사용 가능outputmodule인프라에 대한 정보를 명령줄에 노출(숨기기 가능)시킬 수 있으며 자식 모듈의 output 값에 접근하여 사용할 수 있게 해주는 기능하나의 폴더 내에 있는 Terraform 구성 파일들의 집합 terraformterraform {  required_providers {    aws = {   ..

IaC 2024.04.02

[Terraform] 환경 구성

참조 문서: https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html 1. Terraform 설치VS Code에서 Extensions > HashiCorp HCL 설치환경변수 설정 2. AWS IAM 계정 생성AccessKey 발급: AWS Console 액세스가 아닌 프로그래밍 방식 액세스가 필요하므로, 자격 증명 유형은 액세스 키 이다. 3. AWS CLI 설치https://awscli.amazonaws.com/AWSCLIV2.msi설치 확인$ aws --versionaws-cli/2.15.34 Python/3.11.8 Windows/10 exe/AMD64 prompt/off 4. 액세스 키 설정$ aws c..

IaC 2024.04.02

IaC 도구 비교

Terraform Ansible CloudFormation 유형 프로비저닝 구성 관리 프로비저닝 오픈소스 여부 공개 공개 비공개 적용 대상 클라우드 멀티 멀티 AWS 전용 정책 설정 가능 불가능 부분적 구성 방식 Immutable mutable Immutable 라이프사이클 관리 가능 불가능 부분적 온프레미스 지원 부분적 부분적 불가능 ✔︎ Immutable : 인프라스트럭처의 상태를 변경할 때, 기존 인프라스트럭처를 수정하거나 업데이트하는 것이 아니라 새로운 인프라스트럭처를 생성하여 이전 상태의 인프라스트럭처를 교체하는 방식을 의미한다. Ansible 프로비저닝보다 구성 관리에 더 큰 장점을 가지고 있고, 테라폼으로 자원을 생성(프로비저닝)하고 앤서블로 생성된 자원에 대한 구성 관리하는 방식으로 조합해..

IaC 2024.04.02

[Bash] EC2의 user data를 사용해 Init Script 작성

참고 블로그: https://velog.io/@_woogie/EC2%EC%8B%9C%EC%9E%91%ED%95%A0-%EB%95%8C-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%9E%90%EB%8F%99%EC%8B%A4%ED%96%89%ED%95%98%EC%97%AC-%EC%84%9C%EB%B2%84-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0feat.-pm2 https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/user-data.html서버 재부팅시 자동으로 서비스 올라가는 스크립트를 작성할 것이다. ssh password 로그인 활성화#!/bin/bashsudo -ised -i 's/PasswordA..

IaC 2024.02.09