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

# 배경 AWS EKS를 로컬에서 kubectl 명령어를 통해 사용하기 위해서 이를 연결해 주는 작업이 필요했고 이해를 높이기 위해 도식화 하여보았다. # EKS 연결 도식화

# 배경 - Golang으로 된 프로젝트를 빌드하는 과정에서 docker 명령어가 작동하지 않는 문제가 발생하였다. # Docker 명령어 문제 해결하기 - 다음 에러를 보고 Docker Desktop을 시작하지 않아서 생기는 문제라고 인식 - Docker Desktop을 시작했더니 다음과 같은 에러가 발생했다. - 이 문제가 window의 경우 docker를 사용하기 위해 가상화를 설정해야 하는데 이 가상화가 제대로 작동하지 않아 생기는 문제라고 한다. # 가상화 설정 1. Hyper-V가 비활성화된 경우 - GUI로 활성화 시키기 1) Window 기능에서 해당 내용에 대한 기능들을 켜준다. 2) 작업 관리자 > 가상화가 사용으로 되어있으면 된다. - window Command Line으로 가상화를 ..

# 배경 Window에서 MySQL Workbench를 통해 Export 한 데이터를 Ubuntu 서버에서 사용하기 위해 전송이 필요했다. # SCP(Secure Copy)를 사용한 OS간 파일 전송 ## SCP 옵션 -r : 폴더를 복사할 때 사용 -p : 원본파일의 권한 및 속성을 유지하여 복사 -P : 포트번호를 지정하여 복사 -c : 압축하여 복사 -v : 복사가 되는 과정을 출력한다. -a : 아카이브 모드로 복사 ## 단일 파일 복사 1. 로컬에서 원격으로 (Local -> Remote) $ scp [옵션] [파일명] [원격 id]@[원격 ip]:[받는 위치] ex) $ scp ./aaa.tar ubuntu@XXX.XXX.XXX.XXX:~/data_backup 2. 원격에서 로컬로 (Remot..

# 배경 - AWS ElasticBeanstalk으로 배포하고 있는 Service(Backend) 프로젝트를 도커 컨테이너로 배포하여 사용하기 위해서 도커 컨테이너가 올라가는 서버에 Nginx를 설치하고 도메인과 연결할 수 있도록 한다. # Nginx란? - 웹 서버 소프트웨어이다 - 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가진다. ## Nginx 설치하기 https://ubuntu.com/tutorials/install-and-configure-nginx#2-installing-nginx Install and configure Nginx | Ubuntu Ubuntu is an open source software operating system that runs from the desktop, ..

# 배경 회사에서 Docker 업무를 하면서 로컬에서 golang 서비스를 Docker로 만드는 걸 진행했는데 잘 되지 않는 문제가 발생을 했고 시니어 분께서 Dockerfile을 봐주시면서 Multi-Stage Build라는 것을 알아보라고 하셨다. # Multi-Stage Build - Docker 이미지를 만들 때 Dockerfile을 사용하는데 이때, 이미지를 만드는 방식이 layer를 쌓는 방식이다. - multi-stage builds는 여러개의 "FROM"을 작성하여 하나의 Dockerfile에서 새로운 빌드 스테이지를 시작할 수 있게끔 한다. - 필요한 소스들만 COPY를 해서 사용함으로써 도커 이미지의 용량도 줄어드는 효과가 나타난다. # Multi-Stage Build 적용 전 - 시니..

# 배경 jenkins에서 프로젝트 빌드/배포를 하다가 모든 배포가 에러가 나면서 진행이 되지 않았다. 확인해본 결과 공간이 부족하다는 에러 메시지를 확인 # 문제 내용 jenkins docker를 올려놓은 EC2 인스턴스의 볼륨 크기가 작아서 발생한 문제 jenkins에서 빌드 할 때 모듈을 다운로드하거나 하면 CPU를 많이 차지한다고 한다 # EC2 볼륨 수정 1. 해당 EC2의 볼륨 수정을 진행해서 크기를 수정한다. 2. EC2에 직접 접근하여 이 볼륨을 적용시켜줘야한다. 1) 해당 EC2에 접근 ssh ubuntu@{EC2 IP} 2) 어떤 파티션의 크기를 조정해야 하는지 확인 $ lsblk 3) Linux 파티션 크기 조정 $ sudo growpart /dev/nvme0n1 1 4) 파티션 크기..

AWS를 작업할 때 크게 두 가지 방법으로 작업을 한다. 1) AWS Console 2) AWS CLI(Command Line Interface) 보통 대부분의 작업을 Console로 작업을 했다. 이유는 눈에 더 확실히 보이기 때문이었는데 DevOps 및 Infra 작업들이 늘어날수록 CLI를 통한 작업을 해야하는 부분들이 생겼다. 1. AWS CLI 설치하기 $ apt update $ apt-get install awscli 2. AWS CLI를 사용하기 위해서는 `aws configure` 명령어를 통해 aws 설정을 진행해야한다. AWS access key/secret access key는 IAM 사용자를 만들 때 발급된다. $ AWS ACCESS KEY : {AWS ACCESS KEY} $ AW..

1. docker 이미지 찾아보기 $ docker search mysql 2. 현재 사용 중인 버전의 mysql 이미지 다운 $ docker pull mysql:8.0.23 3. docker image 확인하기 $ docker images 4. docker 컨테이너 올리기 $ docker run -d \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=bstore1017my \ -v /var/lib/mysql:/var/lib/mysql \ --name mysql mysql:8.0.23 5. mysql 도커로 접속 $ docker exec -it mysql bash 6. mysql로 접속 $ mysql -u root -p

# Docker 빌드(이미지 만들기) docker build --tag {image name):tag . # 이미지 - 이미지 리스트 docker images - 이미지 삭제 docker rmi {image ID} - 컨테이너에서 사용중인 경우 컨테이너를 삭제 후 이미지 삭제 또는 강제 삭제가 가능하다. docker rmi -f {image ID} - 사용되지 않는 이미지 삭제하기 $ docker image prune -f # 컨테이너 - 실행중인 컨테이너 리스트 보기 docker ps - 전체 컨테이너 리스트 보기 docker ps -a - 컨테이너 시작 docker start {container name} - 컨테이너 중지 docker stop {container name} - 컨테이너 삭제 dock..

# 배경 웹 프론트엔드 개발자로 일하고 있는 회사 동료 분이 현재 운영계에서 소스맵을 통해 우리의 코드가 오픈되는 것을 이야기하면서 소스맵을 비활성화 하는 방법을 제안하였다. # 소스맵(Source Map)이란? - 서버에 배포를 할 때 성능 최적화를 위해 HTML, CSS, JS와 같은 웹 리소들을 압축하는데 이 빌드, 배포된 파일을 원본 파일과 서로 연결시켜주는 기능을 한다. - 원본의 파일을 볼 수 있기 때문에 소스맵이 빌드,배포한 파일에서 에러가 날 때 디버깅이 가능할 수 있도록 도와주는 기능을 한다. 이런 디버깅은 편의성을 제공하지만 결국 코드가 노출이 되기 때문에 보안의 이슈가 발생할 수 있다. - 원본파일과 연결을 시켜주는 역할을 하기 때문에 소스맵이 활성화가 되면 메모리를 많이 쓰게 되면 ..