[git] gitlab CI/CD to AWS EC2 (1)

2022. 4. 25. 10:40·기타/git

 

🎯 Goals

  • gitlab-ci.yaml 파일 κΈ°λ³Έ 섀정을 ν•΄λ³Έλ‹€.
  • gitlab 의 CI λͺ¨λΈμ˜ κ°œλ…μ„ νŒŒμ•…ν•œλ‹€.
  • gitlab + AWS EC2 ν™˜κ²½μ—μ„œμ˜ CI μ „λž΅μ„ μ„Έμ›Œλ³Έλ‹€.

 

 

GitLab CI Models

ν•˜λ‚˜μ˜ 리포지토리가 ν•˜λ‚˜μ˜ νŒŒμ΄ν”„λΌμΈμ„ κ°–λŠ”λ‹€.

 

Pipeline

λ¦¬ν¬μ§€ν† λ¦¬μ˜ λ£¨νŠΈμ— μ‘΄μž¬ν•˜λŠ” Yaml μ„€μ • 파일

λ‹€λ₯Έ νŒŒμ΄ν”„λΌμΈμ— μ•Œλ¦Όμ„ 보낼 수 μžˆλ‹€.

ν•˜λ‚˜μ˜ νŒŒμ΄ν”„λΌμΈμ€ μ—¬λŸ¬ μŠ€ν…Œμ΄μ§€λ₯Ό κ°€μ§ˆ 수 μžˆλ‹€.

 

 

Stage

μž‘μ—…μ˜ λ‹¨μœ„λ‘œ '순차적'으둜 μ‹€ν–‰λœλ‹€.

μ—¬λŸ¬ Job 을 κ°–λŠ”λ‹€.

ex) Install, Build, Test, Deploy , Run

 

 

Job

ν•œ μŠ€ν…Œμ΄μ§€ λ‚΄μ—μ„œ μž‘μ—…μ˜ λ‹¨μœ„.

 


[CI μ „λž΅ 수립]

λΈŒλžœμΉ˜λ§ˆλ‹€ μ„œλ‘œ λ‹€λ₯Έ EC2 μΈμŠ€ν„΄μŠ€μ— λ°°ν¬ν•œλ‹€.

  • master => production instance
  • develop => test instance
  • stage => stage (just for test)

 

 

μ΄μŠˆκ°€μžˆλ‹€.

각 μΈμŠ€ν„΄μŠ€λ§ˆλ‹€ μ‚¬μš©ν•˜λŠ” .env κ°€ λ‹€λ₯΄λ‹€. 보톡 ν™˜κ²½λ³€μˆ˜ 파일인 dotenv μ—λŠ” λ…ΈμΆœλ˜μ§€ μ•Šμ•„μ•Όν•˜λŠ” 정보가 ν¬ν•¨λ˜μ–΄μžˆκΈ° λ•Œλ¬Έμ—, repository 에 μ˜¬λ¦¬μ§€ μ•ŠλŠ”λ‹€ => μžλ™λ°°ν¬λ₯Ό μœ„ν•΄ λ³„λ„μ˜ μ „λž΅μ΄ ν•„μš”ν•˜λ‹€.

 

 


[gitlab-ci.yml 쀀비사항]

 

1. Intall Gitlab-Runner on Local (Optional)

GitLab Runnerλ₯Ό μ„œλ²„ μΈμŠ€ν„΄μŠ€κ°€ μ•„λ‹Œ
μ‹€μ œλ‘œ κ°œλ°œμ„ ν•˜λŠ” λ°μŠ€ν¬νƒ‘μ΄λ‚˜ λ…ΈνŠΈλΆμ— μ„€μΉ˜ν•œλ‹€.

 

 

Install GitLab Runner | GitLab

Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

docs.gitlab.com

이 λ¬Έμ„œλ³΄κ³  슀슀둜 μ„€μΉ˜λ„ λͺ»ν•  정도면 개발자λ₯Ό μ•ˆν•˜λŠ”κ²Œ..λ‚«μ§€μ•Šλ‚˜?

 

μ„€μΉ˜ ν›„ μ„€μ •νŒŒμΌμ„ λ³€κ²½ν•˜κ³  μ‹Άλ‹€λ©΄ 이 λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ‹œλΌ.

# config.toml 파일의 섀정값을 λ³€κ²½ν•΄μ£Όλ©΄ λœλ‹€.
$ /Users/[Username]/.gitlab-runner/config.toml

 

 

2. Create a .gitlab-ci.yml file

일일히 AtoZ κ΅¬μ„±ν•˜κΈ° μ–΄λ €μš°λ‹ˆ gitlab μ—μ„œ μ œκ³΅ν•˜λŠ” ν…œν”Œλ¦Ώμ„ μ‚¬μš©ν•˜λ„λ‘ ν•˜μž.

 

