๐ŸŒŠ Infra

ยท๐ŸŒŠ Infra/AWS
0. AWS ECR์ด๋ž€? Amazon ECR (Elastic Container Registry)๋Š” AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ์™„์ „ ๊ด€๋ฆฌํ˜• Docker ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ์ž„ AWS ์ธํ”„๋ผ์™€ ๊ธด๋ฐ€ํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ์žˆ๊ธฐ์— ECS, EKS์™€์˜ ํ†ตํ•ฉ : ECR์— ์ €์žฅ๋œ ์ด๋ฏธ์ง€๋Š” ECS๋‚˜ EKS์—์„œ ๋ฐ”๋กœ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ์–ด CI/CD ํŒŒ์ดํ”„๋ผ์ธ๊ณผ์˜ ์—ฐ๋™์ด ์ˆ˜์›”ํ•จ=> EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ ECR์— ์ ‘์†ํ•ด์„œ ์ด๋ฏธ์ง€๋ฅผ push/pull ํ•  ์ˆ˜๋„ ์žˆ์ŒIAM ๊ธฐ๋ฐ˜ ๊ถŒํ•œ ์ œ์–ด : ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Œ๋ณด์•ˆ ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ : ์ด๋ฏธ์ง€์— ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ์žˆ๋Š”์ง€ ์ž๋™์œผ๋กœ ๋ถ„์„ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ๋„ ์ œ๊ณต๋น„์šฉ ํšจ์œจ์„ฑ : ์ €์žฅ ์šฉ๋Ÿ‰๊ณผ ๋ฐ์ดํ„ฐ ์ „์†ก๋Ÿ‰์— ๋”ฐ๋ผ ๊ณผ๊ธˆ๋˜๋ฉฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์‚ฌ์šฉํ•œ ๋งŒํผ๋งŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๋ฉด๋จ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ์ด ์žˆ์Œ =>..
ยท๐ŸŒŠ Infra/AWS
AWS MFA์—์„œ ์‚ฌ์šฉ์ค‘์ธ ํŒจ์Šคํ‚ค(๋””๋ฐ”์ด์Šค)๋ฅผ ๋ณ€๊ฒฝํ•  ์ผ์ด ์ƒ๊ฒจ์„œ AWS MFA ๋ณ€๊ฒฝ ๋ฐ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค! 0. AWS MFA๋ž€? MFA (Multi-Factor Authentication)๋Š” ๋‹ค๋‹จ๊ณ„ ์ธ์ฆ ๋ฐฉ์‹์œผ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ AWS์— ๋กœ๊ทธ์ธํ•  ๋•Œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์™ธ์— ์ถ”๊ฐ€์ ์ธ ์ธ์ฆ ์ˆ˜๋‹จ์„ ์š”๊ตฌํ•˜๋Š” ๋ณด์•ˆ ๊ธฐ๋Šฅ์ž„ ์œ„์™€ ๊ฐ™์ด 2025๋…„ 6์›” 1์ผ ๊ธฐ์ค€ AWS์—์„œ๋Š” ์ด 3๊ฐ€์ง€์˜ MFA ์˜ต์…˜์ด ์กด์žฌํ•จ AWS์—์„œ๋Š” MFA๋Š” ๋ณด์•ˆ๊ถŒ์žฅ์‚ฌํ•ญ์ธ๋ฐ 1. ๊ณ„์ • ํƒˆ์ทจ ๋ฆฌ์Šคํฌ ๊ฐ์†Œ๋งŒ์•ฝ ๋ˆ„๊ตฐ๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํƒˆ์ทจํ•˜๋”๋ผ๋„, MFA ์ฝ”๋“œ ์—†์ด๋Š” ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ์— ๊ณ„์ •์„ ํƒˆํŠ€๋‹นํ•  ๋ฆฌ์Šคํฌ๊ฐ€ ์ค„์–ด๋“ค๊ณ ํŠนํžˆ, ๋ฃจํŠธ ๊ณ„์ •์€ ๋ชจ๋“  AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ฌด์ œํ•œ ๊ถŒํ•œ์ด ์žˆ์–ด ๋ณด์•ˆ ์œ„ํ˜‘์ด ๋งค์šฐ ํฌ๊ธฐ์— ํ•„์ˆ˜์ ์ž„2. AWS ๋ณด์•ˆ ๊ถŒ์žฅ ์‚ฌํ•ญ์— ํฌํ•จ๋จ..
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..
ยท๐ŸŒŠ Infra/AWS
ํ”„๋กœ์ ํŠธ์—์„œ 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)..
ยท๐ŸŒŠ Infra/AWS
๊ตญ๋ฏผ๋Œ€ํ•™๊ต์—์„œ "ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…" ๊ต๊ณผ๋ชฉ์„ ์ง„ํ–‰ํ•˜์‹œ๋Š”์ด๊ฒฝ์šฉ ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜ ๊ต์•ˆ์„ ์ด์šฉํ•˜์—ฌ ์ˆ˜์—… ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค  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..
ยท๐ŸŒŠ Infra/Docker
๊ตญ๋ฏผ๋Œ€ํ•™๊ต์—์„œ "ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…" ๊ต๊ณผ๋ชฉ์„ ์ง„ํ–‰ํ•˜์‹œ๋Š”์ด๊ฒฝ์šฉ ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜ ๊ต์•ˆ์„ ์ด์šฉํ•˜์—ฌ ์ˆ˜์—… ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค  ์‹œ์Šคํ…œ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  Virtual Machine  Hypervisor (Virtual Machine Monitor)๋ฅผ ํ†ตํ•œ ์—ฌ๋Ÿฌ ์šด์˜์ฒด์ œ๊ฐ„ ๋…๋ฆฝ์  ํ™˜๊ฒฝ ์ œ๊ณต๊ฐ VM์€ ๋…๋ฆฝ์ ์ธ ๋ณ„๋„์˜ ์ปค๋„(์šด์˜์ฒด์ œ), ์‹œ์Šคํ…œ ํ”„๋กœ์„ธ์Šค ๋“ฑ์„ ๊ด€๋ฆฌํ•˜๊ฒŒ๋จ=> ์ถ”๊ฐ€ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํด ์ˆ˜ ์žˆ์Œ๊ฐ๊ฐ์˜ VM์€ ๋ณ„๋„์˜ ์ปค๋„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ธฐ์—, ์„œ๋กœ ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ์˜ ๋™์‹œ ๋™์ž‘ ๊ฐ€๋ŠฅVMM์„ ํ†ตํ•œ ์ž์› ๊ณต์œ ๋กœ ์ธํ•ด VM ๊ฐ„ ๊ฐ„์„ญ์€ ๋œํ•˜์ง€๋งŒ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ์–ด monolithic ๊ตฌ์กฐ์— ์ ํ•ฉContainer Technologies Container  ํ˜ธ์ŠคํŠธ ์šด์˜์ฒด์ œ๋‚ด์—์„œ ๋™์ž‘ํ•˜๋ฉฐ ์ปค๋„ ๋ฐ ๋งŽ์€ ์‹œ์Šคํ…œ ์ž์›์„ ํ˜ธ์ŠคํŠธ ๊ธฐ๊ธฐ์™€ ๊ณต์œ ๊ทน๋‹จ์ ์œผ..
ยท๐ŸŒŠ Infra
๊ตญ๋ฏผ๋Œ€ํ•™๊ต์—์„œ "ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…" ๊ต๊ณผ๋ชฉ์„ ์ง„ํ–‰ํ•˜์‹œ๋Š”์ด๊ฒฝ์šฉ ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜ ๊ต์•ˆ์„ ์ด์šฉํ•˜์—ฌ ์ˆ˜์—… ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค  Monolithic Application and Microservice Application Monolithic application  ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—์„œ ๋‹ค๋ฅธ ๋ชฉ์ ์„ ๊ฐ€์ง€๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ž‘์„œ๋ฒ„์˜ ์šฉ๋Ÿ‰์ด ์ปค์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ (์„œ๋น„์Šค ์ข…๋ฅ˜์˜ ํ™•์žฅ ๋ณด์žฅ)Scale-up ์ ‘๊ทผ์ด ์ ๋‹นํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ=> ํ•˜๋‚˜์˜ ์„œ๋ฒ„์—์„œ ๋™์ž‘ํ•˜๋ฏ€๋กœScale-out์€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ=> ์ผ๋ถ€์˜ ๋ชจ๋“ˆ์ด ์ˆ˜ํ‰ํ™•์žฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ (ex. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ, ๋ฌด๊ฒฐ์„ฑ, ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ(ACID ๊ทœ์น™) ๋“ฑ์ด ์ผ๋ฐ˜์ ์ธ RDBMS์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์š”์†Œ๋กœ ์ž‘์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— DB๋Š” ๋ณธ์งˆ์ ์œผ๋กœ๋Š” Scale-out ..
ยท๐ŸŒŠ Infra/AWS
๊ตญ๋ฏผ๋Œ€ํ•™๊ต์—์„œ "ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…" ๊ต๊ณผ๋ชฉ์„ ์ง„ํ–‰ํ•˜์‹œ๋Š”์ด๊ฒฝ์šฉ ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜ ๊ต์•ˆ์„ ์ด์šฉํ•˜์—ฌ ์ˆ˜์—… ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค  ๊ตฌ๋™์ค‘์ธ ์„œ๋ฒ„์— ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ    => ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ณณ์—์„œ ์ž์›์˜ ์‹œ์ž‘, ์ข…๋ฃŒ, ์„ค์ •์„ ์ž๋™ํ™”๋ฅผ ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌ๋˜๋Š” ์ž์›๋“ค์„ ์ค„์ž„์œผ๋กœ ์‹œ์Šคํ…œ์˜ ์•ˆ์ •์„ฑ, ์ผ๊ด€์„ฑ, ํšจ์œจ์„ฑ์„ ๋†’์ด๋„๋ก ํ•ด์•ผํ•จ DevOps Development : ์„œ๋น„์Šค ๊ฐœ๋ฐœ Operations : ์„œ๋น„์Šค ์šด์šฉ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์˜ ๋“ฑ์žฅ ๋ฐ ์›น ์„œ๋น„์Šค ๋ณดํŽธํ™”์— ๋”ฐ๋ฅธ Development์™€ Operations์˜ ๊ฒฝ๊ณ„ ๋ชจํ˜ธ ์›น ์„œ๋น„์Šค์˜ ๋น ๋ฅธ ๊ฐœ์„  ์ฃผ๊ธฐ๋กœ ์ธํ•œ ๊ฐ„๋‹จํ•œ ๋ฆด๋ฆฌ์ฆˆ ์‚ฌ์ดํด ํ•„์š”=> ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•œ ์„œ๋น„์Šค ๋ฐฐํฌ ๋ณดํŽธํ™” (IaC)  Infrastructure-as-Code (์ฝ”๋“œ๋ฅผ ์ด์šฉํ•œ ์ž์› ๊ด€๋ฆฌ)  ์„œ๋น„..