딸기말차
[MSA] 7. Docker 활용, ConfigServer 본문
엔코아 플레이데이터(Encore Playdata) Backend 2기 백엔드 개발 부트캠프 (playdata.io)
백엔드 개발 부트캠프
백엔드 기초부터 배포까지! 매력있는 백엔드 개발자 포트폴리오를 완성하여 취업하세요.
playdata.io
1. Maven Build, Docker Image
* 패키지 내 .mvn 파일 확인
ls -al 이나 ll 로 쳤을 때 .mvn 파일이 있어야 ./mvnw 로 시작하는 커맨드를 사용 가능하다.
# 패키지 내에 .mvn 파일이 없을 경우 cp를 통해 복사해온다.
.mvn 파일이 있는 패키지로 가서 cp -R .mvn [이동할 패키지 경로]/.mvn 커맨드를 통해 .mvn 파일을 복사
# maven build
./mvnw clean package
# maven을 통해 docker image 생성
./mvnw package dockerfile:build
* docker-compose 커맨드 실행을 위해 docker-compose.yml 파일이 있는 패키지로 이동
# configserver와 license-service를 묶어 실행하기 위해 docker-compose 사용
docker-compose up
# background 에서 실행
docker-compose up -d
# docker-compose를 통해 실행한 컨테이너 중지
docker-compose down
이때, 컨테이너를 실행 후 DB에 INSERT 나 UPDATE를 했다고 가정했을 때 backup을 해두지 않았다면, 컨테이너를 내리고 다시 올릴 시 변경한 데이터가 날아가기 때문에 주의해야한다.
2. Vault
Valut 란 ID 기반 비밀 및 암호화 관리 시스템이다.
여기서 비밀이란 공개되면 안되는 API 암호화 키, 암호 또는 인증서와 같이 액세스를 엄격하게 제어하려는 모든 것을 의미하고, Vault는 인증 및 권한 부여 방법으로 차단되는 암호화 서비스를 제공해준다.
# valut image 생성
docker run -d -p 8200:8200 --name vault
-e 'VAULT_DEV_ROOT_TOKEN_ID=myroot'
-e 'VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200' vault:1.13.3
* 주요 옵션
run -d : background 실행
-e : 환경변수
0.0.0.0 : 모든 ip 허용
이미지를 만들 때 환경변수 정보에 토큰을 myroot 로 설정했기 때문에, myroot를 입력하면 접속이 가능하다.
설정한 값을 확인하기 위해 configserver의 bootstrap.yml 설정 정보를 변경하고, 재빌드하여 api를 호출하였다.
profiles.active 정보를 valut, host의 ip를 자신의 환경에 맞게 변경해준다.
이때 현재 우분투 환경이기 때문에, ifconfig를 통해 자신의 ip를 확인 후 변경해주면 된다.
# 기존에 실행중이던 docker-compose down
# 해당 작업은 docker-compose.yml이 있는 디렉토리 내에서 실행해야한다.
docker-compose down
# .mvn 이 있는 디렉토리 내에서 재빌드
./mvnw clean package
./mvnw package dockerfile:build
# 재빌드 후 docker-compose.yml이 있는 디렉토리 내에서 컨테이너 실행
docker-compose up -d
# 터미널에서 api 호출
curl -X "GET" "http://localhost:8071/licensing-service/default" -H "X-config-Token: myroot"
3. 54일차 후기
마이크로서비스의 공통 정보를 기록하고 있는 configserver와 licensing-service를 도커 이미지로 만들어 docker-compose를 통해 한번에 여러 컨테이너를 띄우는 실습을 진행하였다.
이 때 현재 우분투 환경에서 실습을 하고 있기 때문에 ip를 우분투에 맞게 바꿔줘야하는 것에 주의해야하며,
마이크로서비스의 공통 된 정보를 configserver라는 통합 된 환경을 만들어 관리할 수 있다는 점이 편리하다는 생각이 들었다.
'Bootcamp > MSA' 카테고리의 다른 글
[MSA] 9. centOS, Kubernates 설치 (0) | 2023.10.20 |
---|---|
[MSA] 8. Config Server, Eureka Server (0) | 2023.10.19 |
[MSA] 6. Docker 활용, SQL 예제 (0) | 2023.10.12 |
[MSA] 5. Docker 활용, Compose (0) | 2023.10.11 |
[MSA] 4. Docker 활용, Image Build (0) | 2023.10.10 |