분류 전체보기 48

『모니터링』InfluxDB설치(docker-compose)

InfluxDB란? 시계열 데이터베이스이며, 이전 포스트에서 작성한대로 Telegraf에 데이터를 받아올 목적이다. 설정법 influxdb는 v1과 v2가 있다. v2의 경우 새로운 문법을 사용하기에 공부가 조금 필요하다. 해당 포스트에서는 v2기준으로 작성하였다. 먼저 docker와 docker-compose를 설치한다. docker-compose버전의 경우는 아래 링크에서 원하는 버전으로 수정하여 다운하면 된다. https://github.com/docker/compose/releases sudo yum install docker -y sudo systemctl start docker sudo curl -L "https://github.com/docker/compose/releases/download..

DevOps 2023.08.20

『모니터링』Telegraf 에이전트 설정

Telegraf란? 모니터링을 위해 CPU, Memory, Disk 등의 정보를 InfluxDB(대표적)나 다른 DB등으로 보내주는 역할을 한다. Cloudwatch Agent와 같은 역할을 한다고 생각하면 될 듯 하다. 설정법 우선 설치를 위해 공식 홈페이지로 접속해야한다. https://docs.influxdata.com/telegraf/v1.27/install/ Install Telegraf | Telegraf 1.27 Documentation Thank you for your feedback! Let us know what we can do better: docs.influxdata.com 여기서 내리다보면 자신의 환경에 맞게 설치가 가능하다. Ubuntu, Debian wget -q https:..

DevOps 2023.08.20

『네트워크』롱기스트 매치 룰(longest match rule)이란?

롱..기누스 매치 룰? 사실 간단하다. 라우팅이 진행될때 조금 더 확실한(작은단위)로 라우팅을 하는 것을 의미한다. 우리가 aws에서 라우트 테이블 설정을 할때 192.168.0.0/16대역 트래픽은 peering으로 다른 계정의 VPC로 라우팅 시키고 싶은데 단 하나 192.168.1.0/24 트래픽만 현재 계정의 VPC로 라우팅 시키고 싶을 때 해당 방식을 사용한다. (우리도 모르게) 우리가 일반적으로 알던 작은 단위로 보내는 그 네트워크의 성질이 바로 롱기스트 매치 룰이다. 그래서 엔드포인트를 사용하게 될 경우 롱기스트 매치 룰로 인해서 엔드포인트를 향해 흐르게 되는 것 이다. 이렇게 설정을 하게 되었을 경우 내부를 통해서 트래픽이 흐르기 때문에 조금 더 안전하게 사용이 가능 한 것이다. 비교적 외..

AWS 2023.07.27

『리눅스』awk란? 그리고 사용법

AWK란? 생소한 이름이고 이름 자체에 뜻은 없다. 만든 사람이름 세명 합쳐서 만들었다. "에이더블유케이"라고 발음하는 사람도 있고 "아크", "오크"라고 발음하는 사람도 있다. 편한대로 읽으면 될 듯 하다. 보통 파일, 결과값을 슬라이싱하고 추출하는데 많이 사용된다. 정규표현식과 함께 사용이 가능해서 상당히 유용하다. 사용법 보통 형식은 다음을 따른다. awk 'pattern { action }' file 위 형식은 대표적인 형식이다. pattern: 조건을 지정하는 부분이다. 패턴에 맞는 라인들을 선택하여 처리한다.. action: 패턴에서 설정한 부분에 대해 수행할 동작을 설정한다. file: 처리할 파일의 이름을 지정한다. 비워둘 수도 있다. 간단한 예시를 작성해두었다. # 파일 내용 출력 awk..

DevOps 2023.07.27

『DevOps』DevOps란? 그리고 공부할 부분은?

글 시작전다 경험과 뇌피셜로 작성한 글이다...정답이 작성된 것이 아니니 자유롭게 생각을 댓글로 작성해주면 될 것 같다.DevOps엔지니어란?솔직하게 말해서 되게 추상적인 개념이라는 생각이 든다.물론 해당 직무가 어떤 역할을 하는지는 확실하게 되어 있으나 업무의 스펙트럼이 상당히 넓다. 우선 DevOps엔지니어는 일반적으로 CICD, K8S, Git버전관리를 담당하는 직무라고 생각한다.큰 회사에서는 DevOps엔지니어는 위 3가지만 담당하나, 작은 규모의 기업은 개발, 인프라까지 담당하는 경우가 많다. CICDCICD의 프로세스를 확립하고 구축하여 실제로 운영중인 인프라에 무중단(최소의 다운타임을 가진채) 배포가 가능하여야하며문제가 발생하여 롤백되었을 경우 기존의 존재, 운영중이던 코드로 복귀하여 사용자..

