Application Modernization/DevOps 17

AWS CodeBuild로 EKS에 배포해 보자

개요 현재까지(22년 4월) AWS의 CodeDeploy는 EKS 배포를 지원하지 않는다. 따라서 명령어 기반 build 툴인 CodeBuild를 통해서 배포를 하던지 별도의 서드파티 제품과 연동해야 EKS 배포가 가능하다. 여기서는 CodeBuild를 통해서 EKS배포를 하는 방법에 대해 알아 보겠다. * 이 예제를 성공적으로 따라해 보기 위해서는 AWS의 CodeCommit이 구성되어 있어야 하며, ECR, EKS등 이미 배포 환경이 만들어져 있어야 한다. 다만 CodeBuild의 작동 방식만 참조를 할때는 해당 구성이 없다고 하더라도 상관없다. 파이프라인 구성할 파이프라인은 아래의 아키텍처에서 볼 수 있듯이 AWS Code Series로 구성할 예정이며 파이프라인 관리 -> CodePipeline,..

AWS CodeCommit을 이용해 S3에 정적 컨텐츠를 배포해 보자

개요 이번 포스팅은 AWS의 GitHub에 대응되는 CodeCommit의 레파지토리에 HTML로 구성된 정적 컨텐츠가 업로드되면 AWS의 CodePipeline이 이를 감지해 Amazon S3에 정적 컨텐츠를 배포하는 것을 구성해 보고자 한다.(AWS의 S3는 웹서버 기능을 대신 할 수 있다) 아키텍처 이번 포스팅에서는 웹서버 역할을 위해 S3를 사용할 것이고 정적 컨텐츠(html, css, js, image) 소스 관리를 위해 AWS CodeCommit을, 그리고 파이프라인 구성을 위해 AWS CodePipeline을 사용할 것이다. 그 아키텍처는 아래 그림과 같다. 사전조건 1. html 서비스를 위한 정적 컨텐츠 준비(html, css, js, image) - 별도로 준비하기 힘들다면 간단한 파일이..

Github대신 AWS의 CodeCommit을 사용해 보자 - HTTPS 인증 방식

개요 이번 포스팅은 앞서 포스팅했었던 동일 제목의 포스팅과 동일한 내용이다. 다만, 레포지토리 사용을 위한 인증방식만 차이가 있다. 따라서 기본 시나리오나 내용는 이전 포스팅을 참조해 보도록 하자 Github대신 AWS의 CodeCommit을 사용해 보자 - SSH 인증 방식 개요 중앙 집중화된 소스 관리툴은 에전에도 많았지만 최근 몇년사이 이 부분 defacto는 git으로 통일되고 있는 듯 하다. 요즘은 이러한 git 원격 저장소 역할을 하는 무료/유료의 서비스들이 다양 sharplee7.tistory.com 사용환경 macOS - Monterey gradle intelliJ 적용 수순 1. IAM 사용자 생성 및 CodeCommit 사용권한 추가 2. CodeCommit Repository 생성 ..

Github대신 AWS의 CodeCommit을 사용해 보자 - SSH 인증 방식

개요 중앙 집중화된 소스 관리툴은 에전에도 많았지만 최근 몇년사이 이 부분 defacto는 git으로 통일되고 있는 듯 하다. 요즘은 이러한 git 원격 저장소 역할을 하는 무료/유료의 서비스들이 다양하게 있고 여기서는 AWS의 유료서비스인 CodeCommit에 대해 다루어 보고자 한다. 간단히 github(무상)과 AWS의 CodeCommit에 대해 비교해 보자 구분 GitHub(무상) AWS CodeCommit(유상) 비용 무상 서비스 월 접속 계정 5개, 계정당 요청수 2k까지 무료 그외 유료 편리성 - 상대적 유리 - AWS 서비스와 통합성이 상대적으로 약함 - 상대적 불리 - AWS Code 시리즈와 통합성 강함 보안 암호화 지원 없음 암호화 지원 사실 고객들을 만나 미팅을 하다보면 오픈소스에 ..

GitHub, Code Build 그리고 CodePipeline를 이용한 간단한 배포 실습

개요 이 포스트는 node.js로 작성되어 있는 AWS 한국 리전 홈페이지의 지속적 전달 파이프라인 생성 예제를 spring boot로 변환해 재 구성해서 포스팅하는 글이다. 이 글에서는 git을 통해 소스를 커밋하게 되면 aws의 CodePipeline을 통해 CodeBuild가 컴파일을 완료하게 되고 이를 다시 Elastic Beanstalk에 배포하는 방식이다. 이때, 필요하다면 사용자 승인을 거쳐야만 배포가 되게 할 수도 있다. 다루는 내용 1. GitHub 설정 2. 샘플 앱을 배포할 AWS Elastic Beanstalk 환경 생성 3. GitHub의 소스를 빌드하도록 AWS Code Build 구성 4. AWS CodePipeline을 이용한 소스, 빌드 및 지속적 배포 환경 구성 아키텍처 ..

