1. Github Secrets ์ค์ Github Actions๋ฅผ ์ ์ฉํ Repo์ Setting์์ Secrets and variables์ ๋ค์ด๊ฐ์ฃผ๋ฉดNew repository secret๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ DOCKERHUB_USERNAME=> Docker Hub ์ฌ์ฉ์ ์ด๋ฆDOCKERHUB_PASSWORD=> Docker Hub ๋น๋ฐ๋ฒํธEC2_HOST=> EC2 ํผ๋ธ๋ฆญ IPEC2_USER=> EC2์ SSH๋ก ์ ์ํ ๋ ์ฌ์ฉํ ์ฌ์ฉ์ ์ด๋ฆ์(์ฐ๋ถํฌ EC2๋ฅผ ์ฌ์ฉ์ค์ด๊ธฐ์ ubuntu๋ก ์ง์ ํ์์)EC2_SSH_KEYhttps://hanjungyo.tistory.com/127 Jenkins์ ์ด์ฉํ Spring Boot ๋ฐฐํฌ ์๋ํ๋ก์ปฌ์์ Spring Boot ๋น๋ํ๊ณ docker imag..
๋ก์ปฌ์์ Spring Boot ๋น๋ํ๊ณ docker image ๋ง๋ค์ด์ docker hub์ ์ฌ๋ฆฌ๊ณ ..EC2 ๋ค์ด๊ฐ์ docker hub์ ์๋ ์ด๋ฏธ์ง pull ๋ฐ์์ run ์ํค๊ธฐ... ๊ฐ๋ฐ์ ํ๋ฉด ํ ์๋ก CI/CD์ ์ค์์ฑ์ด ๊น๊ฒ ๋๊ปด์ง๋ ๊ฒ ๊ฐ๋ค... ๋ฐฐํฌ์ ์์ด์ ๋์ ๊ฐ์ด ๊ท์ฐฎ์ ํน์ ์ด๋ ค์์ ๋๋ผ๊ณ ์๋ ๋ค๋ฅธ ๋ถ๋ค์ ์ํด ๊ธฐ๋ก์ ๋จ๊ธฐ๋ ค๊ณ ํ๋ค ์์ํ๊ธฐ์ ์์ ์ฌํ ์ฌ์ฐ (Jenkins ๋์
๊ธฐ..) ์ผ๋จ ์์ํ๊ธฐ์ ์์ Jenkins์ ๋์
ํ๊ธฐ๊น์ง์ ์ฌํ ์ ์ค์ด ์๋ค.. https://hanjungyo.tistory.com/126 ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋น๋, ํ
์คํธ, ๋ฐฐํฌ ๋ฑ์ ์์
์ ์๋์ผ๋ก ์คํํ ์ ์์ Github" data-og-host="hanjungyo.tistory.com" dat..
Github Actions์ ๊ธฐ๋ณธ ๊ฐ๋
์ผ๋จ Github Actions๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ์๋ํํ ์ ์๋ CI/CD ๋๊ตฌ์=> ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ๋น๋, ํ
์คํธ, ๋ฐฐํฌ ๋ฑ์ ์์
์ ์๋์ผ๋ก ์คํํ ์ ์์ Github Actions๋ Github ๋ด์์ ๋ฐ๋ก ์คํ๋๊ธฐ์ ์ถ๊ฐ ์ค์ ์ด ์ ์ด ๋์ด๋๊ฐ ๋น๊ต์ ์ฝ๊ณ PR์ด๋ ์ปค๋ฐ, ์ด์, ํ๊ทธ ๋ฑ ๋ค์ํ Github์ ์ด๋ฒคํธ์ ๋ฐ์์ด ๊ฐ๋ฅํจ!(ํผ๋ธ๋ฆญ ๋ ํฌ์งํ ๋ฆฌ ๊ธฐ์ค์ผ๋ก ๋ฌด๋ฃ์) ๊ตฌ์ฑ ์์ ์ฐ์ ํ ๋ฒ ์ญ ์ฝ์ด๋ณด๊ณ ๋ฐ์ ์์ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด ์ดํด๊ฐ ๋ ์ฌ์ Workflow Github Actions์์ ์คํ๋๋ ์๋ํ๋ ํ๋ก์ธ์ค๋ก .github/workflows/ ๋๋ ํ ๋ฆฌ์ .yml ํ์ผ๋ก ์ ์๋จ=> ํ๋ ์ด์์ Job์ผ๋ก ๊ตฌ์ฑ๋๊ณ push, p..
ํ๋ก์ ํธ์์ AWS IAM์ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ์ด๋ฒ์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ AWS๋ก ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๊ฒ ๋์์ ๋ค๋ฅธ ๊ธ์์๋ ๋ค๋ค์ง๋ง AWS ๋ฃจํธ ๊ณ์ ์ ์ด์ฉํ๋ ๊ฒ์ ๊ทธ๋ ๊ฒ ์ข์ ๋ฐฉ๋ฒ์ด ์๋(ํนํ๋ AWS ๊ด๋ จ ์์
์ ํ๋ ์ฌ๋์ด ์ฌ๋ฌ๋ช
์ธ ๊ฒฝ์ฐ) ๋ณด์ ๋ฌธ์ ๋ฃจํธ ๊ณ์ ์ ๋ชจ๋ ๊ถํ์ ๊ฐ์ง๊ณ ์์ด์ ๋ฆฌ์คํฌ๊ฐ ๋๋ฌด ํผ=> ์ด ๋ถ๋ถ์ ๋ํด์๋ ๋ฃจํธ ๊ณ์ ์ MFA๋ฅผ ์ค์ ํ๊ณ ์ด๊ธฐ IAM ๊ณ์ ์ ๋ง๋ ํ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด AWS Best Pracitce๋ผ๊ณ ํจํ์๋ค ๊ฐ์ ๊ฐ๋ณ ๊ณ์ ์ ๊ฐ์ง ์ ์์ (+ ์ ์ฐํ ๊ถํ ๊ด๋ฆฌ)IAM์ผ๋ก ๊ฐ ํ์์๊ฒ ๊ฐ๋ณ AWS ๊ณ์ ์ ๋ถ์ฌํ ์ ์๊ณ IAM User, IAM Role์ ์ฌ์ฉํ์ฌ ํ์ํ ๊ถํ๋ง ๋ถ์ฌํ ์ ์์=> ์กฐ๊ธ ๋ ์ ํํ๋ ํ๋์ AWS ๊ณ์ ์ด๊ณ ๊ณ์ ๋ด์์ ๊ฐ๋ณ..
Kubectl kubectl์ Kubernetes Cluster๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋๊ตฌ์ ๋ฆฌ์์ค ์์ฑ (create), Update (apply) create -> ์ต์ด ์์ฑํ ๋ ์ฌ์ฉํจapply -> ์ต์ด๋ , ์ค๊ฐ์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ ๋ณด๋ ๋ค ์ฌ์ฉ๊ฐ๋ฅ๋ฆฌ์์ค ์ญ์ (delete) ๋ฆฌ์์ค ์์ฑ, ์ญ์ ์์๋ -f๋ก Manifest File์ ๊ฒฝ๋ก๋ฅผ ์ง์ => ๊ฒฝ๋ก์ Local Directory๊ฐ ๋ ์ ์๊ณ , http ๊ฒฝ๋ก๋ ๊ฐ๋ฅํจ ๋ฆฌ์์ค ์ํ ์กฐํ (get) kubectl get {Resource Type} [Resource Name] [-Aw] [-n ] -A : ๋ชจ๋ namespace์ ๋ํด์ ์กฐํ-w : watchResource Typepoding (ingress)deploymentsvc (service)..
๊ตญ๋ฏผ๋ํ๊ต์์ "ํด๋ผ์ฐ๋ ์ปดํจํ
" ๊ต๊ณผ๋ชฉ์ ์งํํ์๋์ด๊ฒฝ์ฉ ๊ต์๋์ ๊ฐ์ ๊ต์์ ์ด์ฉํ์ฌ ์์
๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค Decoupling Modules Decoupling Modules๋ ์ ์ฒด ์์คํ
์ ๋
๋ฆฝ์ ์ธ ์ปดํฌ๋ํธ๋ก ๋์์ธ ํ๋ ๊ฒ์ => ๊ฐ ์ปดํฌ๋ํธ ๊ฐ์ ์ข
์์ฑ์ ์ต์ํํจ์ผ๋ก ํน์ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ ๋ฌธ์ ๊ฐ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ ํ๋๋ ๊ฒ์ ๋ฐฉ์งํด์ผํจ Tightly coupled : ํ ์์ฉ ์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ชจ๋ ์น์๋ฒ์ ๋ฌธ์ ๋ฅผ ๋ฏธ์น ์๋ ์์Loosely coupled : ๋ก๋๋ฐธ๋ฐ์๊ฐ ์์ฉ ์๋ฒ์ ์คํจ๋ฅผ ๊ฐ๋ ค์ค(๋ก๋ ๋ฐธ๋ฐ์๋ health check๋ฅผ ์คํํจ)์์คํ
์ด loosely coupled ๋ ์๋ก ์์คํ
์ ํ์ฅ์ฑ์ ๋ณด์ฅํ๋ ๊ฒ์ด ์ฌ์์ง ๋ชจ๋์ decoupling ํ๋ ๋ฐฉ๋ฒ ์๋ฒ๋ฅผ ๋ง๋ค์ง ๋ง๊ณ ..
Kubernetes๋? Google์ด ๋ง๋ Container Ochestration์ ํ๊ธฐ ์ํ ๋๊ตฌ์ Container Ochestration์ด๋? Container๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํด์ค=> ์ค์์์ ๊ด๋ฆฌCluster ์ฐจ์์ผ๋ก ๊ด๋ฆฌ์ผ๋ฐ Docker๋ง ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ค๋ฅด๊ฒ ํ์ฅ์ ์ฉ์ด์ฑ์ ์ ๊ณตํด์ฃผ๊ณ ์ฌ๋ฌ ์๋ฒ๋ฅผ ๋์์ ๊ด๋ฆฌํ ์ ์์Kubernetes๊ฐ ์ ๊ณตํด์ฃผ๋ ๊ฐ์น? ๊ด๋ฆฌ ์ธก๋ฉด์์ ์ฌ๋ฌ๊ฐ์ง๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํด์ฃผ๊ณ , ์ถ์ํ๋ ๊ฐ๋
์์ ์ ๊ทผํ๊ธฐ์ ํจ์ฌ ํธํจ=> ๋๊ท๋ชจ ํ๊ฒฝ ๊ด๋ฆฌ๋ฐฐํฌ๊ฐ์ ๊ฒ๋ค๋ ๋งค์ฐ ํธ๋ฆฌํ๊ณ ํฉ๋ฆฌ์ ์ผ๋ก ํด์ค Kubernetes ์ปดํฌ๋ํธ ์ฟ ๋ฒ๋คํฐ์ค Cluster๋ ์ปดํจํฐ ์งํฉ์ธ Node์ Control Plain ์ผ๋ก ๊ตฌ์ฑ๋จ ์ฐ์ Node๋ ๋ ๊ฐ์ง ์ข
๋ฅ๊ฐ ์์Master Node Clust..
๊ตญ๋ฏผ๋ํ๊ต์์ "ํด๋ผ์ฐ๋ ์ปดํจํ
" ๊ต๊ณผ๋ชฉ์ ์งํํ์๋์ด๊ฒฝ์ฉ ๊ต์๋์ ๊ฐ์ ๊ต์์ ์ด์ฉํ์ฌ ์์
๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค ์์คํ
๊ฐ์ํ ๊ธฐ์ Virtual Machine Hypervisor (Virtual Machine Monitor)๋ฅผ ํตํ ์ฌ๋ฌ ์ด์์ฒด์ ๊ฐ ๋
๋ฆฝ์ ํ๊ฒฝ ์ ๊ณต๊ฐ VM์ ๋
๋ฆฝ์ ์ธ ๋ณ๋์ ์ปค๋(์ด์์ฒด์ ), ์์คํ
ํ๋ก์ธ์ค ๋ฑ์ ๊ด๋ฆฌํ๊ฒ๋จ=> ์ถ๊ฐ ์ค๋ฒํค๋๊ฐ ํด ์ ์์๊ฐ๊ฐ์ VM์ ๋ณ๋์ ์ปค๋์ ๊ฐ์ง ์ ์๊ธฐ์, ์๋ก ๋ค๋ฅธ ์ด์์ฒด์ ์ ๋์ ๋์ ๊ฐ๋ฅVMM์ ํตํ ์์ ๊ณต์ ๋ก ์ธํด VM ๊ฐ ๊ฐ์ญ์ ๋ํ์ง๋ง ์ค๋ฒํค๋๊ฐ ์์ด monolithic ๊ตฌ์กฐ์ ์ ํฉContainer Technologies Container ํธ์คํธ ์ด์์ฒด์ ๋ด์์ ๋์ํ๋ฉฐ ์ปค๋ ๋ฐ ๋ง์ ์์คํ
์์์ ํธ์คํธ ๊ธฐ๊ธฐ์ ๊ณต์ ๊ทน๋จ์ ์ผ..
๊ตญ๋ฏผ๋ํ๊ต์์ "ํด๋ผ์ฐ๋ ์ปดํจํ
" ๊ต๊ณผ๋ชฉ์ ์งํํ์๋์ด๊ฒฝ์ฉ ๊ต์๋์ ๊ฐ์ ๊ต์์ ์ด์ฉํ์ฌ ์์
๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค Monolithic Application and Microservice Application Monolithic application ํ๋์ ์๋ฒ์์ ๋ค๋ฅธ ๋ชฉ์ ์ ๊ฐ์ง๋ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์๋ฒ์ ์ฉ๋์ด ์ปค์ผ ํ ํ์๊ฐ ์์ (์๋น์ค ์ข
๋ฅ์ ํ์ฅ ๋ณด์ฅ)Scale-up ์ ๊ทผ์ด ์ ๋นํ ๊ฒฝ์ฐ๊ฐ ๋ง์=> ํ๋์ ์๋ฒ์์ ๋์ํ๋ฏ๋กScale-out์ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ๋ง์=> ์ผ๋ถ์ ๋ชจ๋์ด ์ํํ์ฅ์ ์ง์ํ์ง ์์ ๊ฒฝ์ฐ (ex. ๋ฐ์ดํฐ๋ฒ ์ด์ค)๋ฐ์ดํฐ ์ผ๊ด์ฑ, ๋ฌด๊ฒฐ์ฑ, ํธ๋์ญ์
์ฒ๋ฆฌ(ACID ๊ท์น) ๋ฑ์ด ์ผ๋ฐ์ ์ธ RDBMS์์ ๋งค์ฐ ์ค์ํ ์์๋ก ์์ฉํ๊ธฐ ๋๋ฌธ์ DB๋ ๋ณธ์ง์ ์ผ๋ก๋ Scale-out ..
๊ตญ๋ฏผ๋ํ๊ต์์ "ํด๋ผ์ฐ๋ ์ปดํจํ
" ๊ต๊ณผ๋ชฉ์ ์งํํ์๋์ด๊ฒฝ์ฉ ๊ต์๋์ ๊ฐ์ ๊ต์์ ์ด์ฉํ์ฌ ์์
๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค ๊ตฌ๋์ค์ธ ์๋ฒ์ ๋ฌธ์ ๋ฐ์ ์ ํด๊ฒฐ ๋ฐฉ์ => ๊ฐ๋ฅํ ๋ชจ๋ ๊ณณ์์ ์์์ ์์, ์ข
๋ฃ, ์ค์ ์ ์๋ํ๋ฅผ ํ๋ ๊ฒ์ ๊ถ์ฅ ์๋์ผ๋ก ๊ด๋ฆฌ๋๋ ์์๋ค์ ์ค์์ผ๋ก ์์คํ
์ ์์ ์ฑ, ์ผ๊ด์ฑ, ํจ์จ์ฑ์ ๋์ด๋๋ก ํด์ผํจ DevOps Development : ์๋น์ค ๊ฐ๋ฐ Operations : ์๋น์ค ์ด์ฉ ํด๋ผ์ฐ๋ ์๋น์ค์ ๋ฑ์ฅ ๋ฐ ์น ์๋น์ค ๋ณดํธํ์ ๋ฐ๋ฅธ Development์ Operations์ ๊ฒฝ๊ณ ๋ชจํธ ์น ์๋น์ค์ ๋น ๋ฅธ ๊ฐ์ ์ฃผ๊ธฐ๋ก ์ธํ ๊ฐ๋จํ ๋ฆด๋ฆฌ์ฆ ์ฌ์ดํด ํ์=> ์ฝ๋๋ฅผ ํ์ฉํ ์๋น์ค ๋ฐฐํฌ ๋ณดํธํ (IaC) Infrastructure-as-Code (์ฝ๋๋ฅผ ์ด์ฉํ ์์ ๊ด๋ฆฌ) ์๋น..
๊ตญ๋ฏผ๋ํ๊ต์์ "ํด๋ผ์ฐ๋ ์ปดํจํ
" ๊ต๊ณผ๋ชฉ์ ์งํํ์๋์ด๊ฒฝ์ฉ ๊ต์๋์ ๊ฐ์ ๊ต์์ ์ด์ฉํ์ฌ ์์
๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค AWS High Availability (๊ณ ๊ฐ์ฉ์ฑ) Fault-tolerance์ Scalability ๊ด์ ์์ ์ดํด๋ณด์ ๊ณ ๊ฐ์ฉ์ฑ (High Availability)๋? ์๋น์ค๋ฅผ ์ด์ฉํ๋ ์ฌ๋์ด ๊ด๋ฆฌ๋ฅผ ํ์ง ์์๋ ์๋น์ค๊ฐ ๋์ํ์ง ์๋ ์๊ฐ์ ์ต์ํํด์ ์ฌ์ฉ์์๊ฒ ์์ธก๋ ์ฑ๋ฅ์ ์ ๊ณตํด์ค ์ ์๋ ์ฒ๋ ๊ณ ๊ฐ์ฉ์ฑ์ ๊ตฌํ ์์๋ค Fault tolerance ์์ฉ์์ ์์ฒด์์ ๋ฌธ์ ๊ฐ ๋ฐ์์์๋ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ์ ํํ์ง ์๋ ๋ฅ๋ ฅ=> fault๊ฐ failure๊ฐ ๋์ง ์๊ฒ๋ฐฑ์
์๋ฒ์ ๊ตฌ๋ ๋ฑ Scalability ์์คํ
์ ๋์์ธ์ ๋ฐ๊พธ์ง ์๊ณ ๋ ์ฆ๊ฐํ๋ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฅ๋ ฅ ์ฌ์ฉ์ ..
๊ตญ๋ฏผ๋ํ๊ต์์ "ํด๋ผ์ฐ๋ ์ปดํจํ
" ๊ต๊ณผ๋ชฉ์ ์งํํ์๋์ด๊ฒฝ์ฉ ๊ต์๋์ ๊ฐ์ ๊ต์์ ์ด์ฉํ์ฌ ์์
๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค AWS์ Region๋ค us-west-2, ap-southeast-1 ์ฒ๋ผ ๋์ด ์๋ ๊ฒ์ ๋ณผ ์ ์์ => ๋ณดํต์ ์ซ์ 1๋ก ๊ฐ์๋ก ํฐ ๋์๋ฅผ ์๋ฏธํ๋ฉฐ ์ฃผ์ Region๋ถํฐ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋จ AWS์์ Region์ ์ ํํ ๋ ๊ณ ๋ ค ์ฌํญ๋ค ๋ฒ๋ฅ ์ ์ ์ฝ ์ฌํญ=> ํน์ ๋ฐ์ดํฐ๋ ๋ณธ๊ตญ์ ๋ ๋์๋ ์๋จ ๋ฑ์ ์ ์ฝ ์ฌํญ ๊ณ ๋ ค์ฃผ์ ์ฌ์ฉ์์ ๊ฐ๊น์ด ๊ณณ์ ์์น=> ์๋ต์๊ฐ ์ธก๋ฉด์์ ๋ฐ๋ผ๋ด์ผํจ์ง์ญ๋ณ๋ก ๊ฐ์ฉํ ์๋น์ค๊ฐ ๋ค๋ฆ=> ์ฃผ๋ก ๋ฏธ๊ตญ ์๋ถ(us-west-2) ๋ฐ ๋๋ถ (us-east-1) Region ๋ถํฐ ์๋ก์ด ์๋น์ค๊ฐ ๊ฐ๋ฅํด์งRegion ๋ณ๋ก ๊ฐ๊ฒฉ์ด ๋ค๋ฆ=> ๋ฐ์ดํฐ์ผํฐ์ ์ฅ๋น ๊ฐ๊ฒฉ๋ฑ์ ๊ณ ๋ คํด๋ณด๋ฉด..