전체 글

전체 글

    [Opensearch] time graph가 나오지 않을때 (API로 인덱스 패턴 time filed 지정하여 생성하기)

    현상 Opensearch에서 인덱스 패턴을 생성한 뒤 아래와 같이 데이터는 들어오는데 time graph가 나오지 않는 경우가 있다. 인덱스 패턴을 생성할때 time filed를 지정하지 않아서 그렇다. 해결 방법 time graph가 나오려면 index pattern 생성시 timefield를 지정해주어야한다. 만약 인덱스에 데이터가 없는 상태에서 인덱스 패턴을을 생성하게되면 timestamp가 없으므로 time filed도 지정 할 수 없다. 이 경우에 데이터가 들어온 뒤에 index pattern에서 refresh를 해줘도 time filed 지정을 처음 인덱스 패턴 생성 할때 명시적으로 넣어주지 않았으므로 인덱스 패턴을 재성생해주어야 한다. 더 쉽게 해결하기 Opensearch 대시보드에 UI로 ..

    [AWS] Instance scheduler 적용하기 (자동 stop/start)

    Intro AWS는 몇몇 기능들을 AWS웹콘솔상에 직접 리소스나 기능으로 구현해주는 형태가 아닌 cloudformation 템플릿을 제공해서 기능을 제공해주는 사례가 몇몇 있습니다. 그 예가 AHA(AWS Health Aware) 나 AWS DLT(Distributed Load Testing) 같은 것들이 있는데요. 오늘 소개해드릴 Instance scheduler 도 aws에서 제공해주는 cloudformation 템플릿으로 아키텍처를 배포하여 instance scheduler 기능을 사용할 수 있습니다. Instance scheduler란? Instance scheduler는 AWS의 대표적인 인스턴스인 ec2와 rds를 원하는 시간대에 stop/start를 자동화 하여 스케줄링을 할 수 있도록 해주..

    [AWS] VPC 피어링간 s3 endpoint 통신 방법

    Intro 두개의 다른 VPC를 peering 하였을때, A-VPC에 있는 ec2에서 B-VPC의 s3버킷에 접근하고 싶다. 이때 인터넷 구간을 거치지 않고 어떻게 통신해야할까요? 이때 사용할 수 있는게 s3 endpoint입니다. 오늘은 vpc peering으로 연결되어있는 각기 다른 VPC에서 s3 endpoint를 사용하는 방법에 대해 알아보도록 하겠습니다. 그냥 각 VPC에 있는 s3 endpoint를 사용하면 되는거 아니야? 네 맞습니다. 각 vpce에 있는 s3 endpoint를 사용하면됩니다. 그런데, A-VPC에 있는 ec2에서 B-VPC의 s3 버킷을 s3 endpoint로 접근하려 할때 어느 VPC에 있는 s3 endpoint를 사용해야할까요? 보기 1번 B-VPC에 있는 s3 endp..

    [DevOps] atlantis + infracost 구성하기

    infracost 란? Infracost는 Terraform 코드 변경 사항을 스캔하여 리소스가 생성되기 전에 간단하게 예정치를 확인할 수 있는 솔루션입니다. infracost는 community버전을 무료로 제공해주고 있으며 Cloud 버전은 유료 버전으로 비용 대시보드, 알람, 레포트 등등 추가 서비스를 제공해주고 있습니다. 비용은 별도 연락을 요청하는것 보니 list price는 아닌것 같습니다. infracost 구성해보기 infracost는 atlantis와 찰떡궁합인 서비스 입니다. atlantis 를 사용하여 terraform plan을 할때 3가지 방법을 제공합니다. append-to-atlantis-comments combined-infracost-comment multiple-infra..

    [DevOps] kpexec 사용 법 (pod를 admin권한으로 접속하기)

    Intro k8s cluster를 운영하면서 다양한 docker image를 사용하게 될텐데요. 이 docker image가 어떤 권한과 어떤 유저로 실행되도록 구성되어있는지에 따라서 kubectl로 pod에 접속하였을때 어디 까지 할 수 있는지가 정해지게 됩니다. 혹시 pod에 접속해서 yum 이나 apt-get으로 curl이나 tcpdump같은걸 설치하려고보니 root권한이 없는 경우가 있었나요? 이 때 kpexec라는 오픈소스를 사용하면 쉽게 admin권한으로 pod에 접속할 수 있습니다. kpexec 란? kpexec는 Container의 권한에 관계 없이 command를 가장 높은 권한으로 실행시켜주는 CLI입니다. 관련 GITHUB : https://github.com/ssup2/kpexec ..

    [DevOps] k8s sniff 를 사용한 pod의 tcp 패킷 캡처

    Intro MSA구조의 아키텍처가 도입되면서 인프라와 서버가 작은 단위로 쪼개지면서 그 작은 서버간의 네트워크 통신에 대한 추적과 가시화 그리고 이에 대한 트러블슈팅이 중요해지고 있습니다. 기존 모놀리식 구조의 인프라 형태를 보면 LB → Server 구조의 비교적 심플한 구조였다면, MSA구조에 LB → Server(node) → ingress controller→ (svc)→ pod 와 같이 홉이 더 많아지고 복잡 해졌습니다. 따라서 원하는대로 동작하지 않는 경우 트러블 슈팅을 위해서 어느 홉까지 통신이 되고 있는지 확인 해야하는 일들이 종종 발생하게 됩니다. k8s sniff 란? k8s sniff는 k8s pod의 TCP통신 패킷을 캡처해주는 유틸리티 입니다. 물론 kubectl exec 를 통해..