본문 바로가기
프로그래밍/SpringBoot

Github Actions + AWS CI/CD (1)

by 코딩중독 2024. 3. 8.

목차

    Github Actions를 사용해서 지속적 통합(CI)과 배포(CD)에 대한 내용 정리

    특이점이 없다면 글보다는 이미지로...

     

    AWS IAM 사용자 생성

    AWS 리소스에 대한 엑세스를 위한 보안 자격 증명을 관리하는 데 사용

    AWS IAM
    AWS IAM 사용자 생성

     

    AWS IAM 사용자 생성

     

    AWS IAM 사용자 생성

     

    AWS IAM 사용자 생성

     

    권한 정책 검색하여 3가지 체크

    AmazonEC2FullAccess

    AmazonS3FullAccess

    AmazonCodeDeployFullAccess

     

    AWS IAM 사용자 생성

     

    AWS IAM 사용자 생성

     

    AWS IAM 사용자 생성

     

    권한 추가된 내용 확인하고 사용자 생성

    AWS IAM 사용자 생성

     

    csv 파일 다운로드

    AWS IAM 사용자 생성

     

    엑세스 키 발급

    AWS IAM 사용자 생성

     

    AWS IAM 사용자 생성

     

    엑세스 키 csv 파일 다운로드 (Github Repository Secrets에 사용)

    AWS IAM 사용자 생성

     

     

    AWS S3 생성

    객체 스토리지 서비스

    Github Actions에서 zip파일로 S3에 업로드한 후 EC2로 배포

    AWS S3 생성

     

    AWS S3 생성

     

    AWS S3 생성

     

    AWS S3 생성

     

    AWS S3 생성

     

     

    AWS IAM 역할 생성

    총 2가지 역할 생성

    EC2 역할

    AWS IAM 역할 생성

     

    AWS IAM 역할 생성

     

    AWS IAM 역할 생성

     

    검색하여 2가지 권한 체크

    AmazonS3FullAccess

    AWSCodeDeployFullAccess

    AWS IAM 역할 생성

     

    AWS IAM 역할 생성

     

    AWS IAM 역할 생성

     

    AWS IAM 역할 생성

     

    애플리케이션 그룹 역할

    AWS IAM 역할 생성

     

    AWS IAM 역할 생성

     

     

    AWS EC2 생성, 역할 수정

    AWS EC2 생성

     

    AWS EC2 생성

     

    AWS EC2 생성

    프리 티어 Ubuntu Server 20.04로 선택

     

    AWS EC2 생성

     

    키 페어 다운로드 후 안전하게 보관(SSH 접속에 사용)

    AWS EC2 생성

     

    AWS EC2 생성

     

    AWS EC2 생성

     

    AWS EC2 역할 수정

     

    AWS EC2 역할 수정

     

    드롭다운 메뉴에서 AWS IAM에서 생성한 역할 선택

    AWS EC2 역할 수정

     

    AWS EC2 규칙 수정

     

    AWS EC2 규칙 수정

     

    AWS EC2 규칙 수정

     

    AWS EC2 규칙 수정

     

     

    AWS CodeDeploy 생성

    실제 배포를 담당

    AWS CodeDeploy 생성

     

    AWS CodeDeploy 생성

     

    AWS CodeDeploy 생성

     

    AWS CodeDeploy 생성

     

    AWS CodeDeploy 생성

     

    AWS CodeDeploy 생성

     

    AWS CodeDeploy 생성

     

     

    AWS EC2 접속 후 세팅

    EC2 서비스로 이동하여 생성한 인스턴스 선택 후 연결

    AWS EC2 접속

     

    AWS EC2 접속

     

    접속 후 ubuntu server에서 커맨드 진행

    # 디렉토리 생성
    mkdir /home/ubuntu/app
    
    # 시스템의 패키지 리스트를 최신 상태로 업데이트
    sudo apt update
    
    # 전체 버전의 Ruby를 설치
    sudo apt install ruby-full
    
    # 파일을 다운로드하는 데 사용되는 wget 패키지를 설치
    sudo apt install wget
    
    # 패키지 리스트를 최신 상태로 업데이트
    sudo apt-get update
    
    # 네트워크 관련 도구를 설치
    sudo apt-get install net-tools
    
    # AWS CLI를 설치
    sudo apt install awscli
    
    # AWS CodeDeploy 에이전트 설치 스크립트를 S3 버킷에서 다운로드
    aws s3 cp s3://aws-codedeploy-ap-northeast-2/latest/install . --region ap-northeast-2
    
    # 다운로드한 스크립트 파일에 실행 권한을 부여
    chmod +x ./install
    
    # 다운로드한 설치 스크립트를 실행하여 AWS CodeDeploy 에이전트를 자동으로 설치
    sudo ./install auto
    
    # CodeDeploy 에이전트 서비스의 상태를 확인
    sudo service codedeploy-agent status
    
    # OpenJDK 17 JDK를 설치
    sudo apt-get install openjdk-17-jdk
    
    # 설치된 Java 버전을 확인
    java -version
    
    # MySQL 데이터베이스 서버를 설치
    sudo apt install mysql-server
    
    # MySQL 서버에 루트 사용자로 접속
    sudo mysql -u root
    
    # 새로운 사용자 생성
    CREATE USER 'new-user'@'%' IDENTIFIED BY 'new-password';
    
    # 새로운 사용자에게 모든 권한 부여
    GRANT ALL PRIVILEGES ON *.* TO 'new-user'@'%' WITH GRANT OPTION;
    
    # 권한 변경 사항을 즉시 적용
    FLUSH PRIVILEGES;
    
    # MySQL 서버에서 로그아웃
    EXIT;
    
    # MySQL 설정 파일이 있는 디렉토리로 이동
    cd /etc/mysql/mysql.conf.d
    
    # MySQL 설정 파일 편집
    sudo vim mysqld.cnf

     

    vim 편집방법

    1. 편집모드로 전환 : i
    2. port 3306 주석 해제, bind-address = 0.0.0.0으로 수정
    3. 편집종료 : Esc
    4. 저장하고 나가기 : ZZ (Shift+z 두 번)
    # MySQL 서비스 재시작
    sudo service mysql restart
    
    # MySQL 서비스 상태 확인
    sudo systemctl status mysql
    
    # MySQL 포트(기본 포트는 3306)를 확인하여 MySQL이 제대로 실행되고 있는지 확인
    sudo netstat -tuln | grep 3306

     

     

    여기까지 AWS 준비완료

    '프로그래밍 > SpringBoot' 카테고리의 다른 글

    [AWS EC2] MySQL 설치  (0) 2024.06.18
    Github Actions + AWS CI/CD (3)  (0) 2024.03.08
    Github Actions + AWS CI/CD (2)  (0) 2024.03.08