도커는 애플리케이션 계층의 추상화, 커널을 공유함(운영체제 단위의 포트 공유하기에 같은 번호 포트 사용은 안됨) spring, db, 1. docker run jar 2. docker run -p 8080:8080 jar 3. docker run -p 8080:8080 jar & EC2 보안 설정 인바운딩 8080 허용 4. docker run -p 8080:8080 jar & EC2 보안 설정 인바운딩 8080 허용 && docker run -p 33006:3306 db & EC2 보안 설정 인바운딩 3306 허용 application.yml db.url = EC2 IP db.port = 3306 5. docker run -p 8080:8080 jar & EC2 보안 설정 인바운딩 8080 허용 && ..
프록시 서버 왜 쓸까?기본 웹 서비스 통신의 방식입니다.www.naver.com을 치면 이런 화면을 받아오는 것과 같습니다. 이후 로그인을 하는 등 비즈니스 로직과 관련된 부분을 동작하면 백엔드에 요청하고 응답받은 리소스를 활용해 화면을 재구성합니다 웹 서비스 인프라를 구축하며 서버의 프론트엔드의 3000번과 백엔드의 8080번 포트를 모두 직접 노출을 했습니다. 하지만 그 앞단에 프록시 서버를 두면 아래와 같이 통신하고 다음과 같은 장점들을 갖습니다. Nginx를 프록시 서버로 활용해 아래와 같은 이점을 살렸습니다. 1. 리버스 프록시 기능으로 백엔드, 프론트엔드의 포트노출을 최소화2. SSL 오프로딩으로 하위 백엔드 서버와 프론트엔드 서버는 http 통신만으로 부하를 줄이고 인증서 유지보수 간소..
도커는 애플리케이션 계층의 추상화로 기술로 컨테이너에서 실행한 응용 프로그램의 실행이 끝나면 컨테이너가 중지된다. 도커 이미지, 도커 파일의 CMD 항목을 통해 컨테이너 실행 시에 응용프로그램을 실행 명령을 설정한다. Ubuntu 이미지는 linux 운영체제의 기본 쉘 프로그램인 bash 쉘 프로그램을 실행한다. 운영체제 이미지는 컨테이너로 실행 시에 STDIN, STDOUT,STDERR 스트림을 컨트롤 해줘야하는데 해당 컨테이너는 따로 실행중인 응용프로그램이 없기 때문에 표준입력을 받을 수 있게 해야 대기 상태로 실행되고, 그렇지 않으면 종료된다. docker run -it를 통해 도커를 사용하는 Host PC의 터미널과 도커 컨테이너의 STDIN을 연결해줘야 한다. -i 컨테이너의 입력(STDIN)을..
도커를 공부시작 계기 슬슬 배포 및 서버 자체에 프로그램을 실행시켜 연동시키기보다 컨테이너에 띄워 자동배포하기 쉬운 환경에 대한 공부도 해보고 싶었고 요즘 서비스에서 많이 도입하는 MSA 관련의 기초지식이기도 하며 도커를 모르는 사람도 도커 네트워크를 이용할 수 있는 웹 서비스 프로그램을 만드는 팀프로젝트에 참가하게 되어 공부 시작 가상화를 사용하는 이유 도커에 대한 설명 전에 가상화 기술이 왜 필요한지에 대한 이해가 필요하다. 일반적으로 OS를 실행하려면 각 OS를 전용 물리적 서버에서 실행해야 한다. 여러 OS를 동시에 실행해야 하는 경우에는 물리적인 서버가 필요하고 다음과 같은 단점이 발생한다. 1. 여러 운영체제를 실행하는 것은 여러 물리적 서버를 이용한다는 것이므로 서버 관리 비용이 많이 듬 2..