![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/btHeNj/btsEWAhkQwZ/scZGaR1fk3iBUXkDeSaYq0/img.png)
https://sh970901.tistory.com/136 gitlab runner docker in docker 구조 대표적인 CICD(Continuous Integration/Continuous Delivery) 도구들 (gitlab runner, github action, jenkins 등) 이 있지만 이 글에서는 gitlab runner를 사용해 구축하는 과정에서 겪었던 이슈와 해결, 궁금증 대한 정리를 sh970901.tistory.com 상단 포스팅에서 도커 환경의 CI 구성에 대해 간략하게 설명했으니 참고하면 좋을 듯 하다. 이번 포스팅에서는 어떻게 Host와 Gitlab-Runner, 그리고 Runner의 executor Container들이 .m2를 캐싱시킬 것인가에 대해서 작성하려고 한..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ZoiJo/btsESnisPSw/zCdHuyDuKgMP0PRW9rbD8K/img.png)
ECS + Fargate 구축 과정에서 Log 를 보기 위해서는 아주아주 번거롭다. Private Subnet에 구축된 서버리스 환경에 컨테이너에 접근하기 위해 EC2에 접근하고 컨테이너에 접근하여야하는데, 이마저도 ECS에 execute command 설정이 필요하다. 따라서 외부에서 로그를 편하게 볼 수 있는 방법에 대해 고민에 빠졌다. Log Appender를 구축하여 클러스터 외부에 Fluent를 구축하여 한곳에서 로그를 받아 처리할까 했지만 AWS에서는 FireLens라는 기능을 출시했다하여 사용해본 과정과 후기를 적어보려고 한다. Fluentd: 플러그인 구조를 갖고 있는 로그 라우팅, 정제, 변환, 수집을 담당하는 툴 Fluent Bit: Fluentd의 경량화 버전 AWS FireLens는..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/mtz20/btsD2I1D2O9/ju26SXQwkKWEfGc3D3hIK1/img.png)
대표적인 CICD(Continuous Integration/Continuous Delivery) 도구들 (gitlab runner, github action, jenkins 등) 이 있지만 이 글에서는 gitlab runner를 사용해 구축하는 과정에서 겪었던 이슈와 해결, 궁금증 대한 정리를 담아보려고 한다. 개발관련된 툴들을 docker compose로 관리하기 위해 호스트는 하나의 EC2에서 진행하였고 따라서 gitlab runner를 컨테이너 환경에서 실행하였다. 기본적인 구축 셋은 다른 사람들의 예시가 많으니 참고해도 좋고 문서에 내용을 그대로 진행해도 좋다. https://docs.gitlab.com/runner/install/docker.html Run GitLab Runner in a co..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/p251b/btszcRQwNIT/EvY7W8HYEtYEovJpApC4i0/img.png)
기본적으로 Aurora를 사용한다면 마스터 노드는 쓰기(update) 등을 담당하고, 슬레이브 노드는 읽기를 담당한다. Aurora RDS postgres를 사용하던 중 마스터 노드가 failover 되었으면 슬레이브 노드 중 장애 조치 우선순위가 높은 노드가 마스터 노드가 된다. 문제는 failover 되었을 경우 기존에 WAS와 맺어놓은 컨넥션들은 수동으로 이를 탐지하지 못하고 이전의 마스터 노드와 TCP 연결을 맺어놓은 컨넥션들은 이전의 마스터 노드로 요청이 간다. 그렇다면 무슨 문제가 발생할까? 읽기 노드에서는 UPDATE를 처리할 수 없다는 에러를 맞이하게 된다. 따라서 Failover에 대해 어떻게 대응할 것인지에 대한 전략이 필요하다. AWS 공식문서에는 다음과 같은 방법을 권유하고 있다. ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/uIfmD/btrNxaITkn4/KE0Q78F767Cj4kxtiS9I71/img.png)
쿠버네티스는 하나의 MASTER [control-plane]와 여러 서버 NODE[node]가 존재 MASTER를 실행시켜야 쿠버네티스가 돌아가고 있다고 할 수 있다. sudo kubeadm init --pod-network-cidr=10.100.0.0/16 sudo kubeadm init --pod-network-cidr=10.100.0.0/16 -v=5 => 클러스터 구성과정을 자세히 보여줌 pod => 도커의 컨테이너 개념으로 쿠버네티스에서 다루는 배포의 최소 단위 10.100.0.0/16 => 쿠버네티스가 설치된 이 PC에 존재하는 IP와 상관없이 구성 요소들끼리 통신이 가능하도록 묶는 IP 대역 **문서 -create-cluster-kubeadm https://kubernetes.io/docs/..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/MeuVO/btrNzF9y009/KGTP21hE4ut2YJru1tjQZ1/img.png)
https://sh970901.tistory.com/40 Linux(centOS9) 설정 1(CentOS, Virtural BOX, PuTTy 원격 접속) Virtural BOX 설치 https://www.virtualbox.org/ Virtural BOX 확장팩 설치 https://www.virtualbox.org/wiki/Downloads CentOS9.iso 설치 https://www.centos.org/download/ PuTTY 설치 https://www.putty.org/.. sh970901.tistory.com 실습 환경은 위에서 포스팅한 CentOS9, VB를 이용하였다. 가상머신 필수사항 프로세서 : 2개 이상 메모리 : 4GB 이상 저장소 : 32GB 이상 네트워크 : 브릿지 네트워크 ..