コラボレーションプロジェクト(キャンパス)-④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をインストールするかどうか)
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に移動することができる.
上図は、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 DeployGithub動作生成の結果を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に移動することができる.
Reference
この問題について(コラボレーションプロジェクト(キャンパス)-④Spring+AWSアーキテクチャプロセス(1)), 我々は、より多くの情報をここで見つけました https://velog.io/@789456jang/협업-프로젝트campus-Spring-AWS-아키텍처-플로우1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol