Docker again (Devlog 4일차)

EenSung Kim·2021년 8월 5일
0

"어떻게 스택을 배우면서 SR도 하고 배포도 하고 개발도 하지..?"


궁금한 점 해결해보기

오전에는 SR 마무리를, 오후에는 초기 환경설정 및 배포로 시간을 보냈습니다. 배포에 들어가는 시간이 점점 줄어들고 있다는 건 고무적인 일이긴 합니다만, 오늘도 알 수 없는 이유로 여러번 같은 일을 반복하는 과정이 되풀이되었네요. 그래도 배포 자동화에 https 까지 연결을 잘 마칠 수 있었습니다.

어제 갑자기 mysql 에 꽂혀서 하루를 보내버린 바람에 도커를 살펴볼 시간이 없었습니다. 오늘은 도커에 대해 가졌던 의문을 최대한 검색해보고 풀어보려고 합니다. 제가 가졌던 질문은 아래와 같구요. 블로깅과 검색을 동시에 진행하면서 정리를 해나갈 예정입니다.

  1. 환경변수 설정을 따로 진행할 필요 없이 손쉽게 해결할 수 있는가? 가능하다면 보안성은 어느 정도인가?
  2. 하나의 EC2 인스턴스 안에서 클라이언트와 서버를 개별적인 콘테이너로 나누고, 각각 포트를 연결해 개별적으로 구동할 수 있는가?
  3. 로컬 폴더를 연결해두는 것으로 자동화 업데이트가 되는가?

1. 환경변수 & 보안성

일단 환경변수는 Docker Secret 을 이용해 설정이 가능한 것 같습니다. 공식문서 만의 내용으로 당장 시크릿이 어떻게 활용될 수 있는지를 알기가 어려워 구글링을 하다가 참고할 만한 자료를 찾았습니다.

블로그에 따르면 볼륨이라는 기능을 통해 도커를 외부 호스트의 특정 디렉토리와 연결할 수 있는데, 이 외부 호스트에 중요한 환경 변수를 저장하고 시크릿으로 이를 불러올 수 있다고 합니다. 호스트 머신에 한 번 저장해두기만 하면 컨테이너 내부의 환경 변수를 경로를 통해 설정할 수 있다는 것이죠.

AWS 는 CoreBuild(클라이언트) 나 Parameter Store(서버) 에서 환경변수를 설정할 수 있죠. 로컬의 개발 환경에서 사용한 환경변수를 그대로 옮겨오기가 어렵다면, 과연 도커와 AWS 둘 중에서 어느 것의 난이도가 높은지는 가늠이 잘 되지 않습니다. 그런 만큼 환경변수가 도커를 사용해야 하는 절대적인 장점이 될 수는 없을 것 같네요.


2. EC2 로 클라/서버 동시 구동

정확하게 이 질문에 대한 답을 검색을 통해 찾지는 못했습니다. 대신 여러 개의 콘테이너가 어떻게 상호소통하는지에 관한 자료를 하나 찾을 수는 있었습니다. 이 자료에서는 도커 내부의 여러 콘테이너가 어떻게 네트워크로 서로 연결되는지에 관해 설명하고 있죠.

실험이라도 좀 해보고 싶은 마음이 있기는 합니다만 당장은 AWS 배포를 맡고있는 관계로 EC2 에서 색다른 실험을 하기는 어려울 것 같습니다. 게다가 여하튼 배포 자동화에 https 까지 마치고 나니 굳이 이제 와서 이를 바꿔가면서까지 도커를 사용할 필요가 있을까 싶네요.


3. 로컬 폴더 연결 및 자동화

로컬 폴더를 연결한다는 개념을 구글링하는 와중에 어디에선가 봤던 것 같아서 로컬 폴더와 자동화를 연결할 수 있는지 질문을 가지게 되었었는데요. 관련한 정보가 나오지 않는 것으로 봐서는 아마도 제가 잘못 봤던 것 같습니다.

앞서 1 번에서 소개한 블로그에 보면 볼륨이라는 기능을 통해 호스트 머신의 폴더와 파일을 공유할 수 있다고 하는데요. 이 부분은 자동화와는 굳이 연결되지 않는 전혀 다른 기능인 듯 싶네요.

대신 도커로 자동화하기 와 관련한 블로그 글을 하나 찾을 수 있었습니다. 훑어만 본 수준이긴 합니다만, 혹시라도 관심이 있으신 분들은 링크로 타고 들어가서 살펴보시면 될 것 같습니다.


그 외에 참고할 만한 자료

도커에 관한 지식을 한층 업그레이드 할 수 있었던 블로그를 링크로 남깁니다. 아마 도커에 대해 조금 검색해보신 분들을 한 번쯤 보셨을법한 자료입니다. 처음 도커를 배우면서 정리했던 블로깅에서도 추천했던 자료인데 다시 한 번 공유합니다.

profile
iOS 개발자로 전직하기 위해 공부 중입니다.

0개의 댓글