ALL

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..

DevOps/Monitoring_모니터링

[Grafana] Grafana Image Renderer

Grafana Image Renderer 그라파나에서 대시보드 패널이미지를 포함시키기 위해선 그라파나 이미지 랜더러가 필요하다. 그라파나 이미지 렌더러(Grafana Image Renderer) 그래프 이미지화를 위해 해당 플로그린을 설치하거나 독립 실행형으로 배포할 수 있다. 이미지 렌더러 문서(링크) 에서 자세한 설치방법을 확인할 수 있다. 1. 그라파나 cli를 사용한 설치 현재 그라파나를 직접 설치해서 사용하고 있다. 이 같은 경우 cli를 통한 설치가 가능하다. 설치과정에서 크로미움 관련 라이브러리 종속성이 있다. 설치 후, 그라파나 재시작이 필요하기 때문에 docker로 돌리고 있다면 이후 설명하는 독립실행형으로 설치 또는 이미지 렌더러를 포함한 이미지를 사용해야 한다. $ grafana-cl..

DevOps/Monitoring_모니터링

[모니터링] Grafana Slack 연동

Slack app 구축 slack api에 접속하여, create new app을 진행한다. from scartch을 선택한다. 이후 app name을 설정하고 연결할 slack workspace를 선택한다. 좌측 Features 탭에서 OAuth & Permissions을 선택한다. 설치를 진행한다. 관리자 권한이 필요하다. 이후 슬랙 api를 통해 메세지와 그래프이미지 등을 전송할 것이기 때문에, files:wirte , chat:wirte 권한을 추가한다. 이후, 생성된 토큰값을 복사하여 grafana → alerting → contact point를 생성한다. 생성된 contact point에 대한 라우팅 설정을 진행해야 하는데, notification policles 에서 정책을 추가한다. ro..