🐋 Docker - NginX - CertBot 🐋 🦐 Intor 과거 EBMK 프로젝트에서 Docker를 동해 CI/CD 와 로드 밸런스를 구축했다. 완전하지는 못했지만 첫 Docker 배포라는 점에서 많은것을 배울 수 있었다. 그리고 이번 MLP 파이널 햡업 프로젝트에서는 더욱 견고한 배포 파이프 라인을 구축하기 위해 많은 것을 개선시킬 수 있는 계기가 되었다. 🦐 Body Geo Location 함수를 사용하고 싶다면 https를 적용하세요. 2015년부터 크롬 개발자들이 HTTP의 보안문제에 대해 이슈 가 되면서 GeoLocation API 기능제한에 대한 논의가 이루어졌다. 당연하게도 이번 프로젝트에서 사용되는 기능중 하나가 Geo Loacation이였고 서비스 환경을 HTTPS로 변경해야했다...
Nginx 로드 밸런싱 방식 로드 밸런싱은 개발자의 의도에 따라 분배 방식을 지정할 수 있다. 아래 실험은 개발자 Emre Ceylan님의 자료를 참고했다. RR(라운드- 로빈) 기본으로 사용된다. 서버에 고르게 분배하는 방식 사용자가 가중치를 부여할 수 있다. ip_hash Hashing 되어진 IP주소를 Key로 사용 결정된 IP는 항상 동일 인스턴스를 이용하게 된다. least_conn 가중치에 따라 접속수가 적은 수를 분배 현재 사용중인 서버중 연결 수가 가장 적은 서버로 요청합니다. hash 해시값으로 분배하는 알고리즘 least_time 연결수가 적으면서 평균음답 시간이 가장 적은 쪽을 선택하여 분배 RANDOM 무작위 분배 Reference Nginx web server를 이용한 로드 밸런싱..
이미시 build 시 생성되는 image Docker 개발시 자주 볼 수 있는 이미티 형태로 개발자의 코드가 잘못된 것이 아닌 Docker 자체의 부산물이다. Docker 이미지 파일 시스템과 이미지 계층의 구성 방식 각각의 도커 이미지는 레이어로 구성되며 이러한 레이어는 서로 부모-자식 계층관계를 가진다. 이러한 이미지는 /var/lib/docker/graph 에 저장되고 때문에 도커에서는 graph database라고 말한다. 작업한 Dockerfile을 pull, build 시 동일 이미지 Name이 존재할 경우 이미지 중복을 피하기 위해 기존의 이미지와 태그를 으로 변경하고 자식 계층으로 새로운 이미지를 빌드 하게 되는 것이다. Docker 에서는 이렇게 버려진 이미지를 dangling image..
What is NginX? NGINX 는 웹 서비스, 리버스 프록시, 캐싱, 로드 밸런싱, 미디어 스트리밍 등을 위한 오픈 소스 소프트웨어이며 최대 성능과 안정성을 위해 설계된 웹 서버 서비스이다. HTTP 서버 기능 외에도 NGINX는 이메일(IMAP, POP3 및 SMTP)용 프록시 서버와 HTTP, TCP 및 UDP 서버용 리버스 프록시 및 로드 밸런서로도 사용할 수 있습니다. 프록시 두 PC가 통신을 할 때 직접 하지 않고 중간에서 대리로 통신을 하는 것을 프록시라고 하고, 중계 역할을 하는 것을 프록시 서버 라고 한다. 리버스 프록시 애플리케이션 서버의 앞에 위치하여 클라이언트가 서버를 요청할 때 리버스 프록시를 호출하고, 리버스 프록시가 서버로부터 응답을 전달받아 다시 클라이언트에게 전송하는 ..
nginx.conf 와 default.conf 의 차이점 nginx.conf vi /etc/nginx/nginx.conf vim /etc/nginx/nginx.conf nano /etc/nginx/nginx.conf user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; //Process가 동시에 처리 가능한 접속자 수 } http { include /etc/nginx/mime.types; default_type application/octet-stream; // 웹서버의 기본 Content-Type을 정의한다. log_form..
🐋 Docker network 🐋 Docker 컨테이너(container)는 격리된 환경에서 돌아가기 때문에 기본적으로 다른 컨테이너와의 통신이 불가능하다. 하지만 여러 개의 컨테이너를 하나의 Docker 네트워크(network)에 연결시키면 서로 통신이 가능하다. Driver (네트워크 종류) bridge 기본 네트워크 드라이버이다. 브리지 네트워크는 일반적으로 애플리케이션이 통신이 필요한 독립 실행형 컨테이너에서 실행될 때 사용한다. host 독립형 컨테이너의 경우 컨테이너와 Docker 호스트 간의 네트워크 격리를 제거하고 호스트의 네트워킹을 직접 사용한다. overlay 오버레이 네트워크는 여러 Docker 데몬을 함께 연결하고 스웜 서비스가 서로 통신할 수 있도록 한다. 오버레이 네트워크를 사용..
🐋 Docker Logging 🐋 시스템이 정상적으로 운영됨을 확인하고 발생된 문제에 대한 디버깅을 효율적으로 관리하고자 한다면, 컨테이너 모니터링은 필수 이다. 도커 기본 로깅 도커가 제공하는 기능으로 별도의 인자를 명시하지 ㅇ낳았거나 다른 로딩 SW를 설치하지 않았다면, **.log파일로 남긴다. docker logs 기본 로깅 단점 STDOUT / STDERR 만 처리하므로 로그를 파일로만 기록할 수 있다. 컨테이너가 운영중에 있다면 기본 로깅 기능은 log를 계속해서 기록하여 사용자의 디스크 용량을 잡아먹을 것이다. ELK 를 이용한 로깅 Elasticsearch 준 실시간 검색 기능을 제공하는 텍스트 검색 엔진이다. 대용량의 데이터 처리를 위해서 여러 개의 노드로 쉽게 확장이 가능하도록 설계되었..
쿠버네티스? 쿠버네티스(Kubernetes)는 컨테이너화 된 애플리케이션의 대규모 배포, 스케일링 및 관리를 간편하게 만들어주는 오픈 소스 기반 컨테이너 오케스트레이션(Container Orchestration) 도구다. 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다. 쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해준다. 쿠버네티스는 크고, 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용할 수 있다. 오케스트레이션이란? "컨테이너화 된 애플리케이션에 대한 자동화된 설정, 관리 및 제어 체계" 마이크로서비스 아키텍처(MSA; Microservice Architecture)에서는 프로젝트에 포..
🐋 컴포넌트에서의 build 와 image의 차이 🐋 🍃 image image means docker compose will run a container based on that image Docker Hub에서 해당 이미지를 다운로드 후 이미지에서 컨테이너를 실행한다. 🍃 build build means docker compose will first build an image based on the Dockerfile found in the path associated with build (and then run a container based on that image). 해당 경로의 Dockerfile을 기반으로 먼저 이미지를 빌드하고 그것을 기반으로 컨테이너를 실행한다. 🍃 궁금증 발생 1.buil..
DinD DooD Jenkins CI 를 구성하는 중 Docker-compose를 실행하기 위해서는 Jenkins container 내부에 Docker를 다시한번 설치해야 한다는 것을 알았다. 도커가 컨테이너를 구성하기 위해서는 크게 2가지가 있음을 알았고 이를 정리한다. DinD 도커 컨테이너 내부에서 도커를 실행하는 방식이다. 저체적인 캐시를 사용하게 되기 때문에 처음에는 빌드가 느리고 자신의 이미지 전체를 다시 끌어와야한다. 컨테이너가 특별한 권한을 가진 모드(--privilige)에서 실행되어야 하기 때문에 DooD 방법보다 안전하지 않다. DinD는 /var/lib/docker 디렉토리를 위해 볼륨을 사용하는데 컨테이너를 제거할 경우 같이 제거하지 않으면 빠르게 사용 가능한 디스크 공간이 줄어들..
- Total
- Today
- Yesterday
- 자격증
- Matlab
- 매트랩
- ajax
- springboot
- OOP
- docker
- Solid
- 디자인패턴
- 자바
- 스프링
- 수학
- nginx
- 릿코드
- 그래프
- JPA
- Algorithm
- interview
- 알고리즘
- 프로그래머스
- 백준
- 면접
- spring-cloud
- C언어
- java
- 스프링부트
- kakao
- Spring
- security
- CS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |