😎 CloudType을 ν†΅ν•œ Spring boot + MariaDB 배포

μœ ν˜•μ°¬Β·2022λ…„ 12μ›” 13일
1

😎 CloudType [ Spring + MariaDB ]

‼️ μ΄λ²ˆμ— μ†Œκ°œν•  λ‚΄μš©μ€ CloudType 을 ν†΅ν•œ 배포에 λŒ€ν•œ λ‚΄μš©μž…λ‹ˆλ‹€.

cloudType은 docker ν™˜κ²½μ—μ„œ λΉŒλ“œλ˜κ³  μ‹€ν–‰ λ©λ‹ˆλ‹€. 쑰금 λŠλ¦°κ°μ€ μžˆμ§€λ§Œ κ°„λ‹¨ν•œ 토이 ν”„λ‘œμ νŠΈ λ•Œ μ΄μš©ν•˜κΈ° 쒋을 것 κ°™μŠ΅λ‹ˆλ‹€. πŸ˜ƒπŸ˜ƒ

Spring , Gradle , MariaDB λ₯Ό μ‚¬μš©ν•˜μ—¬ κ°œλ°œν•œ ν”„λ‘œμ νŠΈλ₯Ό CloudType 을 톡해 λ°°ν¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

CloudType 을 ν†΅ν•œ λ°°ν¬λŠ” λ‹€μŒκ³Ό 같은 λ‹¨κ³„λ‘œ μ§„ν–‰λ©λ‹ˆλ‹€.

CI/CD λŠ” μ°¨ν›„ ν¬μŠ€νŒ…μ„ 톡해 닀루도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.

1. 배포할 GIT Repository κ°€μ Έμ˜€κΈ°

μœ„μ—μ„œ ν•„μš”λ‘œ ν•˜λŠ” ν”„λ ˆμž„ μ›Œν¬ ν…œν”Œλ¦Ώ 예제λ₯Ό 톡해 μ–΄λ–»κ²Œ 배포 ν•  수 μžˆλŠ”μ§€ μ˜ˆμ‹œλ₯Ό μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ•„λž˜ 이용 κ°€μ΄λ“œλ₯Ό 톡해 μ—¬λŸ¬ ν”„λ ˆμž„ μ›Œν¬ 배포 방식을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

https://help.cloudtype.io/guide

2. CloudType μ—μ„œ ν”„λ‘œμ νŠΈ μƒμ„±ν•˜κΈ°

μ—¬κΈ°μ„œ GITHUB λ ˆν¬μ™€ 연결이 κ°€λŠ₯ ν•©λ‹ˆλ‹€. private λ ˆν¬λ„ 연결이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

이건 api ν‚€ 연동 ssh ν‚€ 연동을 톡해 κ°€λŠ₯ν•©λ‹ˆλ‹€. 곡식 λ¬Έμ„œμ— λ‚˜μ™€μžˆμŠ΅λ‹ˆλ‹€.

3. 배포 μ„€μ •

κ°„λ‹¨ν•˜κ²Œ λ§Œλ“€μ–΄ λ³Έ TODO ν”„λ‘œμ νŠΈλ₯Ό λ°°ν¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

μœ„μ—μ„œ 브랜치λ₯Ό 선택 ν•  수 있고

Java version 을 선택 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ €λŠ” TODO ν”„λ‘œμ νŠΈ Spring version 3.0 을 μ‚¬μš© ν•˜κ³  있기 λ•Œλ¬Έμ—

πŸ™ŒπŸ™Œ Java 17λ₯Ό 선택 ν–ˆμŠ΅λ‹ˆλ‹€. πŸ™ŒπŸ™Œ

4. ν™˜κ²½ λ³€μˆ˜ μ„€μ • ν•˜κΈ°


λ¨Όμ € μ €λŠ” Spring Project μ—μ„œ local 개발 ν™˜κ²½μ—μ„œ h2 db λ₯Ό μ‚¬μš© ν•˜κ³  있고

배포 ν™˜κ²½μ—μ„œλŠ” MariaDB λ₯Ό μ‚¬μš© ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 배포 μ‹œ profile 을 톡해 ν™˜κ²½λ³€μˆ˜λ₯Ό μ„€μ • ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

μ €λŠ” MariaDB λ₯Ό μ‚¬μš© ν•˜κ³  있기 λ•Œλ¬Έμ— ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ • ν•΄μ£Όμ—ˆμŠ΅λ‹ˆλ‹€.

DatabaseλŠ” CloudTypeμ—μ„œ 배포 ν•  수 μžˆλŠ” MariaDBλ₯Ό μ‚¬μš© ν•˜μ˜€λŠ”λ°

