목록DevOps & Infra (155)
오늘도 한 뼘 더

# 배경 서버를 운영하는데 CPU가 올라가거나 request 수가 크지 않았음에도 서버가 timeout이 나서 다운이 되는 일이 발생했다. 어떠한 부분에서 문제가 있는지 알아보기 위해서 Slow Query 모니터링이 필요하다. # RDS Slow Query 설정하기 1. 파라미터 그룹 열기 사용 중인 파라미터 그룹에 접근한다. 2. 파라미터 편집 파라미터 편집 > slow_query_log 검색 slow_query_log의 기본값은 0 또는 없음이다. 로깅을 하기 위해서는 값을 1로 지정하고 저장한다. general_log도 똑같이 설정한다. long_query_time : 몇초 이상 걸리는 query를 로깅할 것 인지 3. 로깅 된 값 조회하기 - 파라미터 그룹에 log_output을 검색하면 다음과 ..

Nginx를 통해 설정한 주소에 SSL 설정하기 위해서 무료로 SSL을 사용할 수 있는 프로그램인 certbot을 사용한다. https://certbot.eff.org/ Certbot Tagline certbot.eff.org # SSL 설정 1. snapd 설치 $ sudo apt-get update && sudo apt-get install snapd $ sudo snap install core; sudo snap refresh core //최신버전인지 확인 2. Certbot 설치 $ sudo snap install --classic certbot 3. Certbot 명령어 실행을 위한 설정 $ sudo ln -s /snap/bin/certbot /usr/bin/certbot 4. Nginx 설정 ..

# 문제 Docker 관련 환경변수를 변경하고 docker를 재시작하는 과정에서 다음과 같은 에러가 발생 $ sudo systemctl restart docker >> Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. 이후에 docker 컨테이너 상태를 확인해보려고 했는데 이 또한 다음과 같은 에러를 반환했다 $ sudo docker ps -a >> Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the ..

# Docker 설치 https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu docs.docker.com apt 패키지 업데이트 및 HTTP 패키지 설치 $ sudo apt-get update $ sudo apt-get install -y ca-certificates \ curl \ software-properties-common \ apt-transport-https \ gnupg \ lsb-release 도커 설치 (1) $ sudo apt update $ sudo apt install docker-ce docker-ce-cli containerd.io (2) $ sudo apt install docker.io

# 배경 2022.06.15 - [DevOps & Infra/Docker] - [Docker] Ubuntu 서버에 Docker Registry를 사용하여 개인 Registry만들기 [Docker] Ubuntu 서버에 Docker Registry를 사용하여 개인 Registry만들기 # 배경 현재 회사에서 Jenkins를 올려놓은 서버에 개발계 서비스들이 같이 올라가 있다. 이 때문에 Jenkins가 빌드/배포를 하다가 pending이 나서 서버가 다운되면 개발계 서비스들이 모두 다운되는 baekji919.tistory.com 한 개의 서버를 두개로 분리하기 위해 사설 Docker Registry를 만들었다. 만들어진 Docker Registry를 사용해 보도록 한다. # Docker Image 만들기 1..

# 배경 현재 회사에서 Jenkins를 올려놓은 서버에 개발계 서비스들이 같이 올라가 있다. 이 때문에 Jenkins가 빌드/배포를 하다가 pending이 나서 서버가 다운되면 개발계 서비스들이 모두 다운되는 불편함이 있다. 해당 문제를 해결하기 위해 Jenkins용(빌드 서버)와 개발계 서비스들을 올리는 개발 서버를 분리하도록 한다. 빌드 서버에서 만든 Docker Image를 사용하기 위해 사설 Registry를 만들도록 한다. # Docker Registry 실행 1. Docker Registry 이미지 찾기 $ sudo docker search registry 2. Docker Image 풀 받기 $ sudo docker pull registry:latest 3. Pull 받은 이미지 확인하기 $..

VPC 간 통신하기 1. VPC 피어링 연결 VPC 간 통신을 하기 위해서는 먼저 VPC 피어링이 선행되어야 한다. 2022.05.03 - [DevOps & Infra/AWS] - [AWS] VPC 피어링 [AWS] VPC 피어링 # 배경 같은 계정의 서로 다른 VPC 간 통신을 진행하기 위해서는 VPC 피어링이 필요하다. # VPC 피어링 연결하기 1. 서비스 검색창에 VPC를 검색한 뒤 대시보드에 피어링 연결을 선택한다. 2. 피어 baekji919.tistory.com 2. 피어링 연결을 라우팅 테이블에 추가하기 VPC > 서브넷 1) 서브넷 Public에 연결되어있는 라우팅 테이블을 확인한다. 2) 라우팅 테이블에 접속하여 라우팅 > 라우팅 편집 접근 다른 VPC의 IPv4 CIDR을 대상(목적지..

## 배경 기존에 AWS ElasticBeanstalk으로 배포하던 service 프로젝트를 Docker로 배포하면서 파일에 접근을 하지 못하는 문제가 발생했다. ## 원인 해당 문제는 파일에 대한 경로를 COPY 하지 않아서 직접 명시해서 COPY한 파일 외에는 execute 파일에 묶여서 접근하지 못하는 문제였다. Dockerfile을 작성할 때 multi-stage build를 적용하면 COPY 명령어로 파일을 복사하지 않을 시 exe파일 하나로 동작이 되어 파일을 찾는데 어려움이 있다고 한다. 그래서 파일 경로를 명시하는 코드가 있다면 그 경로를 복사해야 한다고 한다. ## 해결 방법 - 기존 Dockerfile FROM golang:1.15.6 AS builder WORKDIR /go/src/s..

# 배경 같은 계정의 서로 다른 VPC 간 통신을 진행하기 위해서는 VPC 피어링이 필요하다. # VPC 피어링 연결하기 1. 서비스 검색창에 VPC를 검색한 뒤 대시보드에 피어링 연결을 선택한다. 2. 피어링 연결 생성을 클릭 3. 피어링 연결을 구성한다. - 피어링의 이름 지정(선택 사항) - 연결하고자 하는 VPC와 이를 수락할 VPC를 각각 선택한다. 4. 생성된 피어링 요청을 수락한다. 5. 피어링 상태가 활성으로 변경이 된다.

위의 그림과 같이 A의 계정의 S3버킷 내용을 B계정의 S3버킷에 복사하고 싶다. # 다른 계정의 AWS S3에 접근하기 한 S3버킷에서 다른 계정의 S3 버킷으로 내용을 복사하기 위해서는 정책 설정을 해주어야 한다. 1. A계정의 IAM 사용자에 정책을 추가한다. { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::source-DOC-EXAMPLE-BUCKET", "arn:aws:s3:::source-DOC-EXAMPLE-BUCKET/*" ] }, { "Effect": "Allow", "Action": [ "s..