DevOps 2023.07.27

『Security Group』보안그룹 관련

보안그룹(Security Group)이란? 보안그룹은 초창기 AWS에서 사람들이 사용하던 거의 유일한 보안서비스였다. StatFul한 성질을 가지고 있어, 인바운드 혹은 아웃바운드로의 세션이 맺어지면 해당 세션을 기억하고 유지하는 습성이 있다. 기본적으로 화이트리스트 기반으로 동작이 되는 서비스이기에 내가 사용할 프로토콜, IP, Port를 알고 있어야지 사용할 수 있다. 단위는 서브넷 단위(실제론 ENI에 붙는다.)로 붙이는게 일반적이다. 대표적으로 EC2와 같은 리소스 생성 시 서브넷을 지정할때 SG도 함께 붙는다. 이렇게 보안그룹은 다양한 서비스에서 네트워크(VPC)를 사용한다면 대부분이 사용된다고 할 수 있다. 최대 보안그룹 제한 화이트 리스트 기반이기 때문에 허용 IP만 추가해야한다. IP가 너..

AWS/EC2 2023.07.09

『DMS』DMS란?

DMS란? AWS에는 DMS라는 서비스가 존재한다. Database Migration Service를 줄여서 DMS라고 한다. DMS는 DB를 마이그레이션 할때와 CDC 작업을 할때 주로 사용하게 된다. 동작방식 소스와 타겟을 정하여 엔드포인트를 지정해주고 소스의 데이터를 AWS의 인스턴스(replication instance)로 해당 정보를 옮긴 뒤 그 값을 타겟으로 옮긴다. 하나의 큰 조건이 존재한다면 바로 소스와 타겟중 하나는 무조건 AWS상에서 동작중이여야한다. 보통 소스의 정보를 타겟에게 매핑시키기 위하여, 일반적으로 매핑정보를 작성하게 된다. 이를 이용하게 되면 현재 타겟 database에 테이블과 정보를 가져올 과거의 소스 database의 테이블 명이 달라도 정보를 가져올 수 있다. CDC..

AWS/DB 2023.06.07

『접촉식 수위센서』수위센서 예제

접촉식 수위센서의 값이 580이상이면 그 수치를 시리얼 모니터로 출력하는 예제이다. void setup() { Serial.begin(9600); } void loop() { int waterSensorVal = analogRead(A0); if (waterSensorVal > 580) { Serial.print("Water Sensor : "); Serial.println(waterSensorVal); } void setup() 부분에서 시리얼 속도를 9600으로 설정을 한 뒤, int를 통해 A0의 값을 정수형으로 부른다. 정수형으로 부르는 값이 580이상이면 시리얼 모니터에 값을 출력한다. 그러나 접촉식 수위센서는 사용을 지양하도록 하자. 접촉식이기에 부식될 확률과 이미 묻은 물로 인해 수위센서의 ..

Arduino/SoftWare 2022.10.04

『EKS』EKS Security Group설정

문제 EKS Cluster에서 SecurityGroup을 설정하고 싶은데 대부분의 기본 예제에서는 생략되어있다. 해결 아래와 같이 securityGroup이라는 구문을 추가하면 된다. --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: non-eksctl-created-cluster region: us-west-2 vpc: id: "vpc-12345" securityGroup: "sg-12345" # this is the ControlPlaneSecurityGroup subnets: private: private1: id: "subnet-12345" private2: id: "subnet-67890" public: public1:..

DevOps/K8S 2022.08.12

『EKS』Cluster생성시 Subnet선언 에러

문제 갑자기 No export named eksctl-basic-cluster-cluster::SubnetsPublic found. Rollback requested by user.와 같은 에러가 발생되는 경우가 있다. 이때는 대부분 Cluster config에서 vpc, subnet을 지정한 경우 발생되는 에러이다. 해결 이유는 Subnet을 지정했으나 Node가 Private으로 생성될지 Public으로 생성될지 지정이 안되어있어서 발생되는 에러이다. privateNetworking: true 부분을 추가해주면 된다. 대충 아래가 예시이다. apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: basic-cluster region: a..

AWS/EKS 2022.08.12