반응형

전체 글 80

jib와 Github Actions를 이용한 빌드 자동화

jib 시리즈의 마지막 글로 Github Actions를 이용한 빌드 자동화 과정에 대해서 살펴보겠습니다. jib를 이용해서 애플리케이션의 컨테이너 이미지를 생성하고, 생성된 이미지를 이미지 저장소에 저장하는 과정까지를 Github Actions를 이용해서 사람의 참여 없이 진행해 보려고 합니다. 우선, 본격적인 이야기를 하기에 앞서 Github Actions에 대해 살펴보겠습니다. Github Actions Github Actions는 Github에서 제공하는 CI/CD 도구입니다. 아래는 Github 페이지에서 소개하는 Actions입니다. Automate라는 단어와 workflows라는 단어가 눈에 띕니다. Github Actions는 여러 개의 Action을 순서대로 조합해서 워크플로우라는 것을 ..

IT/DevOps 2021.08.25

BPF 성능 분석 도구

http://www.yes24.com/Product/Goods/102726821?OzSrank=1 BPF 성능 분석 도구 - YES24 BPF 도구를 통한 성능 최적화, 문제 해결 및 시스템 내부 구조 분석BPF 기반 성능 분석 도구들은 시스템과 애플리케이션에 대해 기존과는 차원이 다른 가시성을 제공합니다. 이를 통해 성능 최적 www.yes24.com 성능 분석을 통해 애플리케이션이 최적의 성능을 낼 수 있도록 구성하고 문제를 해결하는 업무는 DevOps 엔지니어나 시스템 엔지니어의 주요 업무 중 하나입니다. 하지만 성능 분석이라는 특성상 주로 성능에 문제가 있을 때 진행하게 되는 경우가 많고, 꽤 많은 수의 트래픽이 들어오지 않으면 성능에 문제가 있을 수 있다는 것을 알 수 없기 때문에 그 중요도가 ..

리뷰/도서 2021.08.10

패킷 덤프를 통해 확인하는 ALB와 NLB의 차이점 (2) - NLB 동작 원리

