23.11.28 – Rocky Linux는 현재 지원하지 않습니다. 1. Cloud Log Analytics 신청 (콘솔)2. Management 탭에서 대상 서버 수집 설정 3. 수집 필요한 로그 지정 > 적용 선택 Template의 Apache, Tomcat, mysql은 yum install 기본 경로로 별도 경로에 설치한 경우 custom log로 추가합니다. b. 날짜별로 rotate 되는 로그의 경우 날짜 앞에 *(asterisk)로 수집 가능 예) /usr/local/tomcat/logs/* 4. 아래 페이지 가이드와 같이 서버 내 Agent 설치 - Log 수집 설정이 변경되면 Agent를 다시 설치해야함 (yml 파일 설정 반영) 5. 설치 과정에서 오류가 없는지 =====Fi..
분류 전체보기
CI/CD 툴인 Atlantis를 통해 Custom workflow를 통해 인프라를 구성합니다. Atlantis?Atlantis는 pull request를 통해 Terraform을 자동화하는 오픈소스입니다.Terraform 코드를 pull request 하고, comment에 atlantis plan, atlantis apply를 통해 테라폼 코드를 배포할 수 있습니다. Atlantis의 기본 동작은 아래와 같습니다.github 또는 gitlab, bitbucket을 통해 PR(pull request)를 보냅니다.git repo에 설정해노흔 webhook을 통해 atlantis에서 comment에 입력된 명령어를 전달받아 terraform을 수행합니다. Atlantis 구축해보기repo는 github을 ..
최근 미팅에 참석하니, 환경상 인프라 3대 이상 사용은 어렵고,인스턴스 이중화가 아니더라도 Tomcat이라도 무중단이 되었으면 좋겠다고 하였다.(마치 blue green 처럼...) 생각한 구성은 이랬다. Instance : WEB-WAS(1ea), DB(1ea)SW : nginx, tomcat, redis, mysql Tomcat 1,2 을 두고 톰캣에 auto deploy 설정을 해놓고,배포가 필요할 때 꺼져있는 톰캣에 war 파일을 업로드해주면 가능할 것 같았다.Session 저장은 redis에 할 것이기 때문에 크게 신경쓰지 않았다. Tomcat 2대에 auto deploy 설정해준다. nginx.conf 설정을 해준다. 실제 배포를 해보니 넘어가는 순간 WAS 커넥션이 유실되어 5..
어느덧 절반을 했다.terraform이 생소해서 아직 손에 익지 않았지만 천천히 익숙해질 때까지 해보겠다. Provider1. Terraform의 동작 원리 테라폼은 코드를 읽어 코드가 실행이 가능한지 분석하고, 가능하다면 API를 통해 대상에 속성이 반영되도록 호출합니다. core 컴포넌트는 사용자의 코드에 대해 순서를 작성하고, 플러그인에게 RPC 통해 코드 실행을 요청한다.플러그인은 go 바이너리를 통해 대상에게 api로 실행을 요청한다.terraform 코드에서도 required_providers를 선언하므로 어떤 프로바이더를 사용할지를 명시한다. terraform init명령어를 수행하면 플러그인 (프로바이더) 모듈을 다운로드 받는다.init이 완료되면, .terraform 디렉토리가 생성되는데..
for_expression을 활용하여, AWS 인스턴스 배포 - vpc.tfprovider "aws" { region = "ap-northeast-2"}resource "aws_vpc" "ssungz-vpc" { cidr_block = "10.100.0.0/16" tags = { Name = "ssungz-vpc" }}resource "aws_subnet" "ssungz-subnet" { for_each = var.subnets vpc_id = aws_vpc.ssungz-vpc.id cidr_block = each.value.cidr_block availability_zone = each.value.az map_public_ip_on_launch = each.value.public ..
- data를 통해 az 조회 및 조회 데이터로 리소스 생성 - available 상태의 zones 조회data "aws_availability_zones" "az_list" { state = "available"}output "aws_availability_zones" { value = data.aws_availability_zones.az_list} - ap-northeast-2a, ap-northeast-2c 두개 존에 ec2 배포 기본 서브넷 문제로 서브넷은 변수로 할당provider "aws" { region = "ap-northeast-2"}data "aws_availability_zones" "az_list" { state = "available"}data "aws_ami" "ec2-..
- VPC, ec2, alb 구성 실습[vpc.tf]provider "aws" { region = "ap-northeast-2"}variable "name" { default = "ssungz"}variable "cidr" { type = list(string) default = ["10.100.0.0/16", "10.100.1.0/24", "10.100.2.0/24" ] }variable "az" { type = list(string) default = [ "ap-northeast-2a", "ap-northeast-2c" ]}resource "aws_vpc" "ssungz-vpc" { cidr_block = var.cidr[0] enable_dns_hostnames = true enab..
- 조건에 일치하는 검증 조건 변수에 입력된 파일 리스트와 파일 이름이 일치하면, 코드 수행variable "file_name" { type = list(string) default = [ "abc-0.txt", "abc-1.txt", "abc-2.txt", "abc-3.txt", "abc-4.txt", "abc-5.txt", "abc-6.txt" ]}resource "local_file" "test_file" { for_each = toset(var.file_name) content = "abc" filename = "${path.module}/abc-${each.value}.txt" lifecycle { precondition { condition = contains(var...
1. EC2 웹 서버 배포 - init.sh#!/bin/bashapt-get updateapt-get install -y apache2echo "hoon-test-web" > /var/www/html/index.htmlsystemctl start apache2systemctl enable apache2 - main.tfprovider "aws" { region = "ap-northeast-2"}data "template_file" "init-sh" { template = file("init.sh")}resource "aws_instance" "test-web-srv" { ami = "ami-0e73d7a01dba794a4" instance_type = "t2.micro" associate_pub..
조건문Conditional Expressions 테라폼에서의 조건식은 3항 연산자 형태를 갖는다.조건은 true / false로 확인되는 모든 표현식 사용이 가능하다. Docs 조건식은 ? 기호를 기준으로 왼쪽은 조건이며, 오른쪽은 : 기호를 기준으로 왼쪽이 조건에 대해 true가 반환되는 경우이고,오른쪽이 false가 반환된다.# ? : var.a != "" ? var.a : "default-a" 조건식을 통해 단순 변수 재정의나 출력 값에 대한 조건 정의 뿐만 아니라 리소스 생성 여무에 응용할 수 있다.count에 조건식을 결합한 경우 아래와 같이 특정 조건에 따라 리소스 생성 여부를 선택할 수 있다.variable "enable_file" { default = true}resource "loc..