Git, gradle, Spring Boot 개발 환경 구성 ... 2/2

SPring Boot 프로젝트 구성 및 Git 레파지토리 구성은 아래의 링크를 참조할 것 Git, gradle, Spring Boot 개발 환경 구성 ... 1/2 이 글은 2019년 네이버 블로그에 포스팅 했던 내용을 리 포스팅 했습니다. 개요 최근 IT Infra 환경이 Cloud 환경으로 점차 변화되면서 응용 프로그램 역시 Cloud에 최적화된 아키텍처를 요구하고 있다 sharplee7.tistory.com Git Tag 추가 지난번 포스팅에서 온라인 https://start.spring.io/ 를 이용해 SpringInitializr 라는 Spring Boot Web 어플리케이션을 gradle 기반으로 생성해 이를 로컬 PC에 다운로드 받았었다. 여기에 git init 명령어를 통해 로컬 PC의 ..

Git, gradle, Spring Boot 개발 환경 구성 ... 1/2

이 글은 2019년 네이버 블로그에 포스팅 했던 내용을 리 포스팅 했습니다. 개요 최근 IT Infra 환경이 Cloud 환경으로 점차 변화되면서 응용 프로그램 역시 Cloud에 최적화된 아키텍처를 요구하고 있다. 이렇게 기존 Infra 환경에서 개발된 응용프로그램들을 Cloud에 최적화된 응용프로그램으로 Refactoring/Rebuilding 하는 것을 요즘 Application Modernization이라 하고 있다. 이 포스팅에서는 Application Modernization의 중심에 있는 Spring Boot, Git 그리고 최신의 IDE(Integration Development Tool) 기반 개발 환경을 이해하고 구성하는 것을 알아 보도록 하겠다. 개발환경 Spring Boot Gradl..

Gradle proxy 설정

기업환경에서 gradle을 사용하다 보면 proxy 서버 문제로 아래와 같은 에러를 볼 때가 있습니다. 다음과 같은 proxy 설정 정보 값을 작성해 gradle.properties 라는 파일로 저장하시기 바랍니다. 1. Proxy가 HTTP 방식일 때 systemProp.http.proxyHost=your proxy host info systemProp.http.proxyPort=your proxy host port info systemProp.http.proxyUser=[userid] systemProp.http.proxyPassword=[password] systemProp.http.nonProxyHosts=[*.exclusiveurl.com|localhost] 2. Proxy가 HTTPS 방식일 ..

Gradle init type 알아보기

Gradle 프로젝트 디렉토리를 생성한 다음 gradle init [--type [타입명]] 명령어를 수행해 gradle 프로젝트에 필요한 초기 파일 및 디렉토리들의 초기 설정을 합니다. gradle init 다음에 입력되는 타입은 ①basic ②java application ③java library(jar 파일) ④groovy-library ⑤scala-library ⑥pom이 존재하며 각각은 다음과 같습니다. 1. basic gradle init으로 입력 했을때 적용되는 기본 타입입니다. 모든 타입의 기본이며 구체적인 빌드파일, 디렉토리등이 기술되지 않습니다. build.gradle과 settings.gradle 만 생성됩니다. 2. java-application gradle init --type j..

Gradle, Github, Eclipse 그리고 Web Application 연동

github에 등록된 그래들(Gradle) java-application(이하 java-library type도 동일) 프로젝트를 이클립스로 import해 활용하는 방법에 대해 알아 보겠습니다. 그래들(Gradle)로 java-application type의 프로젝트를 생성하는 방법은 링크된 인터넷을 확인 하시기 바라겠습니다. 또한 생성된 프로젝트를 github에 등록하는 방법도 링크된 인터넷을 통해 확인 하시기 바라겠습니다. 여기에서는 github에 등록되어 있는 그래들(Gradle)기반의 java-application 프로젝트를 PC의 gradle repository로 복제(clone )해서 이클립스에서 import 하는 방법을 알아 보도록 합니다. 따라서 테스트를 할 gradle 기반의 github..

Gradle 간단 Application 빌드

그래들(Gradle)은 프로젝트를 생성할 때 지정하는 type을 통해 어플리케이션의 종류를 지정할 수 있습니다. 이번에는 Gradle을 이용해 Web 어플리케이션을 어떻게 만들고 빌드 할 수 있는지 알아봅니다. 특히 Gradle을 이용한 Web 어플리케이션 개발을 위한 방법은 여러가지가 있을 수 있으나 여기에서는 초경량 Servlet Container인 Jetty 서버(gradle에서는 'gretty' plugin으로 관련 파일을 실행) 와 Gradle의 war plugin을 이용해 개발 배포 하는 방법을 알아보도록 하겠습니다. 1. 프로젝트 만들기 Web 어플리케이션 역시 init의 type 파라미터는 java-pplication으로 지정하면 됩니다. 테스트를 위해 콘솔을 열어 아래와 같이 프로젝트를 ..

