Skip to content

Commit

Permalink
Merge pull request #109 from SUIN-BUNDANG-LINE/migration-works
Browse files Browse the repository at this point in the history
서버 Migration 관련 작업 진행
  • Loading branch information
JeongHunHui authored Dec 2, 2024
2 parents 4f30169 + ca40066 commit 750108a
Show file tree
Hide file tree
Showing 10 changed files with 99 additions and 257 deletions.
92 changes: 46 additions & 46 deletions .github/workflows/dev_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,49 +57,49 @@ jobs:
- name: Jib로 Docker 이미지 빌드 및 푸시
run: ./gradlew jib -Ddocker.id="${{ env.DOCKER_ID }}" -Ddocker.password="${{ env.DOCKER_PASSWORD }}" -Ddocker.image.name="${{ env.DOCKER_IMAGE_NAME }}"

deploy:
name: 개발 서버 배포 작업
needs: build
runs-on: ubuntu-latest

env:
# AWS 관련
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
EC2_INSTANCE_ID: ${{ secrets.DEVELOP_EC2_INSTANCE_ID }}
AWS_REGION: ap-northeast-2
# Docker 관련
CONTAINER_NAME: sulmun2yong-develop-server
DOCKER_ID: ${{ secrets.DOCKER_ID }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_IMAGE_NAME: ${{ secrets.DOCKER_BACKEND_IMAGE_NAME }}:devLatest
# MongoDB 관련
MONGODB_URL: ${{ secrets.DEVELOP_MONGODB_URL }}
MONGODB_DATABASE: ${{ secrets.DEVELOP_MONGODB_DATABASE }}
# Spring Boot 관련
FRONTEND_BASE_URL: http://localhost:3000
BACKEND_BASE_URL: https://dev-api.sulmoon.io
AI_SERVER_BASE_URL: http://ai.sulmoon.io:8000
FINGERPRINT_MOCKING_SERVER_URL: ${{ secrets.FINGERPRINT_MOCKING_SERVER_URL }}
# New Relic 관련
NEW_RELIC_APP_NAME: sulmun2yong-development

steps:
- name: AWS 로그인
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}

- name: SSM으로 EC2에 배포
run: |
aws --no-cli-pager ssm send-command \
--document-name "AWS-RunShellScript" \
--targets "Key=instanceIds, Values=${{ env.EC2_INSTANCE_ID }}" \
--parameters '{"commands" : ["echo \"${{ env.DOCKER_PASSWORD }}\" | docker login -u \"${{ env.DOCKER_ID }}\" --password-stdin",
"docker pull ${{ env.DOCKER_ID }}/${{ env.DOCKER_IMAGE_NAME }}",
"docker stop ${{ env.CONTAINER_NAME }} || true",
"docker rm ${{ env.CONTAINER_NAME }} || true",
"docker run -d --name ${{ env.CONTAINER_NAME }} -p 8080:8080 -e SPRING_DATA_MONGODB_URI=${{ env.MONGODB_URL }} -e SPRING_DATA_MONGODB_DATABASE=${{ env.MONGODB_DATABASE }} -e FRONTEND_BASE-URL=${{ env.FRONTEND_BASE_URL }} -e BACKEND_BASE-URL=${{ env.BACKEND_BASE_URL }} -e AI-SERVER_BASE-URL=${{ env.AI_SERVER_BASE_URL }} -e NEW_RELIC_APP_NAME=${{ env.NEW_RELIC_APP_NAME }} -e FINGERPRINT_MOCKING_SERVER_URL=${{ env.FINGERPRINT_MOCKING_SERVER_URL }} ${{ env.DOCKER_ID }}/${{ env.DOCKER_IMAGE_NAME }}",
"docker image prune -af"]}'
# deploy:
# name: 개발 서버 배포 작업
# needs: build
# runs-on: ubuntu-latest
#
# env:
# # AWS 관련
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# EC2_INSTANCE_ID: ${{ secrets.DEVELOP_EC2_INSTANCE_ID }}
# AWS_REGION: ap-northeast-2
# # Docker 관련
# CONTAINER_NAME: sulmun2yong-develop-server
# DOCKER_ID: ${{ secrets.DOCKER_ID }}
# DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
# DOCKER_IMAGE_NAME: ${{ secrets.DOCKER_BACKEND_IMAGE_NAME }}:devLatest
# # MongoDB 관련
# MONGODB_URL: ${{ secrets.DEVELOP_MONGODB_URL }}
# MONGODB_DATABASE: ${{ secrets.DEVELOP_MONGODB_DATABASE }}
# # Spring Boot 관련
# FRONTEND_BASE_URL: http://localhost:3000
# BACKEND_BASE_URL: https://dev-api.sulmoon.io
# AI_SERVER_BASE_URL: http://ai.sulmoon.io:8000
# FINGERPRINT_MOCKING_SERVER_URL: ${{ secrets.FINGERPRINT_MOCKING_SERVER_URL }}
# # New Relic 관련
# NEW_RELIC_APP_NAME: sulmun2yong-development
#
# steps:
# - name: AWS 로그인
# uses: aws-actions/configure-aws-credentials@v4
# with:
# aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }}
# aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }}
# aws-region: ${{ env.AWS_REGION }}
#
# - name: SSM으로 EC2에 배포
# run: |
# aws --no-cli-pager ssm send-command \
# --document-name "AWS-RunShellScript" \
# --targets "Key=instanceIds, Values=${{ env.EC2_INSTANCE_ID }}" \
# --parameters '{"commands" : ["echo \"${{ env.DOCKER_PASSWORD }}\" | docker login -u \"${{ env.DOCKER_ID }}\" --password-stdin",
# "docker pull ${{ env.DOCKER_ID }}/${{ env.DOCKER_IMAGE_NAME }}",
# "docker stop ${{ env.CONTAINER_NAME }} || true",
# "docker rm ${{ env.CONTAINER_NAME }} || true",
# "docker run -d --name ${{ env.CONTAINER_NAME }} -p 8080:8080 -e SPRING_DATA_MONGODB_URI=${{ env.MONGODB_URL }} -e SPRING_DATA_MONGODB_DATABASE=${{ env.MONGODB_DATABASE }} -e FRONTEND_BASE-URL=${{ env.FRONTEND_BASE_URL }} -e BACKEND_BASE-URL=${{ env.BACKEND_BASE_URL }} -e AI-SERVER_BASE-URL=${{ env.AI_SERVER_BASE_URL }} -e NEW_RELIC_APP_NAME=${{ env.NEW_RELIC_APP_NAME }} -e FINGERPRINT_MOCKING_SERVER_URL=${{ env.FINGERPRINT_MOCKING_SERVER_URL }} ${{ env.DOCKER_ID }}/${{ env.DOCKER_IMAGE_NAME }}",
# "docker image prune -af"]}'
70 changes: 48 additions & 22 deletions .github/workflows/prod_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,14 @@ jobs:

