배포 후 구매한 도메인 연결하기 (Route 53)
·
DevOps/Route 53
들어가며EC2로 서버를 배포한 뒤에는 https://***.nip.io/ 라는 무료 도메인인 nip.io를 붙여주면 정상적으로 스웨거가 접속이 되며 테스트가 가능할 순 있다. 하지만 실제 유저를 받기 위해서 고유한 도메인을 구매한 뒤에 라우팅을 시켜줘야하는데, 이번 포스팅은 Route 53을 활용해서 가비아에서 구매한 도메인을 EC2 서버와 호스팅하는 플로우를 다루려고한다Route 53이란 ?AWS에서 지원하는 DNS(Domain Name System) 이라는 뜻을 가진다쉽게 설명하면 도메인을 발급하고 관리해주는 서비스를 의미한다 여기서 DNS는 특정 컴퓨터가 가지는 고유한 IP 주소를 문자로 변환해주는 시스템을 의미하며, 결론적으로 프론트든 백엔드 서버든, 웹에서는 HTTPS를 적용한 도메인을 기반으..
도커로 레디스 띄워서 스프링 컨테이너랑 통신하기 (DevOps)
·
DevOps/Docker
들어가며먼저 redis라는 기술 스택을 refresh token의 효율적인 관리를 위해서 도입하게 되었고, 해당 경험에서 도커 컨테이너를 활용해 경량화하여 띄우는 방식을 사용했다. 여러 사람이 함께 협업해야하는 특성상 도커를 활용하면 OS 환경 구애 없이 Redis를 빠르게 띄울 수 있다. 본문Redis 기본 설정먼저 termius나 각종 툴을 사용해서 Redis 설정 파일 (기본세팅) 을 준비한다. 가장 먼저 6379 포트를 열어 주어야 하며, redis.conf의 수정이 필요했다nano ~/redis.conf# SSH 환경에서 위 명령어를 친 다음, 아래 내용을 추가 해주어야한다 bind 0.0.0.0port 6379requirepass 비밀번호appendonly yesRedis 컨테이너 실행파일을..
도커 스토리지와 볼륨 (DevOps)
·
DevOps/Docker
들어가며도커(Docker)는 경량화된 컨테이너 기술로, 무상태(stateless) 아키텍처를 기반에 두고 있다. 컨테이너는 빠르게 생성,삭제가 가능하다는 장점이 있어서, 트래픽 급증에도 유연하게 대응할 수 있지만, 컨테이너 내부에 데이터를 저장할 경우, 삭제 시 함께 사라진다는 단점이 있어 이를 보완하기 위해 Docker에서는 스토리지(Storage) 개념과 볼륨(Volume) 기능을 함께 제공해줄 수 있다 본문이번 포스팅에서는 도커 스토리지와 볼륨의 특징, 그리고 직접 실습했던 내용을 공유해보려고 한다도커 스토리지먼저 도커 스토리지에 대해서 이해하려면, 레이어와 상태 관리의 개념이 중요하다고 생각한다. 이미지(Image): 여러 읽기 전용 레이어(Read-only layer)가 쌓여 있는 형태컨테이너(..
리버스 프록시란 무엇일까 ? (DevOps)
·
DevOps/리버스 프록시
들어가며 이번 포스팅에서는 리버스 프록시의 개념과 함께, Sopt 세미나를 진행하며 고민했던 Apache와 Nginx의 구조적 차이, 실제 Nginx의 고도화 방식 등등을 다뤄보려고 한다리버스 프록시란?리버스 프록시는 클라이언트(사용자)의 요청을 받아 실제 웹 서버(혹은 WAS)로 전달하고, 그 결과를 다시 클라이언트에게 반환하는 중개자 역할을 하는 서버다. 즉, 사용자는 리버스 프록시만 바라보고, 내부의 실제 서버 구조는 알지 못한다기본 작동 원리1. 클라이언트가 리버스 프록시에 요청을 보냄2. 리버스 프록시는 요청을 웹 서버에 전달3. 웹 서버는 요청된 데이터를 처리한 후 리버스 프록시에 응답을 보내줌 4. 리버스 프록시는 다시 웹 서버로부터 받은 응답을 클라이언트에게 전달 정리하자면 플로우는 위 내..
5분만에 Caddy로 리버스 프록시 설정하기 (DevOps)
·
DevOps/리버스 프록시
들어가며이번 포스팅에서는 AWS EC2 환경에서 Caddy를 사용해 리버스 프록시를 빠르게 설정하는 방법을 다루어보려 한다물론 Nginx나 Apache를 사용해서 리버스 프록시를 설정해주는 방법도 있지만, 좀더 설정해줄 내용이 많고, 별도의 SSL 인증서 관리도 해줘야해서 번거로울 수 있다고 생각해서 해당 내용은 추후에 다른 포스팅으로 다뤄보려고한다. 특히 그중에서도 Let's Encrypt 인증서 자동 갱신 설정이나 도메인 없이 HTTPS를 적용하는 과정에서 많은 시간을 소모했었는데, 그 경험도 공유해보겠다. 다시 돌아와서 앞서말한 Nginx나 Apache와 비교해서, 간단하고 직관적인 방법이 Caddy라고 생각하면 될거같다. 정말 간편하고 설정할 것도 별로 없어서 포스팅을 보면 충분히 따라서 가능할거..
도커 네트워크, 실습 (DevOps)
·
DevOps/Docker
들어가며이번 포스팅에서는 도커의 네트워크에 대해서 다루어보려고 한다. 평소 docker networks 는 docker-compose 파일을 docker compose up -d로 실행해줄때 mysql, mongodb, redis, kafka 등을 하나의 서버에서 한번에 실행하기 위해, 설정해줘야하는 값으로만 알고 있었던 상태였고직접 서브넷과 게이트웨이를 지정을 해본다거나 컨테이너 간 통신을 실제로 해봤던 적은 없었는데, 이번 기회에 해당 부분을 다루어보게 되었다네트워크 관련 개념도커 네트워크에 대해서 다루어보기 전에, 아래의 기본적인 네트워크 관련 개념들을 알고만 있어주면 될거같다네트워크란?여러 장치가 서로 연결되어 정보를 주고받을 수 있는 시스템이다. 우리가 컴퓨터에서 웹사이트를 열 때도, 서버에 요..
클라우드 네이티브 애플리케이션 + LEAFY 실습 (DevOps)
·
DevOps/Docker
서론클라우드 네이티브 아키텍처는 나도 생소한 개념이였는데, 간단하게 설명하면 여러 서비스를 유기적으로 연결해주는 기술인데, 프로젝트 구조를 보다 유연하고 확장 가능하게 만들어준다고 한다. 이번 포스팅에서는 클라우드 네이티브의 기본 개념부터 시작해서, Leafy라는 식물 관리 애플리케이션을 실제로 컨테이너 환경에서 구성했던 과정을 기록해봤다본론클라우드 네이티브클라우드의 형태는 크게 두가지가 있다고 나오는데, 퍼블릭 클라우드는 AWS, GCP처럼 누구나 사용 가능한 형태고 프라이빗 클라우드는 조직 내부에서만 사용하는 방식인데, 보안성도 높고 비용 최적화에도 도움이 된다고 배웠다서론에서도 간단하게 얘기했었지만, 클라우드를 사용하게 되면 가장 큰 장점은 유연성이라고 느꼈다. 그 이유는 아래와 같다 클라우드를 사..
이미지 레지스트리와 빌드 (DevOps)
·
DevOps/Docker
들어가며이번 포스팅에서는 이미지랑 컨테이너를 어떻게 공유하고, 관리하고, 생성하는 과정에 대해서 다루려고 한다. 그중에서도 이미지의 저장소인 레지스트리랑 직접 이미지를 생성하는 빌드 과정을 함께 정리해보았다본론이미지 레지스트리란?이미지 레지스트리(Registry)는 도커 이미지들을 저장하고 공유할 수 있는 중앙 저장소 역할을 한다. 대표적으로는 Docker Hub가 있으며, 기업에서는 자체적인 프라이빗 레지스트리를 운영하기도 한다고 한다. Docker Hub 에서는 docker pull, docker push 명령어를 통해 이미지를 주고받을 수 있다만약 이미지를 레지스트리에 업로드하려면 아래의 단계로 진행이 되는데,1. docker tag 명령어로 이미지에 태그를 붙이기2. docker login을 통..
Docker 이미지와 컨테이너 (DevOps)
·
DevOps/Docker
들어가며도커를 사용하면서 가장 핵심이 되는 기술은 이미지와 컨테이너라는 사실은 사용하면서 인지는 하고 있었다. 하지만 단순히 이미지로부터 컨테이너를 실행한다는 것은 알아도 실제로 이미지가 무엇을 포함하고 있는지, 컨테이너가 어떤 상태를 가지는지, 실행 시점에는 어떤 변화가 일어나는지 구체적으로 이해해야 진짜로 도커를 잘 활용할 수 있다고 강의에서는 설명했다본론이미지란 무엇일까 ?도커 이미지는 컨테이너를 생성하기 위한 정적인 파일 시스템이다. 우리가 흔히 말하는 웹 애플리케이션, API 서버 등을 실행하기 위해 필요한 모든 환경이 이미지 안에 포함되어 있다고 생각해주면 된다. 이미지란 하나의 실행 가능한 스냅샷 ? 이라고 이해하면 편할거같다. 이 이미지를 기반으로 컨테이너가 실행되며, 이미지는 변하지 않지..
가상화 기술과 컨테이너 (DevOps)
·
DevOps/Docker
서론DevOps에서 많이 사용하는 기술 중 하나가 바로 도커라고 생각한다. 나는 도커를 사용하면 서버 운영, 배포, 테스트 환경 구성 등이 훨씬 간단해진다는 정도만 알고있었고, 내부적으로 어떻게 구체적으로 작동하는지 등등에 대한 내용들에 대해서는 모르는 사람이 물어보면 솔직히 잘 모르는 정도라고 생각했다. 그래서 이번 기회에 SOPT에서 도커 스터디를 시작하게 되었는데, 해당 스터디를 진행하며 새로 알게된 내용들을 아티클로 정리해보려한다들어가며항상 프로젝트에서 도커 파일을 복붙하거나 CI/CD에서만 사용했던 도커였기에, 한 번쯤은 제대로 이해하고 넘어가야겠다는 생각이 들었다이번 포스팅에서는 가상화 기술에 대한 내용부터 시작해서, 도커의 기본 작동 구조, 그리고 실제로 도커를 설치하고 컨테이너를 실행하는,..