전체 글 789

테라폼 data block을 강제로 써야하는 경우

테라폼 data block은 프로비저닝 즉, 리소스 생성/수정/삭제를 하지 않습니다. 이미 대상(예: AWS)에 프로비저닝된 리소스 상태를 HCL언어로 참조할 때 사용합니다. Data block은 참조기능이기 때문에 선택으로 사용하는데, 가끔씩 강제로 써야하는 경우가 있습니다. 내가 프로비저닝한 리소스가 자동으로 다른 리소스를 프로비저닝 하는 경우입니다. 대표적인 예가 AWS TGW유형의 Site to Site VPN입니다. VPN connection을 생성하면 자동으로 TGW attachment를 생성합니다.  TGW attachment는 자동으로 생성된 리소스여서 resource block을 사용하면 또 다른TGW attachment를 생성하게 됩니다. 이런 경우에 data block을 강제로 사용해..

BGP프로토콜

이 글은 네트워크 엔지니어가 아닌 데브옵스/SRE/서버/백엔드 엔지니어의 시점으로 정리했습니다. 저 또한 네트워크 엔지니어가 아니여서 내용이 다소 부족할 수 있습니다. 저는 우연히 AWS Site-to-Site VPN을 구축할이 있어 BGP를 간단히 공부했습니다. 이 글의 내용은 영상으로도 만나 볼 수 있습니다. 특히 BGP실습과정이 궁금하신 분은 영상을 참고하면 좋습니다.https://youtu.be/gbFdVhkTCmQ?feature=shared  BGP프로토콜이란?BGP는 라우팅 정보를 다른 라우터에게 공유하는 프로토콜입니다.아래 예제를 보면 Router1은 192.168.100.0/24 정보를 Router2에게 넘깁니다. Router2는 공유받은 라우팅 정보 때문에 192.168.100.0/2..

리눅스 디폴트 네트워크 인터페이스 조회방법

개요이 글은 리눅스에서 디폴트 네트워크 인터페이스 이름을 가져오는 방법을 설명합니다. 디폴트 네트워크 인터페이스는 자동화 스크립트 작성할때 많이 사용합니다. 아래 예제에서는 자동화 스크립트가 ens5 인터페이스를 찾을 수 있어야 합니다.  원리ip route명령어를 사용하면 디폴트 네트워크 인터페이스가 보입니다. 원리는 grep으로 default 키워드를 필터링하고 awk 또는 cut으로 인터페이스 이름이 있는 칼럼을 가져오면 됩니다.ip route | grep default | awk '{print $5}'

obsidian pandoc플러그인으로 word파일 변환할 때, 이미지 제외하는 방법

개요가끔씩 옵시디언 내용을 pandoc으로 word파일로 변환할 때 그림을 제외하는 설정을 설명합니다.배경지식이전 글에서 옵시디언에서 작성한 내용을 word파일로 변환하는 방법을 설명했었습니다. pandoc 플러그인을 사용하여 마크다운 문서를 word파일로 변환합니다.이전 글 링크: https://malwareanalysis.tistory.com/795 obsidian 문서를 word문서로 변환하는 방법1.  개요이 글은 맥북에서 obsidian 파일을 ms word 파일로 변환하는 방법을 설명합니다. 2. 변환방법obsidian파일을 ms word로 변환하려면 pandoc 플러그인을 사용하면 됩니다. pandoc은 마크다운 문서를malwareanalysis.tistory.com 설정방법pandoc도구가..

맥북(ARM)에서 influxDBv1 helm 차트 실행방법

문제ARM 맥북에서 influxdb v1 helm 차트를 릴리즈하면, 컨테이너 이미지 pull 에러가 발생합니다.helm repo add influxdata https://helm.influxdata.com/helm upgrade --install influxdata/influxdb influxdb influxdb v1 pod는 이미지 pull에러가 발생하과, v2 pod는 잘 실행됩니다.kubectl get pod describe pod를 하면 ARM계열 컨테이너 이미지가 없는 것을 확인할 수 있습니다.kubectl describe pod {influx v1 pod} 문제 해결방법컨테이너 이미지 pull에러를 해결하려면 ARM계열 컨테이너 이미지를 사용하면 됩니다. influxDB v1은 ARM계열 이..

helmfile - 여러 helm 차트를 한번에 관리하는 도구