env:
# AWS 관련
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
EC2_INSTANCE_ID: ${{ secrets.PRODUCTION_EC2_INSTANCE_ID }}
AWS_REGION: ap-northeast-2
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# EC2_INSTANCE_ID: ${{ secrets.PRODUCTION_EC2_INSTANCE_ID }}
# AWS_REGION: ap-northeast-2
EC2_HOST: ${{ secrets.PRODUCTION_EC2_HOST }}
EC2_USER: ${{ secrets.EC2_USER }}
EC2_KEY: ${{ secrets.EC2_KEY }}

# Docker 관련
CONTAINER_NAME: sulmun2yong-production-server
DOCKER_ID: ${{ secrets.DOCKER_ID }}
Expand All @@ -87,23 +91,45 @@ jobs:
BACKEND_BASE_URL: https://api.sulmoon.io
AI_SERVER_BASE_URL: http://ai.sulmoon.io:8000


steps:
- name: AWS 로그인
uses: aws-actions/configure-aws-credentials@v4
- name: EC2에 배포
uses: appleboy/[email protected]
with:
aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}

- name: SSM으로 EC2에 배포
run: |
aws --no-cli-pager ssm send-command \
--document-name "AWS-RunShellScript" \
--targets "Key=instanceIds, Values=${{ env.EC2_INSTANCE_ID}}" \
--parameters '{"commands" : ["echo \"${{ env.DOCKER_PASSWORD }}\" | docker login -u \"${{ env.DOCKER_ID }}\" --password-stdin",
"docker pull ${{ env.DOCKER_ID }}/${{ env.DOCKER_IMAGE_NAME }}",
"docker stop ${{ env.CONTAINER_NAME }} || true",
"docker rm ${{ env.CONTAINER_NAME }} || true",
"docker run -d --name ${{ env.CONTAINER_NAME }} -p 8080:8080 -e SPRING_DATA_MONGODB_URI=${{ env.MONGODB_URL }} -e SPRING_DATA_MONGODB_DATABASE=${{ env.MONGODB_DATABASE }} -e FRONTEND_BASE-URL=${{ env.FRONTEND_BASE_URL }} -e BACKEND_BASE-URL=${{ env.BACKEND_BASE_URL }} -e AI-SERVER_BASE-URL=${{ env.AI_SERVER_BASE_URL }} -e COOKIE_DOMAIN=${{ env.COOKIE_DOMAIN }} ${{ env.DOCKER_ID }}/${{ env.DOCKER_IMAGE_NAME }}",
"docker image prune -af"]}'
host: ${{ env.EC2_HOST }}
username: ${{ env.EC2_USER }}
key: ${{ env.EC2_KEY }}
debug: true
script: |
echo "${{ env.DOCKER_PASSWORD }}" | docker login -u "${{ env.DOCKER_ID }}" --password-stdin
docker pull ${{ env.DOCKER_ID }}/${{ env.DOCKER_IMAGE_NAME }}
docker stop ${{ env.CONTAINER_NAME }} || true
docker rm ${{ env.CONTAINER_NAME }} || true
docker run -d --name ${{ env.CONTAINER_NAME }} -p 8080:8080 \
-e SPRING_DATA_MONGODB_URI=${{ env.MONGODB_URL }} \
-e SPRING_DATA_MONGODB_DATABASE=${{ env.MONGODB_DATABASE }} \
-e FRONTEND_BASE-URL=${{ env.FRONTEND_BASE_URL }} \
-e BACKEND_BASE-URL=${{ env.BACKEND_BASE_URL }} \
-e AI-SERVER_BASE-URL=${{ env.AI_SERVER_BASE_URL }} \
-e COOKIE_DOMAIN=${{ env.COOKIE_DOMAIN }} \
${{ env.DOCKER_ID }}/${{ env.DOCKER_IMAGE_NAME }}
docker image prune -af
# steps:
# - name: AWS 로그인
# uses: aws-actions/configure-aws-credentials@v4
# with:
# aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }}
# aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }}
# aws-region: ${{ env.AWS_REGION }}
#
# - name: SSM으로 EC2에 배포
# run: |
# aws --no-cli-pager ssm send-command \
# --document-name "AWS-RunShellScript" \
# --targets "Key=instanceIds, Values=${{ env.EC2_INSTANCE_ID}}" \
# --parameters '{"commands" : ["echo \"${{ env.DOCKER_PASSWORD }}\" | docker login -u \"${{ env.DOCKER_ID }}\" --password-stdin",
# "docker pull ${{ env.DOCKER_ID }}/${{ env.DOCKER_IMAGE_NAME }}",
# "docker stop ${{ env.CONTAINER_NAME }} || true",
# "docker rm ${{ env.CONTAINER_NAME }} || true",
# "docker run -d --name ${{ env.CONTAINER_NAME }} -p 8080:8080 -e SPRING_DATA_MONGODB_URI=${{ env.MONGODB_URL }} -e SPRING_DATA_MONGODB_DATABASE=${{ env.MONGODB_DATABASE }} -e FRONTEND_BASE-URL=${{ env.FRONTEND_BASE_URL }} -e BACKEND_BASE-URL=${{ env.BACKEND_BASE_URL }} -e AI-SERVER_BASE-URL=${{ env.AI_SERVER_BASE_URL }} -e COOKIE_DOMAIN=${{ env.COOKIE_DOMAIN }} ${{ env.DOCKER_ID }}/${{ env.DOCKER_IMAGE_NAME }}",
# "docker image prune -af"]}'
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-actuator")

