コラボレーションプロジェクト(キャンパス)-④Spring+AWSアーキテクチャプロセス(1)


今回6週間にわたるプロジェクトの進行中、2週間程度の基本設計作業と4週間程度の開発作業を行った結果、キャンパスとなりました.まだ終わっていません.2回目の実施もあるので、その前にバックエンド設計のアーキテクチャを振り返るのに少し時間がかかると思います.Cappusリンク

上図は、Git actionsからEC 2へのローカルで記述されたコードのプロセスを説明しています.
1. IntelliJ -> GitHub
まず、Intelligeneによって作成されたjavaコードはGitによってGitHubにプッシュされます.
2. GitHub -> GitHub Actions
複数のブランチでプライマリブランチを使用してプッシュする場合、Git ActionsはEC 2に配備する操作を実行します.ここでの設定はmainです.ymlファイルで管理されます.コードの例は次のとおりです.各ステップは、Git Actionsで実行される動作を示します.((ex)Java JDK 11をインストール=JDK 11をインストールするかどうか)
 name: CI

on:
  push:
    branches:
      - master

jobs:
  backend:
    name: CI with Gradle
    runs-on: ubuntu-18.04

    steps:
      - name: 체크아웃 Github-Action
        uses: actions/checkout@v2

      - name: 자바 JDK 11 설치
        uses: actions/setup-java@v1
        with:
          java-version: 11

      - name: gradlew 권한 부여
        run: chmod +x ./gradlew

      - name: Gradle 빌드
        run: ./gradlew build
        shell: bash

      - name: Make zip file
        run: zip -r ./$GITHUB_SHA.zip .
        shell: bash

      - name: AWS 설정
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ap-northeast-2

      - name: Upload to S3
        run: aws s3 cp --region ap-northeast-2 ./$GITHUB_SHA.zip s3://camp-us/$GITHUB_SHA.zip

      - name: Code Deploy
        run: aws deploy create-deployment --application-name camp-deploy-app-new --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name dev --s3-location bucket=camp-us,bundleType=zip,key=$GITHUB_SHA.zip
3. GitHub Actions -> S3, Code Deploy
Github動作生成の結果をS 3に載せる.そして、EC 2インスタンスのCodeDeployは、S 3に格納された構築成果物を取得し、インスタンスに配備する.そこで,生成した結果を格納する空間としてS 3サービスを利用する.
上のyamlファイルから分かるように、コード全体をzipファイルに圧縮し、S 3にアップロードする.
ここで使用するIAMは、ユーザがS 3およびCodeDeployの権限を得るためにアクセスするものである.IAM秘密鍵情報は、IAM設定後、付与された鍵ファイルをGitHub Settingsに入れてSecretに移行して設定することができる.
4. S3, Code Deploy -> EC2
最終的に生成されたZIPファイルは、S 3およびCodeDeployを介してEC 2に移動することができる.