목록DevOps & Infra (151)
오늘도 한 뼘 더
# 배경 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..
# 문제 $ ssh ubuntu@{IP address} 항상 접속하던 대로 ssh키를 사용하려 접속하려 했는데 다음과 같은 에러가 발생했다. # 해결 방법 문제의 발생 원인은 접속하려는 IP주소로 기존에 접속한 기록과 현재 접속하려는 서버가 달라서 RSA키가 맞지 않아 생기는 문제라고 한다. 해당 문제를 해결하는 방법은 간단했다. host 컴퓨터에서 다음과 같은 명령어를 통해 ssh/known_hosts를 업데이트해야한다. $ ssh-keygen -R {IP address} 명령어를 실행하면 다음과 같이 업데이트가 되었다고 화면이 뜬다.
# 문제 error parsing alb-ingress-controller.yaml: error converting YAML to JSON: yaml: line 31: did not find expected key # 원인 해당 에러는 Yaml 파일 작성시 들여쓰기를 잘못 했을 때 발생하는 에러다 Yaml 파일에서는 탭을 사용한 들여쓰기를 지원하지 않기 때문에 스페이스로 공백을 작성하여 apply를 다시 시도하면 문제가 해결된다.
# 배경 AWS EKS를 로컬에서 kubectl 명령어를 통해 사용하기 위해서 이를 연결해 주는 작업이 필요했고 이해를 높이기 위해 도식화 하여보았다. # EKS 연결 도식화
# 배경 - Golang으로 된 프로젝트를 빌드하는 과정에서 docker 명령어가 작동하지 않는 문제가 발생하였다. # Docker 명령어 문제 해결하기 - 다음 에러를 보고 Docker Desktop을 시작하지 않아서 생기는 문제라고 인식 - Docker Desktop을 시작했더니 다음과 같은 에러가 발생했다. - 이 문제가 window의 경우 docker를 사용하기 위해 가상화를 설정해야 하는데 이 가상화가 제대로 작동하지 않아 생기는 문제라고 한다. # 가상화 설정 1. Hyper-V가 비활성화된 경우 - GUI로 활성화 시키기 1) Window 기능에서 해당 내용에 대한 기능들을 켜준다. 2) 작업 관리자 > 가상화가 사용으로 되어있으면 된다. - window Command Line으로 가상화를 ..