// fingerprint
implementation("com.github.fingerprintjs:fingerprint-pro-server-api-java-sdk:v6.0.0")
// implementation("com.github.fingerprintjs:fingerprint-pro-server-api-java-sdk:v6.0.0")

// security
implementation("org.springframework.boot:spring-boot-starter-security")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import com.sbl.sulmun2yong.ai.domain.AIGenerateLog
import com.sbl.sulmun2yong.ai.dto.request.DemoSurveyGenerationWithFileUrlRequest
import com.sbl.sulmun2yong.ai.dto.request.SurveyGenerationWithFileUrlRequest
import com.sbl.sulmun2yong.ai.dto.response.AISurveyGenerationResponse
import com.sbl.sulmun2yong.global.fingerprint.FingerprintApi
import com.sbl.sulmun2yong.global.util.validator.FileUrlValidator
import com.sbl.sulmun2yong.survey.adapter.SurveyAdapter
import com.sbl.sulmun2yong.survey.domain.Survey
Expand All @@ -21,7 +20,7 @@ class GenerateService(
private val surveyAdapter: SurveyAdapter,
private val aiDemoCountRedisAdapter: AIDemoCountRedisAdapter,
private val aiGenerateLogAdapter: AIGenerateLogAdapter,
val fingerprintApi: FingerprintApi,
// val fingerprintApi: FingerprintApi,
) {
fun generateSurveyWithFileUrl(
surveyGenerationWithFileUrlRequest: SurveyGenerationWithFileUrlRequest,
Expand Down Expand Up @@ -74,7 +73,7 @@ class GenerateService(
val userPrompt = demoSurveyGenerationWithFileUrlRequest.userPrompt

validateFileUrl(fileUrl)
fingerprintApi.validateVisitorId(visitorId)
// fingerprintApi.validateVisitorId(visitorId)
aiDemoCountRedisAdapter.incrementOrCreate(visitorId)

val surveyId = UUID.randomUUID()
Expand Down

This file was deleted.

54 changes: 0 additions & 54 deletions src/main/kotlin/com/sbl/sulmun2yong/global/util/FingerprintApi.kt

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit 750108a

Please sign in to comment.