지난번 글에서는 패킷 덤프를 통해 ALB의 동작 원리에 대해 살펴봤습니다. 이번 글에서는 패킷 덤프를 통해 살펴보면서 NLB는 ALB와 어떻게 다르게 동작하는지 그 동작 원리에 대해서 살펴보겠습니다. NLB 생성하기 NLB도 ALB와 똑같이 80 포트로 받아서 8080 포트로 넘겨주도록 만들어 보겠습니다. 이번에도 테라폼을 이용해서 만들어 보겠습니다. NLB를 만들 때는 SecurityGroup을 지정하지 않는다는 것을 눈여겨 봐주시기 바랍니다. resource "aws_lb" "nlb" { name = "hello-jib-nlb" subnets = ["subnet-182c2954", "subnet-28fe2f43", "subnet-bb0230e7", "subnet-c2bf3db9"] internal =..

IT/DevOps 2021.08.08

AutoScalingGroup의 Scheduled action 활용하기

AWS 환경에서는 AutoScalingGroup은 통해서 간편하게 서버의 대수를 유지할 수 있습니다. 트래픽이 늘어나거나 줄어듦에 따라 EC2 인스턴스를 직접 늘리거나 줄이지 않아도 desired, min, max의 수를 변경하는 것만으로도 EC2 인스턴스의 대수를 조절할 수 있기 때문입니다. 만약 AutoScalingGroup이 없었다면, EC2 인스턴스를 하나하나 런칭 시키고 터미네이트 시켜야 했겠죠. 게다가 AutoScalingGroup에는 다양한 조건을 바탕으로 대수를 컨트롤할 수도 있습니다. CPU 사용량이 어느 정도 이상이 되거나, 네트워크 트래픽이 특정 수준 이상이 되면 서버를 늘리거나 줄이도록 설정해서 트래픽에 대한 대응을 자동으로 할 수 있게 도와줍니다. 그중에서도 오늘 살펴볼 Sched..

IT/DevOps 2021.08.06

패킷 덤프를 통해 확인하는 ALB와 NLB의 차이점 (1) - ALB 동작 원리

AWS에는 크게 세 가지 종류의 로드밸런서가 있습니다. CLB라 불리는 Classic LB, ALB라 불리는 Application LB, NLB라 불리는 Network LB 이렇게 세 가지 이죠. 그중 CLB는 사실상 deprecated 된 LB로 요즘엔 거의 사용하지 않습니다. ALB와 NLB가 용도에 맞게 각각 사용되고 있죠. 그래서 다들 궁금해합니다. 대체 ALB와 NLB의 차이점은 무엇인지, 그리고 각각 언제 사용해야 하는 건지. 그래서인지 구글링을 해보면 이 두 가지 LB의 차이점에 대해서 설명하는 글들을 많이 볼 수 있습니다. ALB와 NLB의 특징, 그리고 각각의 LB를 언제 사용하는 게 좋을지에 대한 자료들이 많이 존재하죠. 그래서 이번 글에서는 조금 색다르게 다들 알고 있는 그 차이점 말..

IT/DevOps 2021.08.05

클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트

http://www.yes24.com/Product/Goods/102234803?OzSrank=1 클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트 - YES24 애플리케이션 엔지니어도 쉽게 배우는 실전 쿠버네티스 프로젝트를 만난다!클라우드 컴퓨팅, 컨테이너, 쿠버네티스라는 세 가지 인프라 관련 기술이 등장하면서 최신 서비스 개발 환경은 클라 www.yes24.com 요즘 읽고 있는 전공 도서 중 대부분은 쿠버네티스와 관련된 책입니다. 제가 지금 하고 있는 업무의 대부분이 쿠버네티스라서 계속해서 학습해야 하는 과정에 있기 때문입니다. 기본적인 것들은 이해하고 있다고 생각했는데, 하루에 한 번씩 또 새로운 개념들을 만나고 있습니다. (쿠버네티스는 진짜 아무리 해도 끝이 없는..ㅠ_ㅠ) 그러다가 이 책을 만..

리뷰/도서 2021.08.02

jib 이용 시 자바 에이전트 추가하기

지난번 글에서 jib를 이용해서 자바 앱을 컨테이너화 하는 방법에 대해 살펴봤습니다. ./gradlew jib 라는 한 줄의 명령을 통해서 간편하게 자바 애플리케이션을 컨테이너화 할 수 있었습니다. 오늘은 jib를 이용해서 자바 애플리케이션을 컨테이너화 할 때 APM 에이전트와 같은 외부 라이브러리를 포함시키는 방법에 대해서 살펴보겠습니다. 이미지에 파일을 추가하기 기존과 같은 Dockerfile을 이용해서 컨테이너 이미지를 만들었다면 COPY 명령을 통해서 필요로 하는 외부 라이브러리를 추가할 수 있습니다. 그렇다면 jib에서는 어떻게 할 수 있을까요? jib에는 extraDirectories라는 설정을 통해서 할 수 있습니다. 그리고 extraDirectories의 paths 속성은 (project-..

IT/DevOps 2021.07.31

컨테이너 보안

http://www.yes24.com/Product/Goods/96836914?OzSrank=1 컨테이너 보안 - YES24 공격과 사고에 대비하는 컨테이너 보안의 기술 컨테이너 환경에 특화된 보안 문제를 다루는 실무 지침서다. 컨테이너를 배치하고 실행하는 단계마다 어떤 일이 일어나며, 발생할 수 있는 위협 www.yes24.com IT 책 중에 처음부터 끝까지 집중 해서 읽을 수 있는 책은 많이 없는 것 같습니다. 내용이 너무 어렵거나, 아니면 너무 쉽거나, 혹은 번역체가 이상하거나 해서 끝까지 다 읽지 못하고 책을 덮는 경우가 많았습니다. (혹시 제가 쓴 책들도 그랬을지도..ㅠ_ㅠ) 그런데 이 책은 조금 달랐습니다. 꽤 오랫만에 끝까지 읽었던 IT 책이었습니다. 요즘 쿠버네티스 기반으로 서비스 구축을..

리뷰/도서 2021.07.26

mockit 으로 구축하는 목업 API 서버

개발하는 과정에서 목업 데이터의 중요성과 필요성에 대해서는 다들 공감 하실 겁니다. 클라이언트와 서버간 혹은 마이크로 서비스로 구축된 서비스 간 통신을 하기 위해 어떤 데이터를 주고 받을지 협의 하고 개발을 진행하게 될텐데, 각자 개발에 필요한 기간과 난이도가 다르기 때문에 API 서버가 준비되기 위해 시간이 소요되죠. 하지만 그렇다고 상대방이 API 서버를 준비해 줄 때까지 기다리고 있을 순 없습니다. 그래서 각자 주고 받기로 한 데이터에 맞는 목업 데이터를 만들어서 개발을 진행하게 되죠. 하지만 다양한 이유로 서로 간 맞춰 두었던 스펙들은 변하기 마련이고, 이 때 마다 목업 데이터 역시 변경해야 할 겁니다. 그런데 이런 목업 데이터를 제공해 주는 API 서버가 있고, 스펙 변경도 손쉽게 할 수 있다면..

IT/DevOps 2021.07.24

jib를 이용한 자바 앱 컨테이너화

오늘은 구글 클라우드 도구 중 하나인 jib를 이용한 자바 애플리케이션 컨테이너화 과정에 대해 살펴보려고 합니다. jib가 무엇인지 궁금하신 분들을 위해 간단한 설명과 예제 애플리케이션을 만드는 과정을 통해서 jib를 활용할 수 있는 방안에 대해서 살펴보겠습니다. jib란 무엇인가? 애플리케이션을 컨테이너화 한다고 했을 때 가장 먼저 떠오르는 단어는 아마 Dockerfile 일 겁니다. 컨테이너 이미지를 만들기 위한 과정을 Dockerfile에 정의해 놓고 docker build 명령을 통해서 컨테이너 이미지를 만드는 게 가장 많이 알려진 방법이죠. 이걸 자바 애플리케이션에 반영한다면 아마도 애플리케이션을 빌드해서 jar 혹은 war 파일을 만들고 Dockerfile을 작성해서 원하는 베이스 이미지에 빌..

IT/DevOps 2021.07.23
반응형