전체 글
-
[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개를 만들고..