https://youtube.com/shorts/CdenN_lGci8 helmfile이란?여러 Helm 차트를 한 번에 관리하고 릴리즈(배포)하는 도구입니다. helmfile 장점helm차트 2개를 릴리즈하려면 어떻게 해야할까요? 일일이 helm 릴리즈를 해야 합니다.helm upgrade --install chart1 {릴리즈 이름}helm upgrade --install chart2 {릴리즈 이름} helmfile을 사용하면 helm 차트를 일일이 릴리즈안해도 됩니다. 릴리즈할 helm chart를 helmfile에 정의하고 helmfile apply명령어를 실행하면 한번에 helm 차트가 릴리즈됩니다. 삭제하고 싶으면 helm destroy를 하면 됩니다. 언제 helmfile을 사용하면 좋을까?..

Docker로 MySQL 컨테이너 실행 및 Sakila 샘플 데이터 불러오는 방법

https://youtube.com/shorts/ljerZDAqDJA 개요이 글은 mysql 도커 컨테이너를 실행할때 sakila 데이터 샘플을 같이 불러오는 방법을 설명합니다. 설치 방법예제 링크: https://github.com/choisungwook/portfolio/tree/master/common/mysql_sakila_sample mysql 도커 컨테이너는 제일 처음 실행될 때 /docker-entrypoint-initdb.d 디렉터리 경로에 있는 sql를 모두 실행합니다. 이 원리를 사용하여 sakila 데이터를 생성하는 sql파일을 /docker-entrypoint-initdb.d 경로에 마운트해주면 됩니다.docker-compose.yml파일 예입니다. volumes로 initdb디렉터..

mTLS 프로토콜과 패킷 분석

mTLS는 무엇일까?mTLS는 상호(mutual)와 TLS(Transport Layer Security)가 합쳐진 개념으로, 서버와 클라이언트가 서로 신원을 확인하는 프로토콜입니다. TLS는 서버만 신원을 확인하는데 mTLS는 클라이언트와 서버 모두 신원을 확인합니다. 서버가 클라이언트 신원을 확인하기 때문에 서버가 허용한 클라이언트만 요청을 수락합니다.mTLS는 언제 사용할까?서버가 클라이언트 신원 확인이 필요할 때 사용합니다. 예를 들어 public으로 공개된 API를 특정 기업만 통신해야하는 상황, 즉 B2B통신할때 mTLS를 사용합니다. 우리나라 사용 사례는 금융권 마이데이터에서 사용하는 것 같습니다. 저는 B2B통신을 위해 mTLS를 공부하게되었습니다. mTLS 분석mTLS는 TLS프로토콜에서 ..

curl에서 hosts 파일 변경 없이 테스트하는 방법

안녕하세요. 이 글은 curl로 프록시를 테스트할 때, hosts파일을 변경하지 않고 host를 수정하는 방법을 소개합니다. 1.  요약7계층 프록시(예: nginx)에서는 `-H "Host: example.com"` 옵션을 사용하여 HTTP 헤더의 Host 값을 변경4계층 프록시(예: TCP 기반)에서는 `--resolve 'host:IP:port'` 옵션을 사용하여 특정 도메인의 DNS 해석을 직접 지정 2.  배경지식프록시는 Virtual Host 개념을 사용하여 요청을 구분하고 라우팅합니다. Virtual Host는 하나의 서버에서 여러 도메인(호스트)의 요청을 처리할 수 있도록 하는 기술입니다. 예를 들어, nginx에서 Virtual Host를 어떻게 활용하는지 살펴보겠습니다. 하나의 서버(I..

TCP라더니 HTTPS?! 예상치 못한 디버깅 여정(feat, openssl TLS인증서 추출방법)

25년 1월에 경험했던 재밌는 디버깅 과정을 공유드립니다. 1.   배경설날전 꼭 디버깅을 했어야 했던 상황이었습니다. 애플리케이션을 호출해야 했었는데 가이드에서는 tcp프로토콜을 사용하라고 되어 있었습니다. 하지만 가이드대로 동작하지 않았습니다. 담당자는 휴가 였습니다. 그리고 애플리케이션 소스코드, 메트릭, 로그는 권한이 없어 못보는 상황이었습니다. 시간이 많이 없었기 때문에 http 또는 https프로토콜을 사용하여 디버깅을 시작했습니다. http, https모두 안되었지만 https에서는 TLS 핸드쉐이킹 과정에서 서버 인증서 검증에러가 났습니다. 그래서 인증서 검사 무시 옵션을 추가했더니 https통신이 되었습니다. curl에서는 -k옵션이 인증서 무시입니다.curl -k {엔드포인트} 애플리케..