분류 전체보기
-
[AWS] Spring Boot,Travis CI, CodeDeploy, Nginx로 무중단 배포하기Cloud/AWS 2021. 4. 22. 13:08
들어가기 전에 이러한 구조로 자동화 배포를 진행한 적이 있습니다. Github에 push만 하면 자동으로 EC2에 새로운 버전의 jar가 배포되고 재 실행되어서 배포가 되었습니다. 하지만 위의 방식에는 단점이 존재합니다. 배포가 진행되는 도중에는 서버가 잠시 중단되야 한다는 점입니다. CodeDeploy가 EC2에 새로운 버전의 jar를 배포할 때, 기존의 실행 중인 jar를 kill 한 후에 새로운 버전의 jar를 실행시킬 것입니다. 이 과정에서 서버가 잠시 중단되어 사용자들은 서비스에 접속할 수 없게 됩니다. 현재 우리가 많이 사용하고 있는 서비스들을 보면 새로운 버전의 업데이트가 일어나더라도 서비스가 중단되거나 하지 않고 무중단으로 배포가 이루어집니다. 무중단 배포에는 인스턴스를 여러 개 만들어 현..
-
[Shell Script] 셸 스크립트(Shell Script) 기본 문법 정리Shell Script/Bash Script 2021. 4. 21. 15:50
Shell Script 및 리눅스 일부 문법 정리 RESPONSE_CODE=$(sudo curl -s -o /dev/null -w "%{http_code}" http://localhost:8080) /dev/null: 위의 명령어가 성공했다면 아무 것도 뜨지 않고 실패하면 에러 메세지가 출력됩니다. curl: 해당 URL로 요청을 보내는 명령어(-s, -o, -w은 더 찾아보기) "%{http_code}": URL 요청의 HTTP Status Code를 파싱하게 된다. 즉, RESPONSE_CODE에 해당 상태 값이 담깁니다. if-else문 if [ ${RESPONSE_CODE} -ge 400 ] # 400 보다 크면 (즉, 40x/50x 에러 모두 포함) then CURRENT_PROFILE=real..
-
[AWS] ELB(Elastic Load Balancer) 개념 정리Cloud/AWS 2021. 4. 20. 14:19
로드 밸런싱 개념 정리하기 이번 글에서는 로드 밸런싱을 공부하면서 헷갈렸던 부분을 정리해보겠습니다. (어쩌면 당연한 부분들인데 헷갈렸던 것들이 있습니다,,) 로드 밸런서를 왜 사용하는지는 다들 알고 있을 것입니다. 서버 한대로만 트래픽을 받으면 그 서버에 부하가 걸리기 때문에 로드 밸런서를 통해서 여러 서버로 트래픽을 분산시키기 위해서 사용합니다. 로드밸런서를 사용하면 아키텍쳐는 위와 같습니다. 즉, 클라이언트는 로드밸런서에 접속을 하고 로드밸런서는 해당 트래픽을 각각의 Target-Group 인스턴스들로 분산을 시켜주는 것입니다. 여기서 궁금증이 생겼습니다.(지금 생각해보면 당연한 것인데.. 그럼에도 정리를..) 타겟 그룹마다 인스턴스의 역할이 다른것인가? 예를들어, Target-Group A의 인스턴..
-
[AWS] Auto-Scaling, Load-Balancer, CodeDeploy 현재위치 자동화 배포하기Cloud/AWS 2021. 4. 20. 11:53
Auto-Scaling CodeDeploy 현재 위치 자동화 배포하기 저번 글 에서 Blue/Green 배포가 무엇인지를 배웠습니다. 이번 글에서는 CodeDeploy 배포 방식 중에 하나인 현재 위치 배포 방식으로 실습을 진행해보겠습니다. 현재 위치 배포가 무엇인지 잘 모르겠다면 여기 를 읽고 오시면 됩니다. 이번 글은 저번 글 에서 다루고 있는 내용과 비슷한 부분이 있기 때문에 저번 글을 먼저 읽고 오시는 걸 추천드립니다. 이번 글에서 사용할 기술 Spring Boot Travis CI CodeDeploy S3 Auto-Scaling Load-Balancer Github 이번 글에서 사용할 아키텍쳐 이번 글에서 해보려는 아키텍쳐는 위와 같습니다. 즉, Auto-Scaling-Group을 2개를 만들고..
-
[AWS] Auto-Scaling CodeDeploy Blue/Green 자동화 배포Cloud/AWS 2021. 4. 19. 17:21
Auto Scaling, CodeDeploy로 Blue/Green 자동화 배포하기 저번 글 에서는 아래와 같은 아키텍쳐로 진행되었습니다.(저번 글을 한번 가볍게 보고 오는 것을 추천드립니다. AWS 서비스를 생성하는 과정에서 일부 생략되는 것이 있을 수 있습니다.) 간단하게 로드 밸런서, Auto-Scaling에 해당하는 아키텍쳐만 보면 위와 같습니다. 즉, ELB에는 하나의 타켓 그룹(Auto-Scaling 그룹)만이 존재하는 상황입니다. 그래서 이번 글에서는 Blue/Green 배포 방식 으로 타켓 그룹(Auto-Scaling 그룹)을 2개 만들어서 배포를 진행해보겠습니다. 이번 글에서 진행할 아키텍쳐는 위와 같습니다. 즉, Blue/Green 그룹으로 나눠서 무중단으로 자동 배포가 진행되게 할 것 ..
-
[AWS] CodeDeploy 현재 위치 배포 방식이란 무엇일까?Cloud/AWS 2021. 4. 14. 14:42
현재 위치 배포 방식이란 무엇일까? CodeDeploy에 보면 위와 같이 현재 위치 배포 방식과 블루/그린 배포 방식으로 나뉘어 집니다. (블루/그린 배포 방식은 저번에 알아보았는데 궁금하다면 링크에서 확인하시면 됩니다.) 이번 글에서는 현재 위치 배포 방식에 대해서 알아보겠습니다. 현재 위치 배포는 무중단 배포를 하기 위한 기법의 하나로 여러 대의 서버를 배포할 때 새로운 서버를 생성하거나 줄이지 않고 배포하는 방법을 말합니다. 현재 클라이언트의 요청을 로드 밸런서를 통해서 4대의 서버에게 골고루 나눠주고 있습니다. 이미 v1.0.1 버전을 서버스 중에 v1.0.2 버전을 무중단으로 배포하려면 어떤 과정을 통해 이루어질까요? 새로운 버전을 업데이트 하기 위해서 위와 같이 잠시 4대 인스턴스 중 2대의 ..
-
[AWS] Spring Boot, S3, Travis CI, Auto-Scaling, Load-Balacner, CodeDeploy로 자동화 배포하기Cloud/AWS 2021. 4. 14. 11:04
AWS Auto-Scaling, CodeDeploy로 배포 자동화 하기 CodeDeploy를 사용하기 위해서는 역할, 정책, 사용자 개념에 대해서 알아야 합니다. 아래의 글을 읽기 전에 여기 에서 간단하게 IAM 개념에 대해 학습하고 오시는 걸 추천합니다. 역할 생성 위와 같이 기본으로 [AWSCodeDeployRole]이 존재하는 것을 볼 수 있습니다. 즉, 해당 역할은 CodeDeploy에 접근할 수 있도록 하기 위해서 만드는 것입니다. 정책 생성 { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] } S3에 접근할 수 있도록 정책을 하나 ..
-
[AWS] IAM 개념 및 용어 정리Cloud/AWS 2021. 4. 14. 10:42
IAM 용어 정리 위와 같이 AWS IAM에 들어가면 사용자, 정책, 권한, 그룹, 역할. 인스턴스 프로파일 등등 많은 용어들이 존재합니다. 어떤 S3, EC2, CodeDeploy와 같은 서비스를 이용할 때는 사용할 때 역할을 만들고 권한을 주는 것을 경험해보셨을 것입니다. 하지만 누군가 저에게 역할, 정책, 권한 차이가 뭔고 묻는다면 선뜻 대답할 수 없었습니다. 일단 각각이 어떤 뜻인지를 알기 전에 이것들이 왜 필요한지에 대해서 알아보겠습니다. AWS는 보통 회사당 하나의 계정을 갖고 사용하는데 회사 내 AWS를 사용하는 모든 사람에게 같은 권한을 줄 수는 없습니다. 따라서 대부분의 사용자 권한 관리 서비스와 마찬가지로 최고 관리자가 Root 계정을 관리하고 그밖의 사용자들은 각자 계정을 발급받아 제..