본문 바로가기

DevOps

(22)
[AWS] Nginx, SpringBoot, CodeDeploy, Travis CI를 이용한 무중단 배포 시스템 만들기 이전 글에서 다음과 같은 구조로 자동 배포 시스템을 구축했습니다. Github에 push만 하면 자동으로 EC2에 새로운 버전의 jar가 배포되고 재 실행되어서 배포가 되었습니다. 하지만 위의 방식에는 단점이 존재합니다. 배포가 진행되는 도중에는 서버가 잠시 중단돼야 한다는 점입니다. CodeDeploy가 EC2에 새로운 버전의 jar를 배포할 때, 기존의 실행 중인 jar를 kill 한 후에 새로운 버전의 jar를 실행시킬 것입니다. 이 과정에서 서버가 잠시 중단되어 사용자들은 서비스에 접속할 수 없게 됩니다. 현재 우리가 많이 사용하고 있는 서비스들을 보면 새로운 버전의 업데이트가 일어나더라도 서비스가 중단되거나 하지 않고 무중단으로 배포가 이루어집니다. 이번 글에서는 Nginx를 이용해서 EC2 내..
[AWS] Travis CI와 AWS CodeDeploy를 사용한 자동배포 구축하기 #2 Spring Boot 기반의 서비스를 Travis CI와 AWS CodeDeploy를 사용해 자동 배포 시스템을 구축할 것입니다. 전체적인 구조는 다음과 같습니다. 전달 과정 1 Travis CI →AWS S3 jar 파일 전달 2 Travis CI → AWS CodeDeploy 배포 요청 3 AWS S3 → AWS CodeDeploy jar 파일 전달 4 AWS CodeDeploy → AWS EC2 배포 1편 안 보신 분들은 먼저 보고 오길 추천드립니다. 스프링 부트 서비스는 이전 글을 기반으로 하고 있습니다. 목차 1. CI & CD 소개 (#1) 2. Travis CI 연동하기 (#1) 3. Travis CI와 AWS S3 연동하기 (#1) 4. Travis CI와 AWS S3, CodeDeploy..
[AWS] Travis CI와 AWS CodeDeploy를 사용한 자동배포 구축하기 #1 Spring Boot 기반의 서비스를 Travis CI와 AWS CodeDeploy를 사용해 자동 배포 시스템을 구축할 것입니다. 전체적인 구조는 다음과 같습니다. 전달 과정 1 Travis CI →AWS S3 jar 파일 전달 2 Travis CI → AWS CodeDeploy 배포 요청 3 AWS S3 → AWS CodeDeploy jar 파일 전달 4 AWS CodeDeploy → AWS EC2 배포 스프링 부트 서비스는 이전 글을 기반으로 하고 있습니다. 목차 1. CI & CD 소개 (#1) 2. Travis CI 연동하기 (#1) 3. Travis CI와 AWS S3 연동하기 (#1) 4. Travis CI와 AWS S3, CodeDeploy 연동하기 (#2) 5. 배포 자동화 구성 (#2) ..
[AWS] AWS EC2에 스프링 부트 서비스 배포하기 AWS EC2에 스프링 부트 서비스를 jar 파일을 통해 배포할 것입니다. 뿐만 아니라 배포 스크립트를 통해 배포하는 과정을 단순화할 것입니다. 목차 스프링 부트 기반 API 서비스 서버 생성 및 EIP 할당 서버 생성 시 꼭 해야 할 설정들 EC2에서 Git과 Github 사용하기 코드들이 잘 수행되는 지 테스트로 검증 배포 스크립트 만들기 1. 스프링 부트 기반 API 서비스 배포할 서비스는 특정 문자열을 응답하는 API를 가진 매우 간단한 서비스입니다. 코드는 다음과 같습니다. @RestController public class HelloController { @GetMapping("/") public String hello(){ return "안녕하세요~~~"; } } 버전 정보는 다음과 같습니다..
[AWS] AWS RDS 프리티어 만들고 Datagrip 사용해 연결하기 목차 Mysql 보안 그룹 생성 RDS Mysql 생성 Mysql 체크 프리티어 체크 마스터 사용자 이름, 암호 기입 micro 선택 보안그룹 퍼블릭 액세스 클릭 기본 데이터베이스 명시 DataGrip으로 연결 이번에 Amazon RDS를 이용해 Mysql 데이터베이스를 프리티어로 생성하고 데이터베이스 관리 툴인 Datagrip을 사용해 Mysql 서버에 연결해보겠습니다. Mysql 보안 그룹 생성 mysql은 3306 포트를 쓰기 때문에 인바운드 규칙에 3306을 명시하고, 노트북에서 데이터베이스에 연결하기 위해 모든 아이피에서 접근이 가능하게 설정합니다. RDS Mysql 생성 Amazon RDS 페이지에서 DB 인스턴스 > 데이터베이스 생성을 클릭합니다. 표준 생성, Mysql, 프리티어를 선택합니..
AWS Elastic Load Balancing 이해하고 사용하기 #2 이전 글에서는 Elastic Load Balancing 이해하기 위한 기본 개념을 다뤘습니다. AWS Elastic Load Balancing 이해하고 사용하기 #1 이번 글에서는 Elastic Load Balancing 이해하기 위한 기본 개념을 다룹니다. 다음 편에서는 Elastic Load Balancing를 실제로 사용해보고 테스트해볼 것입니다. 이번 글의 목차는 다음과 같습니다. ELB란 무 develop-writing.tistory.com 이번에는 Elastic Load Balancing를 실제로 사용할 것입니다. 이번 글의 목차는 다음과 같습니다. 2개의 다른 가용 영역에 웹서버 생성하기 Application LoadBalancer를 적용해 트래픽이 분산되는지 확인 Sticky Session..
AWS Elastic Load Balancing 이해하고 사용하기 #1 이번 글에서는 Elastic Load Balancing 이해하기 위한 기본 개념을 다룹니다. 다음 편에서는 Elastic Load Balancing를 실제로 사용해보고 테스트해볼 것입니다. 이번 글의 목차는 다음과 같습니다. ELB란 무엇인가 ELB의 특징 ELB의 종류 ELB란 무엇인가? Elastic Load Balancing는 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨텐이너, IP 주소, Lambda 함수와 같은 여러 대상에 자동으로 분산시킵니다. Elastic Load Balancing은 단일 가용 영역 또는 여러 가용 영역에서 다양한 애플리케이션 부하를 처리할 수 있습니다. Elastic Load Balancing이 제공하는 세 가지 로드 밸런서는 모두 애플리케이션 내결함성..
Amazon VPC 생성하기 이전 글에서 Amazon vpc에 대해서 알아봤습니다. Amazo VPC란 무엇일까? Amazon VPC는 AWS 사용자 전용 가상 네트워크입니다. 가상 네트워크가 무엇인지 자세히 알아보겠습니다. 목차 1. VPC(Virtual Private Cloud)란? 아마존 VPC의 공식 웹페이지에서는 VPC를 다음과 같이 소개합 develop-writing.tistory.com 이번에는 실제로 VPC을 생성하고 서브넷 2개 생성할 것입니다. 또한 해당 VPC와 서브넷을 가진 EC2 인스턴스를 생성해 SSH 연결을 해보려고 합니다. 목차는 다음과 같습니다. 1. VPC 생성하기 1.1 DNS 호스트 네임 활성화 2. VPC 생성과 함께 만들어지는 리소스들 2-1. 라우팅 테이블 2-2. DHCP 옵션 셋 2-3 ..