Docker-compose 다루기
·
Infra
Docker-compose여러 컨테이너를 일괄적으로 정의하고 실행할 수 있는 툴하나의 서비스를 운영하기 위해서는 여러 개의 application이 동작해야 한다.컨테이너화 된 application 들을 통합 관리할 수 있다.docker-compose의 문법에 맞춰서 yaml 파일을 만들어서 컨테이너를 실행시킨다.yaml 파일 작성 문법version : compose 버전(버전마다 지원 문법 다름)services : compose 이용해서 실행할 컨테이너 옵션 정의e.g. service: webserver:(컨테이너) (세부 정보들) bulild : . image:nginx ..
컨테이너 관리하기
·
Infra
리눅스 부하 테스트stress tool 사용하기부하 발생시킬 container 생성90mega로 부하동작 시켜보기컨테이너 리소스 제한컨테이너 사용 리소스 확인cAdvisor 동작시켜보기cAdvisor github 이용해서 다운 받으면 cadviosr 도커 컨테이너가 동작한다. cadviosr container에 접근하는 방법먼저 cadvisor가 8080포트를 이용중이어서 포트포워딩 해주기그리고 localhost:108으로 접속하기docker stats로도 cpu momory block I/O 정보 확인 가능데이터 영구적으로 보존하는 방법도커 컨테이너에 있는 데이터를 나의 host에 저장한다.docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ROOT..
컨테이너 다루기
·
Infra
Conatainer 만들기Dockerfile을 이용해 컨테이너를 빌드한다.dockerfile 문법FROM base 이미지(운영 환경)COPY 컨테이너 빌드시 호스트의 파일을 컨테이너로 복사WORKDIR 컨테이너 빌드시 명령이 실행될 작업 디렉토리 설정CMD 컨테이너 동작시 자동으로 실행할 서비스나 스크립트 지정build 해보기dockerfile과 소스 파일을 준비하고 빌드해보기docker build -t [컨테이너이름]:latest [docker파일 위치]만들어진 이미지 확인실행시켜보기docker hub에 이미지 배포docker login으로 docker 유저 이름 비밀번호 입력개인 저장소에 올릴 때는 docker tag webserver:v1 hyoungjoon/webserver:v1 이런식으로 tag..
가상화 다루기
·
Infra
먼저 VMware workstation과 Virtual box를 설치해주었습니다.type-1 가상화전체 가상화CPU의 가상화 기술을 이용해서 하드웨어 전체를 가상화하는 기술반 가상화하드웨어를 완전히 가상화하지 않아 게스트 OS가 직접 하드웨어를 제어하지 않고 하이퍼바이저가 제어하는 기술type-2 가상화호스트형 운영체제 위에 하이퍼바이저를 올려서 사용하는 가상화 기술macOS와 window에서는 리눅스 커널이 없기 때문에 hypervisor를 활성화 시켜서 그 위에 컨테이너를 돌린다.(macOS나 window는 docker desktop으로 이용)하이퍼 바이저 구성하기virtualbox 설치 후 네트워크 구성기본 환경 구성ubuntu와 centos 가상머신 만들기 (프로세서 2개 메모리는 4096MB)u..
리버스 프록시와 로드 밸런서가 다른건가?
·
Infra
Intro서버 아키텍처를 공부하면서 리버스 프록시 서버와 로드 밸런서에 대해서 알게 되었는데 하는 일이 비슷하다고 생각해서 어떤 점이 다른지 공부해보게 되었습니다.프록시 서버란?클라이언트와 서버 사이에서 동작하는 중간 서버를 의미한다.클라이언트가 서버에 직접 요청을 보내는 대신 프록시 서버는 클라이언트 요청을 받아 서버로 전달하고, 서버에서 받은 응답을 클라이언트에게 다시 전달하는 중계자 역할을 한다.프록시 서버 종류🌐 포워드 프록시 서버클라이언트와 서버 사이에서 중계 역할을 하는 서버로, 클라이언트의 요청을 받아 이를 대신 서버에 전달하고, 서버의 응답을 받아 다시 클라이언트에 전달하는 역할을 합니다.주요 기능트래픽 필터링: 악성 웹사이트나 특정 유형의 콘텐츠에 대한 접근을 차단할 수 있습니다.캐싱:..
Spring Security, JWT로 인증, 인가 구현하기
·
Dev
인증(Authentication)과 인가(Authorization)인증은 사용자가 누구인지 확인하는 절차, 회원가입하고 로그인 하는 것을 말한다.인가는 사용자가 서비스에서 제공하는 기능을 사용할 수 있는 권한이 있는지 확인하는 절차를 말한다.Spring SecuritySpring Security는 filter chain을 기반으로 인증과 인가를 수행해서 보안 기능을 제공한다.filter는 http 요청이 들어오면 filter에 통과 시켜서 보안 작업을 수행합니다.로그인 같은 요청은 예외 처리를 통해 인가 작업이 없어도 사용 가능하도록 설정 가능Spring Security 처리 과정처음에 요청이 들어오면 AuthenticationFilter(UsernamePassAuthenticationFilter)를 거..