배포

save나 export와 같은 방법으로 이미지를 단일 파일로 추출해 배포할 수도 있지만 이미지 파일의 크기가 너무 크거나 도커 엔진의 수가 많다면 이미지를 파일로 배포하기 어렵다. 또한 도커의 이미지 구조인 레이어 형태를 이용하지 않으므로 매우 비효율적이다. 이를 해결하는 방법은 도커 허브(Docker Hub)를 사용하거나 도커 사설 레지스트리(Docker Private Registry)를 사용하는 방법 등 여러 가지가 있다. 도커 허브 사이트에서 이미지를 검색할 수 있고, 해당 이미지에 대한 정보도 확인이 가능하다. 도커 허브 저장소 생성 도커 허브에 이미지를 올리기 위해 로그인 후 저장소를 생성한다. 기본적으로 비공개(Private) 저장소가 아니라면 모든 사용자들이 읽기 권한을 가지게 된다. 비공개..
업무 상 Docker와 Nginx를 통해 Blue Green 무중단 배포를 구축하려고 한다. OS는 Centos 7.x 기준이고 Application은 Spring Boot 기준으로 정리하였다. 현재 서버는 NCP에 Server를 사용하고 있고 Container Registry에 이미지를 저장해 사용하고 있다. 1. Centos에 Nginx 설치 먼저 yum 업데이트한다. $ sudo yum update 업데이트가 다 되었으면 yum 저장소에는 nginx가 없기 때문에 외부 저장소를 추가해서 설치해야 한다. $ sudo vi /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basea..
· Java
Java 패키지를 Github에 간단히 릴리즈 해 배포 후 다른 프로젝트에서 쉽게 사용할 수 있다. 나의 경우는 프로젝트마다 Message Queue를 사용하는데 큐를 보내고, 받는 페이로드를 공통으로 사용하고 있다. 보안이 중요하지 않은 코드는 릴리즈 해 사용하는것도 편리한 방법이 될 것 같다. 인텔리제이, Gradle 기준으로 정리하겠다. 일단 배포할 모듈을 생성한다. 예제를 찾다보면 maven plugin을 적용하면 된다고 하는데 Gradle 7버전에는 maven plugin이 지원되지 않는듯하다. Gradle 7버전 이상을 사용한다면 모듈을 생성 후 build.gradle에 maven-pulish 플러그인을 적용해준다. plugins { id 'java' } // maven-publish 추가 시..
도커와 쿠버네티스의 개요 쿠버네티스(Kubernetes)는 컨테이너화된 어플리케이션을 효율적으로 배포하고 운영하기 위해 설계된 오픈 소스이다. 따라서 쿠버네티스를 이해하기 위해서는 먼저 컨테이너를 사용하는 이유부터 알아야 한다. 애플리케이션이 생활 많은곳에 사용되고 중요성이 높아지고 있어 지속적 통합(CI)과 지속적 배포(CD)의 중요성이 점차 높아지고 있다. 사용자에게 새로운 기능과 서비스를 빠르고 안정적으로 제공해야 하는 것이다. 컨테이너 기술은 이러한 요구사항에 효과적인 대안을 제시한다. 개발자들은 서로 다른 개발환경으로 개발하기 때문에 개발 생산성과 안정성이 떨어지게 된다. 이러한 상황에서 컨테이너 기술이 빛을 발한다. 컨테이너 기술은 애플리케이션 실행에 필요한 라이브러리나 운영체제 패키지 등을 ..
· AWS
앞서 GitHub Action, Aws CodeDeploy, CI/CD가 무엇인지 알아보았다. GitHub Action + AWS CodeDeploy를 이용한 CI/CD (1/2) Github Action이란? Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 CI/CD 도구이다. Workflow는 Github 저장소에서 발생하는 build, test, package, release, deploy 등 다양한 이벤트.. devbksheen.tistory.com 이번에는 GitHub Action + AWS CodeDeploy로 CI/CD 구현 예시를 정리해보았다. 구현 예시 1. EC2 인스턴스에 CodeDeploy Agent 설치 EC2 인스턴스(Amazon Linux 2..
· AWS
Github Action이란? Github 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 CI/CD 도구이다. Workflow는 Github 저장소에서 발생하는 build, test, package, release, deploy 등 다양한 이벤트를 기반으로 직접 원하는 Workflow를 만들 수 있다. Workflow는 Runners라고 불리는 Github에서 호스팅 하는 Linux, macOS, Windows 환경에서 실행된다. Runners를 사용자가 직접 호스팅하는 환경에서 직접 구동시킬 수도 있다.(self-hosted runner) AWS CodeDeploy란? SourceCode를 운영환경에 자동 배포하는 AWS Service EC2, ECS, Lambda등 여러가지에..
beekei
'배포' 태그의 글 목록