목록Sparta Coding Club (23)
취미가 좋다
Docker가 서비스 제공에 편리한 이유 서비스 제공을 위해, 서버를 띄우기 위해 우리는 아래의 작업을 했다. docker 설치 docker-compose 설치 docker-compose.yaml 생성 docker-compose 로 컨테이너 띄우기 만약 docker 가 없다면 아래의 과정을 수행해야 한다. python 설치 라이브러리 설치 (requirements.txt 파일을 옮겨서 설치한다.) Mongo 설치 코드 다운로드 이 과정들은 하나하나 구글링해서 복잡한 과정을 수행해야한다. 뿐만 아니라 python 버전 업그레이드, 라이브러리 업데이트, mongo에서 mysql로 이전, 새로운 OS로 이전 과 같은 여러 상황들이 발생했을 때도, 번거로운 과정을 거쳐야한다. 따라서 도커를 사용하게 되면, 번거..
AWS란? 여러 개의 데이터 센서를 여러 곳에 가지고 있어서, 사람들이 필요한 컴퓨팅 자원을 가져다 쓸 수 있도록 하는 클라우드 플랫폼이다. 데이터 센터란 서비스를 제공하기 위해 컴퓨팅이 가능하게 만들어둔 곳이다. 간단하게 말하면 컴퓨터가 많이 있는 곳이다. AWS EC2 인스턴스 띄우기 가장 먼저 AWS 가입을 해야한다. aws console (AWS 제품을 사용하기 위한 웹 UI) 에 들어간다. 기왕이면 가까운 데이터 센터를 사용하는 게 좋으니, region을 seoul로 변경한다. ec2 검색 → 인스턴스 > 인스턴스 → 인스턴스 시작 → AMI 선택화면에서 Amazon Linux 2 AMI 선택 → 인스턴스 유형 t2.micro 선택 → 보안그룹 편집 → 규칙 추가 (유형=사용자 지정 TCP, 포..
사용하지 않는 docker 리소스 정리 사용하지 않는 컨테이너, 이미지, 네트워크, 볼륨을 삭제하면 메모리나 디스크 낭비를 줄일 수 있다. 아래의 명령어로 차례대로 컨테이너, 이미지, 네트워크, 볼륨을 확인한다. docker ps -a docker images docker network ls docker volume ls 아래의 명령어로 불필요한 리소스를 삭제한다. docker rm container_id docker rmi image_id docker network rm network_id docker volume rm volume id docker system prune docker system prune 명령어는 아래의 여러 가지 것들을 삭제한다. -a에 옵션을 붙이면 더 많은 것들을 삭제한다. c..
Docker-compose 란? 여러 컨테이너를 편리하게 실행하기 위해 만들어진 도구이다. yaml 파일을 정의해서 사용한다. (YAML 이란 데이터를 저장하는 파일 포맷으로, XML / JSON 보다 사람이 읽기 더 편하다는 장점이 있다.) docker-compose 로 memo application 실행하기 기존 커맨드는 아래와 같다. docker build . -t wellshs/docker-memo:latest docker run -d -p 5000:5000 wellshs/docker-memo:latest 위의 과정을 docker-compose로 실행하기 위해, 아래의 docker-compose.yaml 파일을 생성한다. version: "3.9" services: flask: build: con..
컨테이너가 호스트의 리소스(disk, memory)를 너무 많이 쓰면 발생하는 문제들이 있다. 메모리가 부족하게 되면, 호스트의 커널에서 잘 안쓰는 듯한 프로세스를 삭제하게 된다. 만약 이 프로세스가 필요한 프로세스였다면 문제가 된다. 특정 컨테이너가 cpu를 과하게 사용하게 되면, 다른 컨테이너가 동작하지 않을 수 있다. 만약 프로세스가 살아있는지 검사하는 외부 프로세스가 있을 때, cpu를 할당받지 못해서 응답을 못하는 프로세스가 죽었다고 판단하는 문제가 발생할 수도 있다. 디스크가 부족하게 되면, 새로운 프로세스를 생성하지 못하는 문제가 발생할 수 있다. docker stats stats 명령어로 각 컨테이너가 사용하고 있는 리소스를 확인할 수 있다. memory 제한하기 docker run -i ..
Docker Network 란? 도커 컨테이너들은 분리된 file system과 네트워크를 가지므로, 도커 네트워크를 통해 컨테이너간 통신을 가능하게 해준다. Docker Network 문법 1. 도커 네트워크 생성 docker network create test 2. 컨테이너 실행할 때 도커 네트워크 연결 docker run -d -p 24017:24017 --network test --network-alias mongo mongo --network 옵션으로 test 네트워크에 연결한다. --network-alias 로 앞으로 이 컨테이너에 연결하고 싶을 때, 이 네트워크 안에서 mongo 라는 이름으로 연결한다. 3. 컨테이너에서 다른 컨테이너 호출하기 docker run -it --network t..