오전에는 SR 마무리를, 오후에는 초기 환경설정 및 배포로 시간을 보냈습니다. 배포에 들어가는 시간이 점점 줄어들고 있다는 건 고무적인 일이긴 합니다만, 오늘도 알 수 없는 이유로 여러번 같은 일을 반복하는 과정이 되풀이되었네요. 그래도 배포 자동화에 https 까지 연결을 잘 마칠 수 있었습니다.
어제 갑자기 mysql 에 꽂혀서 하루를 보내버린 바람에 도커를 살펴볼 시간이 없었습니다. 오늘은 도커에 대해 가졌던 의문을 최대한 검색해보고 풀어보려고 합니다. 제가 가졌던 질문은 아래와 같구요. 블로깅과 검색을 동시에 진행하면서 정리를 해나갈 예정입니다.
- 환경변수 설정을 따로 진행할 필요 없이 손쉽게 해결할 수 있는가? 가능하다면 보안성은 어느 정도인가?
- 하나의 EC2 인스턴스 안에서 클라이언트와 서버를 개별적인 콘테이너로 나누고, 각각 포트를 연결해 개별적으로 구동할 수 있는가?
- 로컬 폴더를 연결해두는 것으로 자동화 업데이트가 되는가?
일단 환경변수는 Docker Secret 을 이용해 설정이 가능한 것 같습니다. 공식문서 만의 내용으로 당장 시크릿이 어떻게 활용될 수 있는지를 알기가 어려워 구글링을 하다가 참고할 만한 자료를 찾았습니다.
이 블로그에 따르면 볼륨이라는 기능을 통해 도커를 외부 호스트의 특정 디렉토리와 연결할 수 있는데, 이 외부 호스트에 중요한 환경 변수를 저장하고 시크릿으로 이를 불러올 수 있다고 합니다. 호스트 머신에 한 번 저장해두기만 하면 컨테이너 내부의 환경 변수를 경로를 통해 설정할 수 있다는 것이죠.
AWS 는 CoreBuild(클라이언트) 나 Parameter Store(서버) 에서 환경변수를 설정할 수 있죠. 로컬의 개발 환경에서 사용한 환경변수를 그대로 옮겨오기가 어렵다면, 과연 도커와 AWS 둘 중에서 어느 것의 난이도가 높은지는 가늠이 잘 되지 않습니다. 그런 만큼 환경변수가 도커를 사용해야 하는 절대적인 장점이 될 수는 없을 것 같네요.
정확하게 이 질문에 대한 답을 검색을 통해 찾지는 못했습니다. 대신 여러 개의 콘테이너가 어떻게 상호소통하는지에 관한 자료를 하나 찾을 수는 있었습니다. 이 자료에서는 도커 내부의 여러 콘테이너가 어떻게 네트워크로 서로 연결되는지에 관해 설명하고 있죠.
실험이라도 좀 해보고 싶은 마음이 있기는 합니다만 당장은 AWS 배포를 맡고있는 관계로 EC2 에서 색다른 실험을 하기는 어려울 것 같습니다. 게다가 여하튼 배포 자동화에 https 까지 마치고 나니 굳이 이제 와서 이를 바꿔가면서까지 도커를 사용할 필요가 있을까 싶네요.
로컬 폴더를 연결한다는 개념을 구글링하는 와중에 어디에선가 봤던 것 같아서 로컬 폴더와 자동화를 연결할 수 있는지 질문을 가지게 되었었는데요. 관련한 정보가 나오지 않는 것으로 봐서는 아마도 제가 잘못 봤던 것 같습니다.
앞서 1 번에서 소개한 블로그에 보면 볼륨이라는 기능을 통해 호스트 머신의 폴더와 파일을 공유할 수 있다고 하는데요. 이 부분은 자동화와는 굳이 연결되지 않는 전혀 다른 기능인 듯 싶네요.
대신 도커로 자동화하기 와 관련한 블로그 글을 하나 찾을 수 있었습니다. 훑어만 본 수준이긴 합니다만, 혹시라도 관심이 있으신 분들은 링크로 타고 들어가서 살펴보시면 될 것 같습니다.
도커에 관한 지식을 한층 업그레이드 할 수 있었던 블로그를 링크로 남깁니다. 아마 도커에 대해 조금 검색해보신 분들을 한 번쯤 보셨을법한 자료입니다. 처음 도커를 배우면서 정리했던 블로깅에서도 추천했던 자료인데 다시 한 번 공유합니다.