분류 전체보기 216

도커 컨테이너 차트 시트

/* sudo docker start {name} */ - 종료된 컨테이너 재실행 sudo docker start -d b1f5e820f02a - -d(datch) 로그 시행 안됨 sudo docker attach b1f5e820f02a - 종료된 컨테이너에 연결 sudo docker logs -f goofy_swartz - 컨테이너 log 데이터를 보여줌 sudo docker start -a goofy_swartz - ‘-a’(attach) 옵션으로 바로 연결 가능 이미 실행 중인 컨테이너에 연결하기 디폴트로 '-d' 없이 컨테이너를 실행하면, "attached모드"로 실행 > 이는 CONTAINER라는 ID 또는 이름으로 실행 중인 컨테이너에 연결 FROM python WORKDIR /app COPY..

Proxy Server Sprint

- proxy_temp_path : ● 프록시 요청과 관련된 임시 파일이 저장되는 경로 ★ 리버스 프록시일 경우, NGINX는 백엔드 서버에서의 데이터를 버퍼링 하거나 캐시 하기 위해 임시 파일이 필요 why? 클라이언트를 대신하여 백엔드 서버(예: 애플리케이션 서버 또는 다른 웹 서버)로 요청을 전달하기 때문에 - proxy_cache ${mycache} : > 프록시 서버에서 응답을 캐싱하여, 동일한 요청이 반복될 때 백엔드 서버에 재요청하는 대신 캐시된 응답을 반환함으로써 성능을 향상 - keepalive : > 클라이언트와 서버 간의 여러 HTTP 요청과 응답을 하나의 TCP 연결에서 처리하는 기술로, 연결을 재활용하여 네트워크 지연과 서버 리소스 사용을 줄이는데 도움을 줍니다. event 기반

CDN

Content Delivery Network > 콘텐츠를 빠르고 효율적으로 제공하기 위해 등장한 서비스 ★ CDN 특징 > 원본을 복사하여 여러 개의 캐시 서버로 구성 > 콘텐츠를 요청 받은 경우 데이터를 전달하기 유리한 캐시 서버에서 콘텐츠 제공 - 제공할 콘텐츠를 가지고 있는 위치 상으로 가장 가까운 캐시 서버가 콘텐츠 제공 1. CDN 네트워크는 요청한 곳과 가장 가까운 데이터 센터가 해당 콘텐츠를 저장하고 있는지 확인 2. 지도와 같은 경우라면 중국에 위치한 데이터 센터가 확인 3. 만약 해당 데이터 센터가 전달 할 콘텐츠를 가지고 있지 않다면, 다른 데이터 센터가 해당 콘텐츠를 가지고 있는지 확인 4. 이때 콘텐츠가 없는 데이터 센터를 제외한 나머지 중 지리적으로 가장 가까운 데이터 센터를 선택..

프록시 캐시

프락시: 클라이언트와 서버 사이에 대리로 통신을 수행하는 것 > 그 중계 기능을 하는 서버를 프락시 서버 장점 > 클라이언트, 혹은 반대로는 서버가 다른 네트워크에 간접적으로 접속 > 보안 > 캐싱을 통한 성능 > 트래픽 분산 ★ 프록시 캐시 지시어 ★ 캐시 무효화 ● no-cache와 must-revalidate 차이 > no-cache - 서버와 네트워크 단절되어 있는 경우, 오래된 데이터를 보여주는 개념으로 200ok 사용 > must-revalidate - 서버 접근 불가할 때 504 Gateway Timeout 오류 사용(통장 잔고 등 중요한 정보)

도커 - 기본 원리

도커 > 컨테이너 기술 > 컨테이너를 생성하고 관리하기 위한 기술 > 코드를 사용하는데 필요한 종속성과 도구가 포함 > 서로 다른 환경에서 프로그램이 실행되도록 최신 버전을 고정시킴 가상 머신 vs Docker 컨테이너 ★ 가상 머신(Virtual Machine) > Windows, macOS, Linux -> 위에 설치 > 가상 운영 체제에서 오버헤드 발생 > 메모리,CPU, 하드 드라이브에 낭비 발생 > 분리된 환경, 환경별 구성, 안정적으로 공유 재생산 > 메모리 낭비, 성능 저하, 모든 시스템에 버추얼 머신 설정 ★ 도커 > 별도의 운영체제 설치x > 내부 컨테이너에서 작동 > 도커 엔진 > 컨테이너 > 구성 파일을 작성하여 설명할 수 있음

캐시

