엘라스틱 빈스톡 환경 종료
엘라스틱빈스톡 애플리케이션 종료
RDS 종료
EC2 혹시나 켜져있는 것이 있다면 종료
탄력적IP 있다면 삭제
종료
Elastic Block Store 삭제
보안그룹 default 만 남기고 삭제
리전 서울로 맞추기
동작
순서
CI : 지속적 통합
CD : 지속적 배포
Local 에서 GitHub에 코드를 올리고 바로 AWS에 배포하는 것은 위험하다. 그렇기 때문에 테스트 및 검증 빌드를 해주는 서버(CI)를 하나 두고 그 다음에 AWS 에 배포를 해야한다.
CI 기법에는 여러가지가 있다.
추가적으로 Githubaction을 사용하면 서드파티(Jenkins, travis) 를 사용할 필요 없이 Github만으로 CI/CD를 진행할 수 있다.
CD
서버에서 빌드를 마치면 생성된 Jar 파일을 aws 에 자동으로 배포해준다.
IAM (Identity Access Manager)
사용자 - 직원
정책 - 권한의 모임
그룹 - 직원의 모임 (정책을 부열받음)
역할 - 서비스에 부여 하는 권한 (사용자 x)
RDS 생성
시큐리티 그룹 : sg-aws-v5
VPC : vpc-07522b959b6f9b266
인바운드 규칙
HeidiSQL 연결
CREATE DATABASE metadb;
USE metadb;
CREATE TABLE Book(
id BIGINT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
content VARCHAR(255),
author VARCHAR(255)
);
SHOW VARIABLES LIKE 'c%';
ALTER DATABASE metadb CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_general_ci';
SELECT * FROM Book;
DROP TABLE Book;
SELECT @time_zone, NOW();
RDS time_zone 세팅
zone 검색 → time_zone 체크 후 파라미터 편집 → Asia/Seoul 선택
RDS 추가구성 수정후에 즉시적용 해주기
RDS 재부팅 해주기(time_zone 적용 안되서)
RDS 추가구성 수정후에 즉시적용 해주기
추가옵션 구성 클릭→ 사용자 지정 구성 → 소프트웨어
hostname = RDS 엔드포인트 값
사용자 지정 구성 → 용량
Auto Scaling
EC2가 여러대가 있으면 클라이언트는 어떤 EC2에 접근해야 할지 모르므로 앞에 로드밸런서를
배치해준다.클라이언트는 로드밸런서로만 접근이 가능하며 만약 로드밸런서에서 요청이 많아져 최소로 설정해준 EC2 서버 2대가 바빠지게 되면 로드밸런서가 자동으로 4대 까지 EC2 를 늘려서 요청을 처리해주고 다시 요청이 적어지면 최소 인스턴스인 2대로 돌아와서 요청을 처리한다.
로드 밸런서
외부에서 클라이언트가 80포트로 요청하면 리스너가 작동해서 로드밸런서에서 라우팅을 하게 된다. 그리고 라우팅을 보낼때 / 로 요청을 하게 되는데 예를들면 naver.com:80/ 같은 곳에 요청을 해서 서버가 정상적으로 돌고 있는지 확인하게 된다.
well known port
배포 방식 변경 불가능으로 설정
키페어 설정
롤링은 배포 전략 중 무중단 배포에 대한 것이다.
(무중단 배포는 배포 진행시 서비스를 중단시키지 않고 배포를 적용 하는 것이다)
기존에 연결되어있던 인스턴스를 모두 중단시키고 배포하는 것.
새로운 인스턴스를 생성하고 그곳에 배포를 한뒤에 로드 밸런서가 기존 인스턴스와의 연결을 끊고 새로 배포된 인스턴스와 연결한다
단점 : 롤백을 하기 어렵다
기존 인스턴스를 블루라고 가정하면 새로 배포를 진행할때 그린 인스턴스가 만들어지고 그린 배포가 정상 완료 되면 로드밸런서가 한순간에 그린 인스턴스로 연결시킨다.
장점: 그린 인스턴스에서 에러가 뜨면 연결하지 않으면 되기때문에 롤백도 간편해진다
단점: 자원 소모가 심하다