전체 글

개발과 운영, 박찬우의 기술 블로그입니다.
IaC/Terraform_테라폼

[Terraform] 기본 사용법#6 (프로비저너, null_resource와 terraform_data, moved 블록, CLI 시스템 환경 변수)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 3주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 프로비저너프로비저너는 프로바이더와 비슷하게 ‘제공자’로 해석되나, 프로바이더로 실행되지 않는 커맨드와 파일 복사 같은 역할을 수행한다. 예를 들어 클라우드에 리눅스 VM을 생성하는 것에 더해 특정 패키지를 설치해야 하거나 파일을 생성해야 하는 경우, 이것들은 테라폼의 구성과 별개로 동작해야 한다. 프로비저너로 실행된 결과는 테라폼의 상태 파일과 동기화도지 않으므로 프로비저닝에 대한 결과가 항상 같다고 보장할 수 없다.따라서 프로비저너 사용을 최소화 하는 것이 좋다. 프로비저너 종류에는 파일 복사와 명령어 실행을 위한 file, ..

IaC/Terraform_테라폼

[Terraform] 기본 사용법#5 (for, for_each, dynamic 반복문, 조건식, 함수)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 3주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 반복문1.1 for_each 반복문for_each는 반복(for)을 할 때 타임 값에 대해 하나하나 each object로 접근한다는 의미이다.즉, 리소스 또는 모듈에서 for_each에 입력된 데이터 형태가 map 또는 set이면, 선언된 key 값 개수만큼 리소스를 생성하게 된다.for_each : 반복문으로, 선언된 key 값 개수만큼 리소스를 생성함 다음과 같이 tf파일을 생성하여 apply를 실핼해보겠다.# main.tfresource "local_file" "abc" { **for_each** = { **a =..

IaC/Terraform_테라폼

[Terraform] count 실습 (aws ec2, vpc, subnet 생성 시나리오) +cloudnet 스터디 악분님 제공

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 2주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. cloudnet 스터디 악분님이 count를 실습해볼 수 있는 좋은 시나리오를 공유해주셨습니다. (감사합니다)한번 따라서 정리해보도록 하겠습니다. 1. count 실습 (스터디 악분님 제공)다음과 같이 실습환경을 구성한다. 총 10개의 시나리오를 통해 학습한 내용을 확인해 보겠다. 시나리오 1. aws_subnet- AWS VPC Subnet 테라폼 코드 작성- 요구사항 : subnet cidr를 변수로 입력 다음과 같이 main.tf, variables.tf, terraform.tfvars 총 3개의 파일을 작성한다.# main.t..

IaC/Terraform_테라폼

[Terraform] 기본 사용법#4 (local 지역값, 출력 output, 반복문)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 2주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. local (지역값)코드 내에서 사용자가 지정한 값 또는 속성 값을 가공해 참조 가능한 local (지역 값) 은 외부에서 입력되지 않고, 코드 내에서만 가공되어 동작하는 값을 선언한다.‘local’은 입력 변수와 달리 선언된 모듈 내에서만 접근 가능하고, 변수처럼 실행 시에 입력받을 수 없다. 로컬은 사용자가 테라폼 코드를 구현할 때 값이나 표현식을 반복적으로 사용할 수 있는 편의를 제공한다. 하지만 여러 곳에서 자주 사용되는 경우 실제 값에 대한 추적이 어려워지므로 유지 관리 측면에서 부담이 발생할 수 있다. 주의할 것!! ..

IaC/Terraform_테라폼

[Terraform] 기본 사용법 #3 (데이터 소스, 입력 변수)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 2주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 데이터 소스데이터 소스는 테라폼으로 정의되지 않은 외부 리소스 또는 저장된 정보를 테라폼 내에서 참조할 때 사용한다. (예를 들면 aws image 등) 1.1 데이터 소스 구성데이터 소스 블록은 data로 시작된다. 이후 데이터 소스 유형을 정의한다.(resource 블록과 유사함) 데이터 소스 정의 예시data "local_file" "cwtest" { filename = "${path.module}/cwtest.txt"}# ex, aws image의 경우data "aws_iam_user" "cwdev" { user_..

DevOps/Monitoring_모니터링

[Prometheus] 프로메테우스 기본 구성 (docker compose 생성)

1. Prometheus 구성 목적본인은 현재 시스템을 하이브리드 클라우드 형태로 운영하고 있는데 (AWS, NCP, GCP, Azure, IDC센터 및 사내 전산실 모두 관리중이다.)프로젝트나 서비스 별로 플랫폼과 환경이 달라서 어느 정도의 통합이 필요한 상황이다... (혼자서 관리하기에 너무 어렵다.)지금 가장 시급한 것은 모니터링 통합이라고 생각했고, 그래서 여러 모니터링 서비스를 찾아보던 중 prometheus를 알게되었다. 현재 대표적인 모니터링 솔루션으로는 zabbix, telegraf, cloudwatch, scouter 등 많이들 있지만, prometheus로 진행해보기로 결정하였다.(몇개는 이미 포스팅하였다. )  이유는 다음과 같다. 시계열 데이터베이스를 사용한다. (TSDB)데이터가 ..

IaC/Terraform_테라폼

