😎 주인장의 나불나불
일요일부터는 컨디션이 조금 회복된 것 같다 !
주말에 복습도 하고, 복습한 내용을 토대로 우리 프로젝트 배포를 시작해보고 싶었는데 컨디션 때문에 어떻게든 복습만 끝냈던 것 같다.. 다음주에 잘 끝내볼 수 있겠지…?🥲
이번주는 아마 교육 기간 동안 제일 눈에 초점이 없었던 주가 아니었을까…
대학교에서 네트워크와 AWS, 분산컴퓨팅 수업을 들었을 때도 너무 어려워서 대충 이해하고 넘어간 기억이 있는데
같은 맥락으로 눈에 보이지 않는 곳에서 뭔가 생성되고, 걔네들을 연결해서 원하는 동작을 하게 하는 과정이 참~ 어려웠다.
AWS에 내가 ec2를 만들고 로드 밸런서를 연결하면 현재까지 구성된 아키텍처를 자동으로 그려주는 기능이 생겼으면 좋겠다….^^
📖 배운점
🐳 Docker
저번 주에 했던 내용에 이어, Docker Container가 삭제되면 이미지 파일도 삭제되는 문제점을 보완했다. -v(volume) 옵션을 통해 데이터를 컨테이너 밖 host에 저장하면서 컨테이너가 삭제돼도 데이터는 유지하게 만드는 것이다.
그리고 컨테이너에 환경 변수를 추가하는 -e 옵션을 통해 도커를 실행할 때 application.yml의 특정 변수를 대체하도록 설정해, yml파일을 직접 매번 수정해줘야 하는 수고로움을 덜었다.
그리고 중요한 개념인 DB 붙이기 두 번째 방법! (첫 번째는 host.docker.internal을 사용했었다) docker-compose로 네트워크를 결합해서 mydb라는 서비스명으로 host 호출이 가능해지도록 만들었다.
⚓️ kubernetes
Docker에서 배포했던 방식은 서버가 늘어날 때마다 ec2를 생성하고, 스크립트에 넣어줘야 하는 번거로움이 생긴다. 수고로움을 덜기 위해 컨테이너가 들어가 있는 노드의 집합인 클러스터를 자동으로 관리하는 쿠버네티스라는 것을 배웠다.
기본 개념은 마스터 노드를 두고, 워커 노드를 연결해 얘네들에게 일을 시키는 것이다. deploy로 워커 노드를 만들었고, service로 네트워크를 설정했다.
배포하는 과정에서 AWS 이용해 여러 가지를 배웠는데 참 어려웠다… 로드밸랜서를 만들고… 보안 그룹을 설정하고…. eks…. 이미지를 ecr에 올리고….뭐가 어디에 붙어서 돌아가는지도 헷갈린다… 아무튼 서비스가 여러 개 있을 때 각 서비스로 라우팅을 도와주는 ingress! 아무튼 로드밸런서와 타겟그룹 등록 등 이것저것 다 해주는 인그래스를 사용하자…. 너네 너무 많은걸 자동으로 해주지 마… 어떻게 돌아가는지 이해가 안돼…
❤️ 좋았던 점
🌏 내 Web을 모두에게!
학교에서 배우기 어려운, 어떻게보면 백엔드의 꽃이라고 볼 수 있는 CI/CD를 접하고, 다양한 방식으로 배우고 배포해볼 수 있어서 좋았다! 근데 이제 강사님 설명없이는 아무것도 못하는….
배포하는 방법에도 정말 많은 종류가 있고, 방법마다 장단점이 있기 때문에 내 프로젝트에 최적의 방법을 찾으면 좋을 것 같다.
💧 아쉬운 점
🫥 그래서 저게 뭐라고..?
전체 흐름과 내용은 대강 알겠다. 근데 우리 프로젝트를 배포하려니 아는게 없어졌다(?) 개발할 때는 이것저것 붙이고 싶어서 웹소켓도, smtp도 붙여 놨는데 배포하려니 이것들이 걸림돌이 된다. 제일 아쉬운건 CI/CD에 대한 나의 이해력… 나는 우주의 먼지…
📋 다음주 계획
데브옵스 프로젝트 무사히 완성해서 발표하기
안녕하세요! 한화시스템 sw캠프 찾아보다가 이곳까지 방문하게되었어요🥹 혹시 현재 하시고 계시는 과정의 만족도(교육과정에서 내가 생각하는 나의 성장, 전체분위기, 공부의 깊이 등)이 궁금합니다..! 실례되지만 저도 다음 기수를 한번 지원해보고 싶어서 ... 댓글을 남겨봐요!! (ㅠㅠ저는 컴공나왔지만 부끄럽게도 노베이스입니닷)