캐시 > 데이터나 값을 미리 복사해 놓는 임시 장소 > 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용 > 브라우저에 캐시를 저장할 땐 헤더에 cache-control 속성을 통해 캐시가 유효한 시간을 지정할 수 있음 캐시 검증 헤더와 조건부 요청 > 캐시의 유효시간이 초과하면 다시 서버에 요청을 보내 새로운 데이터로 캐시를 업데이트 > 하지만 캐시의 유효기간이 지났지만, 데이터의 변경이 없는 경우? > 검증 헤더 사용 ★ 검증 헤더 ● If-Modified-Since: ${data}(요청) -> Last Modified: ${data}(응답) > 데이터가 마지막으로 수정된 시간 정보를 헤더에 포함 1. 데이터가 수정되었는지..

로드밸런서(Load Balancer)

서비스 가용성(availability)를 높이기 위해서 하나의 서비스는 보통 두 대 이상의 서버로 구성하는데 각 서버 IP주소가 다르므로 사용자가 서비스를 호출할 때는 어떤 IP로 서비스를 요청할지 결정해야 함 사용자에 따라 호출하는 서버의 IP가 다르면, 특정 서버에 장애가 발생했을 때, 전체 사용자에게 영향을 미치지 않아 장애 범위는 줄어들겠지만 여전히 부분적으로 서비스 장애가 발생 > 해결책 : 로드밸런서 로드 밸런서 > 서비스를 위한 가상 IP를 하나 제공하고, 사용자는 각 서버의 개별 IP 주소가 아닌 동일한 가상 IP를 통해 각 서버로 접근, 또한 각 서버의 서비스 상태를 체크해 서비스가 가능한 서버로만 사용자의 요청을 분산 > 서버에서 장애가 발생하더라도 기존 요청을 분산하여 다른 서버에서 ..

프록시

프록시(Proxy)란? > 프록시(Proxy)의 사전적 의미는 대리, 대리권을 의미 > 프록시 서버는 원 서버를 대리하여 통신하며 캐시, 로드밸런서, 보안 등 중계 역할을 하는 하는 서버 > 프록시 서버가 중간에 위치하기 때문에 클라이언트는 프록시 서버를 ‘서버’라고 인식하고, 서버 입장에서는 프록시 서버를 ‘클라이언트’로 인식 ● 프록시 종류 포워드 프록시(forward proxy) 혹은 리버스 프록시(reverse proxy) ★ 포워드 프록시 > 일반적인 프록시 서버는 포워드 프록시를 말하며, > 클라이언트-서버 구조에서 클라이언트 쪽을 대리하며, 클라이언트에서 서버로 리소스를 요청할 때 직접 요청하지 않고 프록시 서버를 거쳐서 요청 ★ 리버스 프록시 > 리버스 프록시는 포워드 프록시와 반대의 개념..

리버스 프록시 오류

1. nginx 서버를 실행하면서 밑에 오류가 났었다. 2. 그래서 nginx.service의 상태를 확인할 수 있도록 systemctl 명령어를 사용하였다. 3. /data/nginx/cache의 폴더나 파일이 없어서 연결을 해주지 못하는 거였다!! 4. 그래서 proxy_cache_path의 경로를 /var/nginx/cache -> /etc/nginx/cache로 바꿨더니 해결되었다. 5. 해결!! ★ systemd 란? > 전통적으로 Unix 시스템이 부팅후에 가장 먼저 생성된 후에 다른 프로세스를 실행하는 init 역할을 대체하는 데몬입니다. 서비스 상태 확인 > systemctl status 서비스명

두 번째 발표

[C514] 다음의 헤더를 보고 유추할 수 있는 내용을 모두 작성하세요. 1. 응답 헤더 ● HTTP/1.1 버전을 사용하고 있으며, 상태코드는 200으로 응답 완료 상태입니다. ● 브라우저가 구동되는 웹 서버 환경은 nginx이며, 데이터는 2022년 12월 6일 화요일 4:41:09초에 만들어졌습니다 ● 데이터 타입은 text / html 형식이며, 브라우저는 내가 작성한 데이터를 utf-8형식으로 변환한다는 것을 알 수 있습니다. ● 데이터 압축 방식은 chunked인 것으로 보아 대용량의 데이터를 여러 조각으로 쪼개서 보내는 것으로 보입니다. ● connection 부분에서 연결을 유지 한다는 것을 알 수 있으며, keep-alive 구문에서 연결 허용 시간은 60초인 것을 알 수 있습니다. ● ..