[Terraform] 기본 사용법 #2 (테라폼 블록, 리소스)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 1주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 테라폼 블록테라폼 블록은 테라폼의 구성을 명시하는데 사용된다. 테라폼 버전이나 프로바이더 버전과 같은 값들은 자동으로 설정되지만, 다른 사람과 함께 작업할 때는 버전을 명시적으로 선언하고 필요한 조건을 입력하여 실행 오류를 최소화해야한다.(또한 협업의 관점에서 보았을 때, 다른 사람이 실행하는 경우에 대비해 테라폼의 구성 정보를 명확히 정의해야 오류 등을 방지할 수 있다.)terraform { required_version = "~> 1.3.0" # 테라폼 버전 required_providers { # 프로바이더 버전을 나열..

IaC/Terraform_테라폼

[Terraform] 기본 사용법 #1 (주요 커맨드, HCL)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 1주차 내용으로,[테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다.. 1. 주요 커맨드, HCL1. 주요 커맨드지난 포스팅에서 EC2 생성, 수정, 삭제 실습을 통해 기본적인 명령어에 대해 진행했었지만, 테라폼은 기본 사용법이 매우 중요한 부분이므로, 명령어에 대해서 상세하게 다시 정리해보겠다.테라폼 사용 환경 구성이 완료된 상태라면, terraform 명령을 실행하는 것만으로도 기본적인 도움말이 표시된다.devcw@woos-dev-server:/mnt/c/Users/chanw/OneDrive/바탕 화면/terraform/t101-1week-ec2$ terraformUsage: terraform [gl..

IaC/Terraform_테라폼

[Terraform] 테라폼 간단 실습 (EC2 배포, 수정, 삭제)

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 1주차 내용으로,     [테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다..더보기1. EC2 인스턴스 배포 준비:    - 터미널에서 EC2 상태 모니터링 스크립트 실행    - 테라폼을 사용해 간단한 EC2 생성 코드 작성 (main.tf)2. 테라폼 초기화 및 실행:    - terraform init으로 초기화 진행    - terraform plan으로 변경 사항 검토    - terraform apply로 EC2 인스턴스 배포3.태그 추가 및 업데이트:    - 테라폼 코드에 태그 정보 추가    - plan과 apply를 사용하여 업데이트 반영4. EC2 인스턴스 삭제:    - terra..

IaC/Terraform_테라폼

[Terraform] 테라폼 개념 및 사용 환경 구성

💡cloudNet@ 팀의 가시다 님이 진행하는 Terraform 101 Study 4기 1주차 내용으로,     [테라폼으로 시작하는 IaC] 도서를 참조하였습니다. 감사합니다..더보기Terraform은 HashiCorp에서 개발한 인프라 자동화 도구로, 코드형 인프라(Infrastructure as Code, IaC)의 원칙에 따라 인프라를 코드로 관리하는 것을 목적으로 합니다. 이 도구는 워크플로 집중, 코드화된 인프라, 실용주의를 중요시하며, AWS 인프라를 효율적으로 관리하기 위한 환경을 구축할 수 있습니다. 설치 과정에서는 WSL을 통해 Terraform을 설치하고, Visual Studio Code를 설정하며, AWS CLI를 설치하고 IAM 사용자를 연동하는 방법을 상세히 설명했습니다. 1..

DevOps/Linux_리눅스

[Linux] dhcpd not authoritative 문제 해결

DHCP 미 할당 이슈 발생본인은 현재 2개의 망으로 네트워크를 분리해서 운영중에 있다.각 내부 서버, NAS, PC 등의 연결과 유선 인터넷 전화기에 연결하는 용도로 사용중인데 근래 사내 PC 들이 DHCP 할당을 못 받아오는 이슈가 종종 발생하였다. DHCP.conf 구성과 연결된 Client 구성에는 문제가 없어, 중간에 네트워크 통신 과정에서 route/swicth 문제가 아닐까 하였는데, DHCP 할당이 안 되는 PC들에겐 모두 공통점이 있었다.모두 원래 사용중이던 대역이 아닌 다른 망의 대역으로 잡히는 것이다. 원인두 개의 망이 각자 DHCP 서버가 존재한다.그리고 내부 구성에서 두 망이 연결되어 있다.(애초에 이 구성부터 잘못되긴 함…)그리고 PC에서 사용중인 망에서 DHCP 할당을 받지 못..

DevOps/open source_오픈소스

[Redmine] 프로젝트 관리 오픈소스, 레드마인

!! Redmine레드마인(Redamine)은 오픈소스 프로그램으로 웹 기반의 프로젝트 관리와 버그 추적 기능을 제공하는 도구이다. 주요 기능으로는 달력과 칸트 차트, 일정관리 기능이 있다.이를 화면기반의 기능을 제공하여 프로젝트 관리에 도움을 줄 수 있다.redmine의 디자인은 Trac에 영향을 많이 받았으며 ruby에 기반하여 작성되었고 멀티 플랫폼을 지원하며 여러가지 종류의 데이터베이스 및 34개의 언어를 지원한다.   Ubuntu 20.04 LTS , installdatabase(mariaDB) 설치# database를 설치한다.apt-get updateapt-get install mariadb-server -ymysql -u root -p# db 버전에 따라서 utf8로 진행하여도 된다.Mar..

cwpack0730
Woo DEV