3. AWS S3 Bucket 생성 및 AWS Credential μ„€μ •

Pipeline μ’…λ£Œμ‹œ Deploy ν•  νŒŒμΌμ„ μ••μΆ•ν•˜μ—¬ S3에 μ—…λ‘œλ“œν•΄μ•Όν•œλ‹€.

S3 μ—…λ‘œλ“œλ₯Ό μœ„ν•΄μ„œ AWS Credential 정보λ₯Ό Gitlab - Settings - CI/CD - Variables μ—μ„œ μ„€μ •ν•˜μž.

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_KEY
  • AWS_DEFAULT_REGION (Optional)

AWS μ ‘κ·Ό κΆŒν•œ μ„€μ •

이제 pipeline λ‚΄μ—μ„œ S3 μ—…λ‘œλ“œκ°€ κ°€λŠ₯ν•΄μ‘Œλ‹€.

 

 

 


πŸ”— Reference

 

Deploy from Gitlab to AWS EC2

Gitlab CI pipeline for AWS EC2 deployment

aws.plainenglish.io

 

μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

'기타 > git' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Error] Jekyll 을 ν†΅ν•œ κΉƒν—™ λΈ”λ‘œκ·Έ μƒμ„±μ‹œ λ§Œλ‚œ 였λ₯˜λ“€  (0) 2023.01.05
[git] gitlab CI/CD to AWS EC2 (2)  (0) 2022.04.29
[git] tag  (0) 2022.03.19
[git] μ„œλ‘œ λ‹€λ₯Έ repository ν•©μΉ˜κΈ°  (0) 2022.03.14
[git] 이전 commit 둜그 λ³€κ²½  (0) 2022.03.12
'기타/git' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [Error] Jekyll 을 ν†΅ν•œ κΉƒν—™ λΈ”λ‘œκ·Έ μƒμ„±μ‹œ λ§Œλ‚œ 였λ₯˜λ“€
  • [git] gitlab CI/CD to AWS EC2 (2)
  • [git] tag
  • [git] μ„œλ‘œ λ‹€λ₯Έ repository ν•©μΉ˜κΈ°
M_Falcon
M_Falcon
  • M_Falcon
    Falcon
    M_Falcon
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (432)
      • Web (16)
        • Nodejs (14)
        • Javascript (23)
        • FrontEnd (4)
      • DataBase (39)
        • Fundamental (1)
        • Redis (4)
        • PostgreSQL (10)
        • NoSQL (4)
        • MySQL (9)
        • MSSQL (3)
        • Error (4)
      • Algorithm (79)
        • Algorithm (λ¬Έμ œν’€μ΄) (56)
        • Algorithm (이둠) (23)
      • JVM (65)
        • Spring (13)
        • JPA (5)
        • Kotlin (13)
        • Java (24)
        • Error (7)
      • 기타 (70)
        • Kafka (3)
        • Kubernetes (3)
        • Docker (13)
        • git (19)
        • μž‘λ™μ‚¬λ‹ˆ (27)
      • μž¬ν…Œν¬ (11)
        • 세무 (4)
        • 투자 (3)
        • λ³΄ν—˜ (0)
      • BlockChain (2)
        • BitCoin (0)
      • C (32)
        • C (10)
        • C++ (17)
        • Error (3)
      • Low Level (8)
        • OS (3)
        • μ‹œμŠ€ν…œ λ³΄μ•ˆ (5)
      • λ„€νŠΈμ›Œν¬ (3)
      • LINUX (30)
        • Linux (26)
        • Error (4)
      • μ €μž‘κΆŒκ³Ό 슀마트폰의 이해 (0)
      • 생각 λ­‰μΉ˜ (6)
      • ꢁ금증 (2)
      • Private (4)
        • 이직 κ²½ν—˜ (0)
        • κΏˆμ„ μ°Ύμ•„μ„œ (1)
      • Android (21)
        • OS (4)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • WEB
    • μ•Œκ³ λ¦¬μ¦˜
    • DataBase
    • Linux
    • Mobile
    • C
    • λ°©λͺ…둝
  • 링크

    • github
  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    kafka
    PostgreSQL
    Bitcoin
    docker
    android
    μ•Œκ³ λ¦¬μ¦˜
    ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€
    javascript
    database
    Spring
    Git
    λ°±μ€€
    JPA
    algorithm
    Programmers
    linux
    C++
    java
    ubuntu
    Kotlin
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
M_Falcon
[git] gitlab CI/CD to AWS EC2 (1)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”