본문 바로가기

[배포]

(6)
[배포] 🚀 GitHub Actions + EC2 + S3 + Secrets Manager + CodeDeploy를 통한 무중단 배포 자동화 1️⃣ EC2 서버 준비목표: GitHub → EC2로 JAR 파일을 수동 배포 가능한 상태 만들기자동화하려면 우선 수동으로도 배포가 잘 되는지 확인하는 게 기본이다!🔹 Java 설치 (EC2에서 JAR 실행에 필요)sudo apt updatesudo apt install openjdk-17-jdk -yjava -version # 설치 확인 🔹 디렉토리 구조 생성mkdir -p ~/app/deploymkdir -p ~/app/logs~/app/deploy: jar 파일을 배포할 위치~/app/logs: 실행 로그 저장할 위치2️⃣ GitHub Actions 자동화 + S3 업로드🔹 AWS CLI 설치 (로컬/Actions runner에 설치되어 있어야 함)sudo apt install awscli..
[AWS] EC2에 MySQL 설치 및 접속 EC2 인스턴스 접속ssh -i "your-key.pem" ec2-user@your-ec2-public-ip"your-key.pem": EC2 생성 시 만든 키 파일your-ec2-public-ip: EC2의 퍼블릭 IP 주소어떤 리눅스 배포판인지 확인해보려면 EC2 접속 후 아래 명령어로 먼저 확인cat /etc/os-release✅ Amazon Linux 2인 경우NAME="Amazon Linux"VERSION="2"✅ Ubuntu인 경우NAME="Ubuntu"VERSION="20.04.6 LTS (Focal Fossa)"  현재 작성글은 우분투 기반 EC2에서 RDS(MySQL)로 연결하는 방법을 설명하고 있습니다.만약 Amazon Linux 2 라면 앞서 설명드린 yum 명령어 기반으로 진행하면 ..
[AWS] 🔐 보안 그룹 설정 보안 그룹이란? 보안 그룹은 AWS EC2 인스턴스의 가상 방화벽 역할을 한다.주로 인바운드(Inbound) 및 아웃바운드(Outbound) 규칙을 통해 트래픽을 제어한다. 🌐 인바운드(Inbound)외부 → 내 서버로 들어오는 데이터외부에서 내 서버(인스턴스)로 들어오는 트래픽을 제어예: 특정 IP만 22번 포트(SSH)로 접속할 수 있게 허용내 컴퓨터에서 EC2로 SSH 접속 (22번 포트)🚨 현재 문제 상황IP가 바뀌면, 기존에 허용된 IP(예: 203.0.113.25)로는 더 이상 접속이 불가능해짐→ 인바운드 규칙에 현재 IP를 추가해야 함🌐 아웃바운드(Outbound)내 서버 → 외부로 나가는 데이터내 서버에서 외부로 나가는 트래픽을 제어기본적으로 모든 트래픽을 허용(모든 IP로, 모든 포..
[GitHub Actions] GitHub Actions 명령어 GitHub Actions의 YAML 파일에서 자주 사용되는 기본적인 명령어들명령어설명name:GitHub Actions의 워크플로우 이름 설정on:워크플로우 실행 조건 설정 (ex: push, pull_request, schedule 등)jobs:실행할 작업을 정의runs-on:실행 환경 지정 (ex: ubuntu-latest)steps:실행할 단계 정의uses:GitHub Marketplace의 액션을 사용run:직접 명령어 실행 (ex: ./gradlew build)env:환경 변수 설정with:액션에 전달할 인자 설정secrets:GitHub Secrets에서 보안 정보 가져오기 1. Checkout 코드 가져오기(GitHub 리포지토리의 코드를 가져오는 액션)- name: Checkout rep..
[배포] 배포 방식 목차블루 그린 배포까나리 배포롤링 업데이트 배포1. 블루-그린 배포 (Blue-Green Deployment)블루-그린 배포는 배포 방식 중 하나로, 기존 버전(블루)과 새로운 버전(그린)을 동시에 준비해 두고, 새로운 버전이 안정적으로 동작하는 것을 확인한 후 트래픽을 새로운 버전(그린)으로 전환하는 방식이다. (블루-그린 배포에서 트래픽 전환은 한 번에 이루어진다. 즉, 기존 버전(블루 환경)에서 새로운 버전(그린 환경)으로 트래픽을 한 번에 전환한다. 이 방식은 트래픽을 점진적으로 나누는 것이 아니라, 새로운 버전이 안정적이라고 확인되면, 로드 밸런서나 라우팅을 통해 모든 트래픽을 새로운 버전으로 빠르게 전환하는 방식) 흐름블루 환경: 현재 운영 중인 버전(기존 버전)이 블루 환경에서 서비스되고 있..
[DevOps] GitHub Actions CI/CD란?CI/CD는 소프트웨어 개발 및 배포 과정을 자동화하고 효율적으로 만드는 두 가지 주요 개념인 CI (Continuous Integration)와 CD (Continuous Delivery/Continuous Deployment)의 약자이다. 이를 통해 개발자는 코드 변경 사항을 빠르게 반영하고, 품질을 유지하며, 소프트웨어를 신속하게 배포할 수 있다.  1. CI (Continuous Integration) CI는 코드 변경이 있을 때마다 자동으로 빌드하고 테스트하는 과정을 의미한다. 이 과정은 주로 다음과 같은 작업을 한다. 코드 변경 통합: 여러 개발자가 동시에 작업할 때, 각자의 변경 사항을 주기적으로 통합하여 하나의 코드베이스에서 개발을 진행자동 빌드: 코드가 변경되면, 자동으로 빌..