인프라 설계 및 구축 3. 개발 환경 구축
인프라 마지막 시간으로 실 서비스 환경과 비슷하게 도커를 이용하여 개발 환경을 구축하겠습니다.
우선 Local/Host PC에는 VS Code, Git Client, MySQL Workbench 8.0을 설치하시고
MySQL Workbench 8.0은 지난번에 구축한 Oracle Cloud DB 서버와 연동시키면 됩니다.
개발 환경 구축 절차 (Docker Client Server)
- File Sharing setting
- docker container run by Centos 7 image
- 기본 패키지 설치
- Nginx 설치
- Volta, node, pm2 설치
- image commit
// docker container run by centos:7 image
// 윈도우는 자동으로 C 드라이브 공유되서 따로 도커 데스크탑 설정 필요 X (mac은 preference에서 개별 설정)
docker container run -it --name socialbmdev --hostname socialbmdev -v <file sharing 할 local PC 경로:도커 컨테이너 내 경로> -p <host 포트:container 포트> centos:7 /bin/bash
yum install epel-release -y
yum install telnet which rsync openssh-clients -y
// yum 외부 저장소 추가
vi /etc/yum.repos.d/nginx.repo
// install by using YUM
yum install nginx -y
// local은 systemctl (daemon)으로 띄울 필요 X
// 프로세스로 띄우기 (.bashrc에 따로 설정하여 자동 시작)
// 개발 서버에서는 프로세스가 1개만 있으면 되므로 nginx.conf 에서 worker_process = 1로 설정
nginx
// 시간대 (date) UTC -> KST
ll /etc/localtime
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
// Oracle Cloud 실 서비스 서버
sudo systemctl start rsyncd.service
sudo systemctl enable rsyncd.service
rsync -avz -e 'ssh -i <키 경로>' opc@<서버 이름>:/home/opc/check.txt .
rsync -avz -e 'ssh -i <키 경로>' ~/.text.txt opc@<서버 이름>:/home/opc/
- Epel-release (Extra Packages for Enterprise Linux) ✔
- Nginx ✔
- Volta ✔
- PM2 by Volta ✔
- Node, NPM by Volta ✔
- rsync, rcp setting ✔
nginx.conf - local.conf 를 설정합니다.
기본적으로 local PC에서 원하는 도메인을 브라우저에 입력하면 자동으로 개발 서버로 이동되도록 했습니다.
(윈도우 hosts 파일 관리자 권한으로 수정 - 원하는 개발 환경 localhost 주소로 원하는 도메인 alias 등록,
웹 서버, DB 서버 대한 ip alias 설정)
개발 환경 시간 date를 UTC -> KST로 변경하였습니다.
이후 .bashrc에 Oracle Cloud 실 서비스 2개 서버로 접속하는 명령어에 대한 alias 를 걸어서
개발 환경에서 명령어 하나로 간단하게 바로 실 서비스로 접속할 수 있도록 세팅했습니다.
.git이 적용되어 있는 개발 환경에서 작업 후 실 서비스로 rsync을 이용해서 쉽게 배포가 가능하고,
그걸 바로 개발 환경에서 실 서비스로 접속하여 실 서비스 서버의 상태를 확인할 수 있습니다.
이 작업을 할 때 주의하셔야 할 것은 바로 docker container 하고 local PC 폴더를 공유한 곳에서
chmod 작업 권한을 잘 주셔야 합니다. Oracle Cloud 관련 private key에 대해서 chmod를 잘 설정하시고,
또 local 도메인으로 들어가면 나오는 html 등 파일에 대한 chmod도 잘 주셔야 정상 동작합니다.
저는 Oracle Cloud 서버 관련 private key 파일들에 대한 권한은 chmod 600으로 설정하였습니다.
그렇게 도커 개발 환경과 실 서비스 환경 간의 연동을 다 하고 간단히 파일을 만들어서 업로드 및 내려받기
등 테스트를 진행해서 잘 연동이 된 것을 확인했습니다.
마지막으로 docker commit을 통해 image로 구워서 다른 동료분들이 다운 받아서 각자 개발 환경을
세팅할 수 있도록 .tar 확장자로 save까지 하였습니다.
(당연히 현재 프로젝트 관련 정보는 모두 지웠습니다.
그리고 본 글에서는 파일 용량 제한으로 dockerhub에 image를 push한 링크를 공유하겠습니다.)
이미지를 dockerhub에 push하였습니다. (dockerhub)
dockerfile 확장자 형태로 YAML 파일 구성해서 나중에 docker-compose 기능 이용하는 것은
사실 어려운 것은 아니기에 우선 저는 여기까지 진행하고 이후 시간이 된다면 지속적으로
글을 업데이트하여 제공하겠습니다.
지금까지 인프라 설계 및 구축을 마치겠습니다.
[Reference]
'Personal Projects > 소셜 북마크 서비스 🙂' 카테고리의 다른 글
[개인] 소셜 북마크 - 인프라 설계 및 구축 2. 서비스 환경 구축 (0) | 2022.01.12 |
---|---|
[개인] 소셜 북마크 - 인프라 설계 및 구축 1. 시스템 아키텍쳐 (0) | 2022.01.08 |
[개인] 소셜 북마크 - DB 설계 2. EERD 설계 (0) | 2022.01.07 |
[개인] 소셜 북마크 - DB 설계 1. 클래스 다이어그램 (0) | 2022.01.04 |
[개인] 소셜 북마크 - 기획 및 화면 설계 5. 프로토타입 (2) | 2021.12.28 |
댓글