본문 바로가기

(Dev)Ops

(9)
EKS #3 - 도커 이미지를 ECR 에 올리기. 사전준비사항 : aws 계정이 있고, aws cli 를 설치. aws configure 를 통해 cli 를 사용할 준비가 되어 있음. ECR 리포지토리를 만듭니다. aws ecr create-repository \ --repository-name test-nginx \ --image-scanning-configuration scanOnPush=true \ --region ap-northeast-2 리포지토리가 만들어졌다는 결과값이 나타납니다. 컨테이너 이미지를 리포지토리에 푸쉬하기 위해, 인증 토큰을 가지고 오고, 해당 인증 도큰을 docker login 명령어로 전달합니다. 이 때, 사용자 이름 값은 AWS로 명시하고, 인증하려는 Amazon ECR 레지스트리 URI를 지정합니다. aws ecr get..
EKS #2 - M1 맥에서 docker image 만들기. M1 용 docker desktop 을 설치합니다. 링크 : https://docs.docker.com/docker-for-mac/apple-silicon/ 테스트용 Dockerfile 을 만듭니다. FROM nginx:latest RUN echo ' test nginx web page ' >> index.html RUN cp /index.html /usr/share/nginx/html 도커 이미지를 빌드 합니다. docker build -t test-nginx . 이미지를 확인합니다. docker images 이미지를 실행시킵니다. docker run -p 8080:80 --name test-nginx test-nginx 웹 브라우저에서 localhost:8080 으로 접속해보면 샘플 페이지가 뜹니다...
AWS EKS #1 - kubectl, eksctl 설치 후 기본 클러스터 배포해보기. AWS EKS 를 테스트해보면서 누군가에게 도움이 될까 해서 기록을 남겨봅니다. 저는 맥을 사용하고 있습니다. 1. kubectl 설치. kubectl 은 쿠버네티스 컨트롤을 위한 command line interface 입니다. 작성 시점의 kubectl 최신 버전이 1.21.1 이라 이것을 다운로드합니다. curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/darwin/amd64/kubectl 다운받은 바이너리에, 실행 옵션 x 를 붙인 후, $HOME/bin 으로 옮기고, path 를 겁니다. chmod +x ./kubectl mkdir -p $HOME/bin && cp ./kubectl $HOME/b..
메시지큐의 용도 & AWS SQS 와 SNS 의 차이점. 먼저, 메시지큐는 어떨때 사용하게 될까? A 서버에서 B 서버를 바로 호출하는 경우, B 서버의 상태에 따라 A 서버가 의존적이게 된다. 즉, B 서버를 재배포하려고 하면, A 서버를 관리하는 담당자에게도 알려주어야 하는데, 이런 형태는 요즘처럼 PO 중심 개발조직에서는 말이 안되는 업무 프로세스가 된다. 이때, B 서버 앞에 메시지큐를 두어, A 서버에서는 메시지큐에 큐잉을 하고, B 서버에서는 메시지큐로부터 가져다가 처리하게 되면, B 서버의 다운타임동안에 A 서버의 동작에 문제가 없다. 그렇다면 어떤 서비스를 메시지 큐로 이용하는게 좋을까? sqs, sns, kafka, kinesis 등의 대안이 있는데, kafka/kinesis 는 스트리밍을 지원하기 위해 구조가 복잡해지고, 인스턴스를 미리 확보..
jenkins 에서 원격지 tomcat 재시작하기. jenkins 를 이용하여 배포를 했는데, 원격지의 tomcat 을 수동으로 hostmanager 에 들어가서 stop, start 하는 것이 불편했습니다. 방법을 찾아보니, host-manager 를 rest 방식으로 액세스하는 인터페이스를 tomcat 에서 만들어두었더군요. 먼저 권한을 부여합니다. 설치디렉토리/conf/tomcat-users.xml 파일에 아래 항목을 넣습니다. 테스트해봅니다. curl -u test:pass http://localhost:8080/host-manager/text/list localhost 는 tomcat 이 설치된 곳입니다. 이제 jenkins 에서 커맨드라인 실행을 추가합니다. 먼저, 구성을 클릭해서 들어간 후, 가장 아래쪽에 Add build step 을 누른 ..
SSH 터널링을 통해서 sftp 접속 방법. sftp 로 파일을 가져와야 하는데, 이 서버가 외부 IP 가 없어, 중간에 SSH 호스트를 거쳐야 하는 경우가 있습니다. 이 경우, 먼저 자기 개발서버에서 터널링 포트를 개설해줍니다. ssh -L :: @ 이후 SSH 호스트 계정의 비밀번호를 입력하면, SSH 호스트에 접속되면서, 터널링 포트는 열린 상태가 됩니다. 이후 개발서버에서 아래처럼 접속합니다. sftp -oPort= @localhost resursive 하게 하위 디렉토리 파일까지 다 가져오려면 get -r * 존재하는 파일은 스킵하려면 get -a *
telnet 없이 포트 오픈 여부 체크하기. 역시 만능 curl 입니다. 사용법은 아래와 같습니다. curl -v telnet://1.1.1.1:1111 telnet 프로토콜로 1.1.1.1 IP 주소의 1111번 포트에 접속하여 결과를 보여줍니다.
ansible 개요와 사용법. 서버가 여러개 있는 경우, 패치 하나를 설치하더라도 여러 호스트에 반복 작업을 해야 하는 상황을 겪게 됩니다. ansible은 이런 작업을 자동화해주는 툴입니다. 관련 툴이 몇가지 있지만, agent 를 사용하지 않고 ssh 를 사용하는 툴 중 대표주자이며, 따라서 간편하기 때문에 가장 많이 애용되는 것으로 알고 있습니다. 관리 대상이 될 서버를 docker 로 설치해봅니다. https://skysoul.tistory.com/43 Docker를 이용한 Linux 설치. sshd 설정. DevOps 관련 도구를 테스트해 보기 위해, Linux 머신이 필요했습니다. 이런 용도로 가볍게 쓰다 버릴 수 있는 구조로 만든 것이 Docker 아니겠습니까? Docker 로 Linux 를 설치해보았습니다. 먼저 doc..
Docker를 이용한 Linux 설치. sshd 설정. DevOps 관련 도구를 테스트해 보기 위해, Linux 머신이 필요했습니다. 이런 용도로 가볍게 쓰다 버릴 수 있는 구조로 만든 것이 Docker 아니겠습니까? Docker 로 Linux 를 설치해보았습니다. 먼저 docker 를 설치합니다. 맥의 경우, docker.com 에서 Docker Desktop for Mac 을 다운받아 설치하시는 것이 가장 좋은 방법입니다. 아래 커맨드를 실행하면 Docker repository 에서 ubuntu 도커 이미지를 다운로드 받아 백그라운드로 실행합니다. > docker run -dit -p 1022:22 --name 'ubuntu' ubuntu -p 1022:22 는 host 의 1022 번 포트를 22번(ssh) 포트에 연결한다는 의미입니다. --name '..