티스토리 뷰

이전 시간에 프로젝트에 github action을 연동하여 push를 감지했을 경우 자동 빌드가 되도록하는 step까지 구현하였다

이번에는

  • ec2인스턴스를 생성하고 java 설치
  • s3 버킷 생성
  • 사용자 생성
  • yml 파일 수정 - workflow 추가

이전 포스팅 - https://0zii.tistory.com/14?category=919071


먼저 ec2 인스턴스를 생성한다 

인스턴스 생성에 대해서는 해당 포스팅 내용을 확인하면 된다 

인스턴스 생성 후 터미널 접속 방법 포스팅 - https://0zii.tistory.com/2?category=900134

 

JAVA 설치

 

1. 인스턴스 생성 후 터미널로 인스턴스에 접근하여 java 버전을 확인해준다

$ java -version

 

2. ec2 인스턴스에는 기본적으로 자바7이 설치되어있다. 내 프로젝트는 자바8을 사용하였으므로 자바8을 설치하여준다

$ sudo yum install -y java-1.8.0-openjdk-devel.x86_64

 

3. 설치 완료 후 아래의 명령어를 통해 버전을 바꿔준다

$ sudo /usr/sbin/alternatives --config java

 

4. 두버전 중 2를 선택하여 자바8로 버전을 바꿔준다

 

5. 아래의 명령어를 통하여 자바7을 삭제 후 버전을 확인하면 제대로 설치가 된 것을 확인 할 수 있다

$ sudo yum remove java-1.7.0-openjdk
$ java -verison

 

 S3 버킷 생성

프로젝트를 빌드 후 jar 파일을 압축하여 s3에 이관을 하기 위해 버킷을 생성한다

 

- 퍼블릭 액세스만 체크하고 나머지는 넘어가도록 한다

 

IAM 사용자 생성

생성한 s3에 접근하기 위해서는 권한이 필요하다

이러한 접속할 수 있는 권한을 가진 사용자를 생성하는 단계이다

 

1. 먼저 IAM 페이지에 들어가 왼쪽의 사용자 탭을 클릭하여 사용자 생성을 시작한다

 

2. 아래의 두가지 권한을 설정해준 후 생성한다 - s3관련 권한 설정

-여기까지 완료하였다면 access key와 secret key가 발급될 것이다 이는 추후 workflow 작성시에 필요하므로 꼭 메모해둔다

 

workflow 추가

마지막으로 생성한 s3에 빌드압축파일을 이관한는 step을 작성한다

기존의 yml 파일에 아래의 코드를 추가한다

# This is a basic workflow to help you get started with Actions

name: Spring Boot CI/CD

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
  push:
    branches:
      - master

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  build:
    # 실행 환경 지정 - latest 보다는 지정된 버전을 사용하는 것 추
    runs-on: ubuntu-18.04

    # Task의 sequence를 명시한다.
    steps:
      - uses: actions/checkout@v2

      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

      - name: Grant execute permission for gradlew
        run: chmod +x gradlew

      - name: Build with Gradle
        run: ./gradlew :aws-application:clean :aws-application:build

      - name: Make Directory for deliver
        run: mkdir -p code-deploy

      - name: Copy Jar
        run: cp aws-application/build/libs/*.jar code-deploy/

      - name: Make zip file
        run: zip -r -j aws-application.zip code-deploy/*

      - name: Deliver to AWS S3
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        run: |
          aws s3 cp \
          --region ap-northeast-2 \
          --acl private \
          aws-application.zip s3://deploy-youngji/

-access key와 secret key는 깃허브의 secretes를 사용하여 환경변수로 지정하여주었다 (키 노출 방지)

참고로 키는 사용자 생성시 발급 받은 키를 적어주면 된다

 

이제 실행하여보자 !!

잘 돌아간다 ㅎㅎ

 

s3에 파일이 잘 전달되었는지 확인해보자

잘 전달된것을 확인할 수 있다 !!!

 

 

다음시간에는 codedeploy를 이용하여 ec2 인스턴스에 파일을 이관하고 쉘 스크립트 파일을 생성하는 실습을 진행하도록 하겠다

**) 잘못된 정보가 있을 수 있습니다. 언제든지 연락주세요!!

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함