회고

3월 5주차 주간회고

Facts (사실, 객관)

  • 여전히 게으른 생활을 하며 시간을 축내고 있다.
  • 팀프로젝트를 깃허브로 이관하게 되면서, CI/CD를 구축하기 위한 작업을 진행하고 있다.

 

Feelings (느낌, 주관)

여전히 계획을 잘 실천하지 못하고 있다. 그나마 다행인 점은 최근 생활 패턴이 다시 정상화되고 있다는 사실이다. 오늘도 숙면을 취한 건 아니지만 무려 아침에 일어나는 하루를 시작했다!

 

이번 주 내내 팀프로젝트의 무중단배포 환경 구축을 시도하고 있다. 우선 간단한 node앱으로 테스트를 해보고 난 후, 로컬에 있는 프로젝트에서 먼저 시도해보는 중이다. 완성시키려는 모습은 다음과 같다.

 

  • github action을 활용한다.
  • master 브랜치에 커밋이 merge되면 자동으로 배포되어야 한다.
  • docker 및 docker hub를 활용한다.
  • ec2에서 docker hub에 업로드된 image를 받아와서 실행한다.
  • SSH에서 실행되는 과정도 github action을 통해 자동화되어야 한다.

개발 환경을 다루는 것은 항상 어렵지만, 이전에 github page에서 비슷한 방식으로 구현해 본 경험이 있어서 간단한 앱을 올리는 데까지는 큰 어려움이 없었다. 다만 실제 앱의 경우 용량이 꽤나 커서 그런지 프리티어의 ec2에서는 도커 컨테이너를 실행하는데 너무 오랜 시간이 걸렸다. 게다가 프로젝트의 백과 프론트가 나누어져 있기 때문에 컨테이너를 2개를 띄어야 하는 상황이었다. 컨테이너간 통신을 위해 docker network를 하나 만들어 주었더니 로컬에서는 문제없이 통신하는 것이 확인됐다. 다만 ec2에서 컨테이너를 하나 더 실행하려고 하면 ec2 CPU 점유율이 100%에 육박하면서 먹통이 되더니, 오랜 시간 후에 timeout 에러가 발생하면서 배포에 실패했다. 하나의 계정에서 두 개의 인스턴스를 운영하게 되면 요금이 부과될 우려가 있어서, aws 계정을 하나 더 만들어서 각각 인스턴스를 실행시켜 주는 방식을 고려했다. 하지만 현재로서는 도커를 사용함에도 그 장점을 활용하지 못하고 인스턴스를 분리하는 것이 마음이 내키지 않아서 보류 중이다. 그게 아니면 오라클 프리티어 VM을 활용해보는 방안도 함께 고려하고 있다.

 

 

Findings (배운 점)

  1. 프리티어 ec2의 성능은 생각보다 좋지 않다.
  2. 도커 컨테이너간 통신을 위해 docker compose를 활용하거나, network를 직접 구성해 줄 수 있다.
  3. 도커 이미지는 레이어 구조로 되어 있다. 앱이 변경된 이후에 새로운 이미지를 생성하면 변경된 부분만 레이어로 적용되어 디스크 용량을 효율적으로 관리한다.

 

Affirmation(자기 선언)

계획의 절반 이상을 실천한다.

 

'회고' 카테고리의 다른 글

2021-04-13 TIL  (0) 2022.04.13
3월 2주차 주간회고  (0) 2022.03.13
엘리스 SW트랙 최종 프로젝트 회고  (0) 2022.02.24
엘리스 SW트랙 최종 프로젝트 중간회고  (0) 2022.02.11
2021-01-20 TIL  (0) 2022.01.20