목록배포/Docker (12)
개발놀이터
이번 포스팅에선 도커, 그 중에서 도커 네트워크에 대해서 알아보도록 하겠습니다. 도커 네트워크에 대해서는 구글링하면 bridge니 host니 overlay니 많이 나와있으니 흔히 구글링하면 나오는 내용 말고 좀 더 딥한 내용을 다뤄보려고합니다. 제가 도커 네트워크를 공부해야겠다고 생각하게 된 계기는 제가 너무 도커에 대해서 아무것도 모르고 도커를 사용하고 있던 것을 발견했습니다. 그냥 Dockerfile만들고 build하고 docker-compose에 등록해서 관리하면 끝! 사실 이게 끝일 정도로 도커 자체는 정말 간단하긴 하지만 도커를 조금 더 깊이있게 공부해야겠다는 마음으로 도커 카테고리를 약 1년만에 부활시켰습니다. 이번엔 도커 네트워크에 대해서 딥다이브하는 시간을 가져보겠습니다. 도커 아..
https://coding-review.tistory.com/436 Docker로 Prometheus, Grafana 배포하기 실제 환경을 모니터링하는 것은 매우 중요한 것으로 알려져있습니다. 물론 항상 모니터링 하진 않겠지만 중요한 서비스를 배포해야 한다거나 버그를 고치고 난 뒤에 모니터링을 통해 실제 환경 coding-review.tistory.com 이전 포스팅과 이어집니다. 우리는 앞서 프로메테우스, 그라파나, node-exporter까지 준비를 완료했습니다. 이제 그라파나를 어떻게 사용하는지 천천히 알아보도록 하죠. 그라파나 시작하기 그라파나를 처음 시작하면 다음과 같은 화면이 보입니다. 디폴트 계정은 ID : admin PW : admin 이렇게 되어있으니 로그인 하시면 됩니다. 로그인 후 비..
실제 환경을 모니터링하는 것은 매우 중요한 것으로 알려져있습니다. 물론 항상 모니터링 하진 않겠지만 중요한 서비스를 배포해야 한다거나 버그를 고치고 난 뒤에 모니터링을 통해 실제 환경에 잘 녹아들었는지 확인해야합니다. 이번 포스팅에선 실제 배포된 환경을 프로메테우스와 그라파나로 연동하여 CPU 사용량, 메모리 사용량, 디스크 사용량, HTTP 트래픽 등을 모니터링하는 환경을 구축해보도록 하겠습니다. 모니터링 환경 구축 우리가 최종적으로 목표하는 것은 바로 아래와 같은 환경을 구축하는 것입니다. 도커를 이용해 프로메테우스를 띄우고 그라파나도 띄운 다음 모니터링 하는 것이죠. 그리고 이것이 모두 이루어지면 나만의 모니터링 시스템을 만들 수 있습니다. 이렇게 만들기 위해서 먼저 우리는 준비물이 필요합니다. 도..
이번 포스팅에선 윈도우에서 도커를 사용하는 방법에 대해서 포스팅해보도록 하겠습니다. 흔히 알려지기로는 도커는 리눅스 환경에서만 동작하기 때문에 신입 기준 러닝커브가 있는 편이라고 하죠. 어? 그럼 윈도우에선 어떻게 동작하지? 바로 WSL 이라는 기술을 이용하면 됩니다. WSL은 Windows Subsystem for Linux 2 의 약자로 쉽게 말해서 윈도우에서 리눅스를 사용할 수 있게 해주는 기술입니다. 이제 WSL을 이용해서 윈도우에서 도커를 사용해봅시다. 윈도우에서 도커 설치 우선 WSL2를 다운받아야합니다. 그러기 위해선 윈도우 터미널인 power shell이라는 것을 다운받아야 하는데요. 파워 쉘은 다운받기 정말 간단합니다. 마이크로소프트 스토어에서 다운받으면 됩니다. 파워 쉘 다운 저는 이미..
저번 포스팅에선 docker + nginx를 가지고 무중단 배포를 하는 방법에 대해서 설명한 것이구요. 이번 포스팅에선 전체적인 과정에 대해서 알아보도록 하겠습니다. 이번 포스팅은 아래와 같은 순서로 이뤄집니다. 스프링 프로젝트에서 무언가 변경 (ver.2) git commit / push EC2 에서 프로젝트 폴더에 들어간 뒤 git pull ./gradlew build 내 프로젝트를 docker image로 build 도커 허브에 방금 만든 이미지 push docker-compose.yml 파일에서 버전 변경 deploy.sh 실행 결과부터 말씀드리자면 이 과정 굉장히 복잡합니다. 그리고 굉장히 귀찮습니다. 일단 이번 포스팅에선 과정을 보여드리고 다음엔 jenkins를 이용해 CI / CD 파이프라인..
이번 포스팅에선 docker-compose 에서 사용되는 주요 문법들에 대해서 포스팅해보도록 하겠습니다. 요즘 docker에 빠져있는데요. docker는 작은 프로젝트에 한해선 단점이 하나도 없는 좋은 기술인 것 같습니다. docker-compose는 docker의 다양한 설정들을 보기쉽게 정리하고 나중에 설정이 바뀌었을 때 유지보수도 쉽게 도와주는 docker의 좋은 파트너입니다. 보통 docker-compose는 yml (야믈) 파일로 저장되는데요. 그렇기 때문에 우리가 스프링에서 application.yml 을 써봤다면 조금은 익숙하실겁니다. 이제 본격적으로 시작해보죠! docker-compose 문법 1. image docker-compose 안에서 이미지를 선택할 수 있습니다. 만약 로컬에 있는..
이번 포스팅에선 Docker + Nginx를 이용해 무중단 배포에 대해 포스팅해보도록 하겠습니다. 무중단 배포는 CI / CD를 통틀어 웹 서비스에 모두 적용되어 있는 가장 기본이라고 할 수 있습니다. 도커 컨테이너를 띄워 보신 분들은 아시겠지만 도커 컨테이너를 내렸다가 다시 올리는 과정이 길게는 1분정도 걸립니다. 그 때 우리의 애플리케이션을 이용하고 있는 사용자가 있다면 갑자기 서비스를 이용할 수 없는 상황이 될겁니다. 만약 회원수가 정말 많아서 1분에 결제가 수백 수천만원이 왔다갔다하는 상황이라면 회사 입장에서 당연히 꺼려질 수 밖에 없습니다. 그래서 이번엔 Docker 와 Nginx를 이용해 무중단 배포에 대해서 알아봅니다! 무중단 배포 무중단 배포에는 두가지 배포가 있습니다. Rolling up..
이번 포스팅에선 Docker Hub (이하 도커 허브) 리포지토리를 만들고 사용하는 방법에 대해서 알아보도록 하겠습니다. 도커 허브는 도커 생태계에서 이미지를 따로 보관할 수 있는 저장소와 같은 역할을 합니다. docker 만 설치하면 어디서든 (linux 환경 한정이긴 합니다만..) 이미지를 pulling 할 수 있습니다. 그럼 한번 알아보도록 하죠! Docker Hub 시작하기 https://hub.docker.com/ Docker Hub Container Image Library | App Containerization Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker..
이번 포스팅에선 EC2 인스턴스를 Docker와 Nginx를 이용해 배포하는 방법에 대해서 포스팅해보도록 하겠습니다. 사실 해당 부분이 전체적인 CI / CD의 파이프라인을 놓고 봤을 때 그리 큰 부분을 차지하진 않습니다. 하지만 배포가 되는 것이야말로 CI / CD의 알파이자 오메가일 것입니다. 사실 저는 모놀리식으로 배포를 한 경험이 있습니다. 이에대한 노고에 대해서는 아래의 링크에 잘 수록되어있습니다. https://coding-review.tistory.com/160 aws 배포 ec2 (1) : 모놀리식 배포 우선 aws ec2에 들어간다. 인스턴스 시작을 클릭! 더 많은 AMI 찾아보기를 클릭 후 우분투 리눅스를 둘중 하나 클릭 조금 내려가다 보면 키 페어를 선택하라고 나오는데 이부분은 새 키..
이번 포스팅에선 도커를 이용해서 Redis를 배포하는 방법에 대해서 알아보도록 하겠습니다. 배포는 아래와 같은 순서로 진행됩니다. docker, docker-compose 설치 Redis 이미지 다운받기 Redis configuration 깃 클론 docker compose 작성 docker container 띄우기 잘 접속되는지 확인 이번 포스팅은 앞선 포스팅과 마찬가지로 EC2 인스턴스가 있다고 가정합니다. 또한 도커를 돌리기 위해서는 EC2를 medium으로 만드시는 것이 렉 없이 편안하게 구현하실 수 있습니다. medium은 한달에 5만원정도의 과금이 있습니다. Redis 배포 1. docker, docker-compose 설치 apt-get update sudo apt-get install do..