Gradle의 buildscript, repository, jcenter 그리고 dependencies

1. buildscript 그래들(Gradle)에서 buildscript는 보통 별도의 외부 라이브러리를 가져와야 할 때 사용합니다. 즉, 심플한(외부 라이브러리가 필요 없는) 라이브 사용 시에는 별도로 작성할 필요가 없습니다. buildscript는 repository와 dependencies로 구성됩니다. 2. repository 그래들(Gradle)에서 repository란 build.gradle이 들어있는 프로젝트에서 사용하는 라이브러리의 위치를 지정합니다. 가장 흔하게 사용하는 것은 jcenter(), mavenCentral(), google() 등이 있습니다. 모두 인터넷에 있는 공개용 라이브러리 저장소입니다. 3. dependencies repository에서 jcenter, mavenCen..

Gradle task의 초간단 이해

Gradle의 task는 Gradle 프로젝트의 작업 단위 입니다. 실행 시 콘솔상에서 gradle [task명]으로 실행을 하면 됩니다. 이러한 task는 groovy 언어로 작성되어 지며 Gradle 내부에 미리 만들어져 있는 내장의 task들과 build.gradle 파일에 사용자가 정의해 사용하는 사용자 정의 task 두종류가 존재합니다. 내장된 task는 콘솔상에서 gradle tasks 명령어를 실행해 확인해 볼 수 있습니다. 콘솔 상에서 gradle 다음에 입력했던 모든 파라미터가 사실은 내장된 task였다는 것을 확인해 볼 수 있을 겁니다. (init, jar, clean, run …) 앞서 설명했듯이 gradle의 task의 모든 문법을 익히는 것은 결국 groovy 문법을 익히는 것과 ..

윈도우에 Gradle설치와 간단 Sample실행

1. Gradle이란? Gradle이란 그래들 재단과 그래들웨어라는 단체에 의해 2009년부터 개발된 빌드 도구(Build Tool)입니다. Groovy로 개발 되었으며 Java개발자들에게 익숙한 Maven에 해당되는 도구입니다. 구글의 안드로이드 사용자를 중심으로 최근 사용자가 많아지고 있는 추세입니다. 과거 Java 초창기에 가장 유명했던 빌드 도구는 Ant 였으나 Ant가 배우고 쉽고 사용하기 쉬운 반면 라이브러리 레파지토리 관리 기능이 없어 Maven이 그 자리를 대체 했었습니다. 그러나 최근엔 Maven 역시 XML 기반으로 작동되어 설치, 설정 등의 절차가 까다로워 점점 더 많은 사용자들이 Gradle로 옮겨가고 있는 추세 입니다. 사실 일반 개발자들이 Gradle에 관심을 가지게 된 가장 큰..

자주쓰는 Git 명령어

대부분의 경우 Git 명령어는 아래의 명령어만 알면 됩니다. 원격지 git에서 전체 소스 가져오기 1. workspace 및 Project 폴더 만들기 2. project 폴더에서 git init 3. git remote add origin http://..../xxx.git 4. git pull origin master 원격지 커밋할때 1. global config 설정 - git config --global user.name "Euideok Lee" - git config --global user.email "euideok.lee@example.com" 2. git add [파일명/ . ] 3. git commit -m "message" 4. push -u origin master 많이 쓰는 명령어 ..

Git for windows Proxy설정(GitBash)

윈도우 환경에서 Git Repository 구성을 위해 사용되는 Git for Windows(GitBash)는 윈도우의 Proxy 설정을 따르지 않고 자체 환경 파일에 Proxy 정보를 기입해 주어야 합니다. Git for Windows 레파지토리가 설치된 디렉토리에서 숨긴 속성으로 저장된 .git 폴더를 찾아 들어가면 config란 파일을 찾을 수 있습니다. config 파일을 메모장이나 Notepad++ 등의 텍스트 에디터를 통해 오픈해 아래와 같이 proxy에 관련된 정보를 추가하도록 합니다. 수정이 완료되면 정상적인 작동을 확인 하실 수 있을 겁니다. 감사합니다.

윈도우에서 Git과 github을 사용해 보기

GIt은 리누스 토발즈에 의해 개발된 분산형 파일 버전 관리 시스템을 말함 GitHub는 Git을 웹호스팅을 통해 관리할 수 있게 해주는 무료 웹사이트 gitbash를 통해 윈도우 환경에 git을 사용할 수 있는 환경 구성 가능 1. PC의 윈도우 Git 레파지토리 구축을 위해 GitBash 설치(https://gitforwindows.org) 윈도우에 Linux/Unix의 Bash Shell 기반 Command Line 명령어 입력 환경을 제공 Git Command 지원 GUI기반 레파지토리 관리 툴 제공 2. GitHub에 New Repository 생성 https://github.com 회원가입 신규 레포지토리 생성 3) GitHub 레파지토리 옵션 설정 Repository Name: 사용할 레파지..

반응형