CS

    루프백 ( 127.0.0.1, localhost )

    1. 루프팩(Loopback) 루프백 ip는 네트워크 상에서 자신을 나타내는 가상주소를 말한다. 자신에게 다시 네트워크 입력이 들어온다해서 루프백이다. IPv4에서 루프백 주소는 127.0.0.1이며 , IPv6에서는 ::1 로 사용된다. 127.0.0.1 대신 localhost를 사용하는 경우도 있는데 localhost는 컴퓨터 네트워크에서 사용하는 루프백 호스트명으로 OS hosts 파일의 redirect rerules를 통해 redirecting ip를 지정할 수 있다. 보통 시스템에서는 hosts파일에 127.0.0.1을 localhost로 연결시켜서 , localhost를 입력하면 DNS를 타지않고 바로 로컬로 연결된다. 1.1 동작 원리 TCP/IP 모델에서 생성된 모든 메세지는 수신자의 IP..

    l4 로드밸런싱

    1. l4 로드밸런싱 로드밸런싱이란(= 부하 분산)외부로부터 들어오는 다수의 요청을 서버들에게 적절히 배분하는 것을 말한다. 이 분산 처리를 network switch가 담당한다. 이 분산 처리를 담당하는 network switch를 L4/L7 switch라고 부르며 클라우드에서는 로드 밸런서라고 부른다. 1.1 로드밸런싱 방법 1. 라운드 로빈 : 다수의 서버에게 순서대로 요청, 가장 효율적 2. least connection : 로드밸런서는 connection 정보를 갖고 있는데 이 connection수를 기반으로 가장 connection이 적은 서버에게 전달 3. Ratio : 서버의 처리 능력을고려해 할당할 수 있는 connection 비율이 있는데, 이를 비율대로 할 4 . Fasted : 응답..

    mysql Index 종류 및 B-Tree 구조

    인덱스란? 인덱스란 지정한 칼럼들을 기준으로 메모리 영역에 일종의 목차를 생성해 읽기 속도를 높여준다. insert, update, delete의 성능을 희생하고 대신 select의 성능을 향상시키게 된다. 인덱스 종류 책으로 비유하자면 클러스터형 인덱스는 영어사전이며, 보조 인덱스는 맨 뒷장에 찾아보기가 존재하는 책이다. - 클러스터형 인덱스 (clustered index) 테이블당 1개만 존재 테이블은 이 클러스터형 인덱스로 자동정렬이 된다. 즉 특정 컬럼에 pk를 생성하는 순간 해당 칼럼에 클러스터형 인덱스가 자동으로 생성된다. 생성과 동시에 오름차순으로 정렬된다. 리프 페이지가 곧 데이터 페이지 (실제 데이터가 저장된 위치) - 보조 인덱스(secondary index) 한 테이블에 여러개 설정 ..

    mysql 쿼리 최적화

    1. 필요한 데이터만 select 하기 X : SELECT * FROM user O : SELECT id,username,tel FROM user 2. or 이 아닌 UNION ALL 을 사용한다. 먼저 join은 수직결합, union은 수평결합이다. union all과 union distinct의 차이점은 union은 중복 데이터값을 다 삭제하고 연결하며, union all은 중복되는 값을 모두 연결한다. or 조건은 풀스캔으로 인덱스를 타지 않기때문에 unino all 으로 바꿔 인덱스를 타게 해줘야한다. X : SELECT * FROM user WHERE id=1 OR salary=5000 O : SELECT * FROM user WHERE id=1 UNION ALL SELECT * FROM use..

    도커 컴포즈(Docker Compose)

    Docker Compose 여러 컨테이너를 일괄적으로 정의하고 실행할 수 있는 툴을 말한다. 즉 하나의 서비스를 운영하기 위해서는 컨테이너화된 여러 개의 애플리케이션이 동작되어야하는데 이를 통합 관리할 수 있게 해준다. yaml 형태 파일을 이용해 도커 컴포즈에게 요청을 하면, 도커 컴포즈가 이 파일을 읽어서 실행한다. 문법 만약 word press의 docker-compose 파일을 해석해보자면 , version: '3.1' #컴포즈를 이용해서 실행할 컨테이너의 옵션을 정의 #이 services안에는 db와 wordpress가 존재 services: wordpress: image: wordpress restart: always ports: - 8080:80 environment: WORDPRESS_DB..

    도커 데이터 보존하기 - Bind Mount/Volume

    먼저 도커 이미지는 read only로 수정이 불가능한 상태이다. 이미지를 docker run으로 실행을 시켜도 여전히 read only 상태의 프로세스이다. 따라서 컨테이너에 추가되는 데이터들은 별도의 read write 레이어에 저장된다. Union FIle System (= Overlay) 여러 개의 파일 시스템을 하나의 파일 시스템에 마운트하는 기능을 말한다. 여러 파일을을 하나의 파일 시스템으로 합칠때, 중복되는 파일이 존재한다면 UFS에서는 나중에 마운트된 파일로 덮어쓴다. Docker의 Union FIle System 도커의 컨테이너는 UFS 를 기반으로 동작한다. 컨테이너의 read only layer와 read write layer가 하나인것처럼 보이게 만드는 것을 말한다. 기존 레이어 ..

    도커 컨테이너 하드웨어 리소스 제한 관리 - Memory, CPU

    컨테이너 하드웨어 리소스 제한 관리하기 기본으로 컨테이너는 호스트 하드웨어 리소스의 사용 제한을 받지 않는다. 하지만 컨테이너가 필요로하는 만큼의 리소스만 할당해야한다. Docker Command 를 통해 제한할수 있는 리소스 : CPU, Memory, DISK IO docker run —help 를 통해 확인 가능하다. Memory 리소스 제한 제한 단위는 b,k, m,g로 할당 #nginx를 실행할때 최대로 사용할 수있는 메모리 양을 512m로 지정 docker run -d -m 512m nginx:1.14 #nginx는 항상 500m사용을 보장받고, 최대 1g 까지 쓸 수있다. docker run -d -m 1g --memory-reservation 500m nginx:1.14 #메모리 스왑 : 실..

    Docker로 mysql 설치 및 접속하기

    #도커 이미지 pull docker pull mysql #도커 컨테이너 생성 및 실행 docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=0000 -d -p 3307:3306 mysql:latest #도커 컨테이너 리스트 확인 docker ps #mysql 도커 컨테이너 접속 docker exec -it mysql-container bash - p : 도커 설치한 호스트의 3307 포트를 컨테이너의 3306 포트에 연결한다는 의미 이후에 접속을 하면 되는데 , 기본적으로 host 종류는 ‘localhost’ 와 ‘%’ 가 있다. 기본적으로 mysql 을 설치하면 로컬에서만 접속이 가능하고 외부에서는 접속이 불가능한데 이때 데이터 그립에 등록하고 싶으면 r..