μ—¬κΈ°μ„œ ν™˜κ²½ λ³€μˆ˜λ‘œ 등둝 ν•˜λŠ” database hose λŠ” μƒμ„±ν•œ mariadb app name μž…λ‹ˆλ‹€.

기본적으둜 생성 μ‹œ app name 이 mariadb둜 μƒμ„±λ©λ‹ˆλ‹€.

# application.yml
spring:
  profiles:
    active: ${PROFILE}
  main:
    allow-bean-definition-overriding: true
# application-prod.yml
spring:
  datasource:
    url:  jdbc:mariadb://${TODO_MYSQL_HOST}:${TODO_MYSQL_PORT}/${TODO_DATA_BASE_NAME}?useSSL=false
    #jdbc:mysql://localhost:3306/test
    username: ${TODO_MYSQL_USER_NAME}
    password: ${TODO_MYSQL_PASSWORD}
    driver-class-name: org.mariadb.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update  # (1) ??? ?? ??
    show-sql: false      # (2) SQL ?? ??
    properties:
      hibernate:
        format_sql: true  # (3) SQL pretty print
        dialect: org.hibernate.dialect.MariaDB103Dialect

πŸ‘ŒπŸ‘Œ ${} μ•ˆμ— μžˆλŠ” ν™˜κ²½ λ³€μˆ˜λŠ” CloudType μ—μ„œ μ„€μ • ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

5. 배포 ν•˜κΈ°

μ΄λ ‡κ²Œ λͺ¨λ‘ μ„€μ • ν•΄μ€€ λ’€ λ°°ν¬ν•˜κΈ°λ₯Ό λˆ„λ₯΄λ©΄ 배포가 μ‹œμž‘ λ©λ‹ˆλ‹€.

😊😊 μ•± λ‚΄λΆ€μ—μ„œ 배포 내역을 확인 κ°€λŠ₯ ν•©λ‹ˆλ‹€.

6. 배포 μ™„λ£Œ ν›„ 확인 ν•˜κΈ°

  • 였λ₯Έμͺ½ 상단 접속 ν•˜κΈ°λ₯Ό λˆ„λ₯΄λ©΄ 배포 된 μ•±μœΌλ‘œ 접속이 κ°€λŠ₯ ν•©λ‹ˆλ‹€.
  • μ ‘μ†ν•˜κΈ° μ™Όμͺ½μ— μžˆλŠ” λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ 배포 λ‘œκ·Έμ™€ ν•¨κ»˜ 배포 된 μ•±μ˜ μƒνƒœλ₯Ό 확인 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • μ‹€ν–‰ 둜그λ₯Ό 확인 ν•  수 있고 Jpa show sql 을 톡해 μ‹€ν–‰ 된 sql 문을 확인 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

7. assiidoc λ¬Έμ„œλ₯Ό μœ„ν•œ Testing ν™˜κ²½ μ„€μ •

  • 기본적으둜 cloudtype μ—μ„œλŠ” buildλ₯Ό ν•  λ•Œ ./gradlew build -x test λ₯Ό 톡해 ν…ŒμŠ€νŠΈλ₯Ό μ œμ™Έν•˜κ³  λΉŒλ“œλ₯Ό ν•˜κ²Œ λ©λ‹ˆλ‹€.
  • λ•Œλ¬Έμ— ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•œ build command λ₯Ό μ„€μ • ν•΄μ€˜μ•Ό ν•©λ‹ˆλ‹€.
  • μ„€μ • ν•˜μ§€ μ•Šμ„ 경우 λ¬Έμ„œκ°€ 생성 λ˜μ§€ μ•Šκ³  λΉŒλ“œμ— μ‹€νŒ¨ν•˜κ²Œ λ©λ‹ˆλ‹€.

μ΄λ ‡κ²Œ build command λ₯Ό μ„€μ • ν•΄μ€λ‹ˆλ‹€.

profile
rocoliμ—μš”

1개의 λŒ“κΈ€

comment-user-thumbnail
2023λ…„ 6μ›” 29일

μ•ˆλ…•ν•˜μ„Έμš” ! 무료 μ‚¬μš© λ©”λͺ¨λ¦¬ μ œν•œμ΄ 1GB인데 ν˜Ήμ‹œ mariadb와 μŠ€ν”„λ§ μ„œλ²„ λ„μšΈ λ•Œ 1GB μ΄ˆκ³Όν•˜μ§€ μ•ŠμœΌμ…¨λ‚˜μš”??

λ‹΅κΈ€ 달기