SlideShare a Scribd company logo
스터디모아 인프라
개발계
GitHub
Actions
Code
Deploy
EC2
S3
S3
RDS
Node.js
Apache2
App
GitHub
Admin
운영계
GitHub
Actions
Code
Deploy
S3
S3
RDS
GitHub EC2
Api
Apache2
App Admin
#########
#########
Api
Apache2
App Admin
#########
Scheduler
PM2
KSNet
CI/CD
GitHub Actions
GitHub
CI/CD – GitHub Actions
Workflow 정의
CI/CD – Workflow Trigger
운영계 배포는 수동으로 하는 중
CI/CD – GitHub Actions
workflow가 참조 중인 브랜치가
release일 때만 job실행
release 브랜치로 checkout
현재 사용중인 node 버전 출력
Node_modules 디렉코리를 캐싱
yarn.lock의 해시 값이 변경될 때만 새로운 캐시를 재생성
소스코드를 build-api.zip 압축
node_modules는 제외
CI/CD – S3 Upload
AWS 자격 증명 설정
GitHub Secrets 환경변수에서 값 추출
aws s3 cp 명령어 실행하여 업로드 수행
${AWS_REGION}으로 ######.zip을
s3://####/… 경로로 복사
CI/CD – Code Deploy
#사전에 EC2 서버에 AWS 자격증명 설정 및 aws deploy 설치 필요
aws deploy create-deployment 명령어로 EC2에 배포 수행
--CodeDeploy에 미리 생성된 애플리케이션 정보 기입
“#######” 배포 전략 = 모든 EC2 인스턴스 그룹에 동시 배포
이전에 S3에 업로드 했던 build파일을 복사
각 EC2 인스턴스에 설치된 aws codedeploy가 실행되며,
######.zip 내부 appspec.yml의 설정에 따라 배포 작업 처리
CI/CD – 배포, appspec.yml
-배포된 디렉토리 권한지정
-읽기, 쓰기, 실행 권한
os 버전
배포할 파일 지정
-루트 디렉토리의 모든 파일
-배포될 디렉토리
-덮어쓰기
배포과정 중 실행할 작업 정의
배포 이후에 ####.sh수행
CI/CD – 배포, 쉘스크립트
####.sh
Blue과 green이라는 docker 컨테이너가 존재하는데,
Blue의 경우 #### -> ####으로, green의 경우 #### -> ####
.env 파일에 CURRENT 환경 변수를 조건에 따라 수정
docker 이미지 빌드
Os에 맞춰 아파치2 프록시 설정
CI/CD – 무중단배포
4000
4000
4000
4000
4000
4000
4000
CI/CD – 컨테이너 정의, docker-compose
CI/CD – 프록시
운영계
GitHub
Actions
Code
Deploy
S3
S3
RDS
GitHub EC2
Api
Apache2
App Admin
#########
#########
Api
Apache2
App Admin
#########
Scheduler
PM2
KSNet

More Related Content

Similar to 스터디모아 인프라

모바일을 위한 (AWS) 클라우드 기술 동향
모바일을 위한 (AWS) 클라우드 기술 동향 모바일을 위한 (AWS) 클라우드 기술 동향
모바일을 위한 (AWS) 클라우드 기술 동향
AWSKRUG - AWS한국사용자모임
 
Amazed by aws 2nd session
Amazed by aws 2nd sessionAmazed by aws 2nd session
Amazed by aws 2nd session
Amazon Web Services Korea
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
SeungYong Baek
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
Joongi Kim
 
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon Web Services Korea
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
CONNECT FOUNDATION
 
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
Ji-Woong Choi
 
아키텍처 현대화 분야 신규 서비스 - 주성식, AWS 솔루션즈 아키텍트 :: AWS re:Invent re:Cap 2021
아키텍처 현대화 분야 신규 서비스 - 주성식, AWS 솔루션즈 아키텍트 :: AWS re:Invent re:Cap 2021아키텍처 현대화 분야 신규 서비스 - 주성식, AWS 솔루션즈 아키텍트 :: AWS re:Invent re:Cap 2021
아키텍처 현대화 분야 신규 서비스 - 주성식, AWS 솔루션즈 아키텍트 :: AWS re:Invent re:Cap 2021
Amazon Web Services Korea
 
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
Amazon Web Services Korea
 
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overviewMEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
민태 김
 
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
Amazon Web Services Korea
 
텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님
NAVER D2
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
iFunFactory Inc.
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOS
Giseok Lee
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
철구 김
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
Dae Kim
 
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista Community
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
rockplace
 
Cluster api - koss 2019
Cluster api - koss 2019Cluster api - koss 2019
Cluster api - koss 2019
Esther Kim
 

Similar to 스터디모아 인프라 (20)

모바일을 위한 (AWS) 클라우드 기술 동향
모바일을 위한 (AWS) 클라우드 기술 동향 모바일을 위한 (AWS) 클라우드 기술 동향
모바일을 위한 (AWS) 클라우드 기술 동향
 
Amazed by aws 2nd session
Amazed by aws 2nd sessionAmazed by aws 2nd session
Amazed by aws 2nd session
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
 
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
효과적인 데브옵스를 위한 AWS 개발 도구 활용하기 - AWS Summit Seoul 2017
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
아키텍처 현대화 분야 신규 서비스 - 주성식, AWS 솔루션즈 아키텍트 :: AWS re:Invent re:Cap 2021
아키텍처 현대화 분야 신규 서비스 - 주성식, AWS 솔루션즈 아키텍트 :: AWS re:Invent re:Cap 2021아키텍처 현대화 분야 신규 서비스 - 주성식, AWS 솔루션즈 아키텍트 :: AWS re:Invent re:Cap 2021
아키텍처 현대화 분야 신규 서비스 - 주성식, AWS 솔루션즈 아키텍트 :: AWS re:Invent re:Cap 2021
 
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...
 
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overviewMEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
 
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
AWS Fargate와 Amazon ECS를 활용한 CI/CD 모범사례 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Game Mast...
 
텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOS
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
 
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
 
Cluster api - koss 2019
Cluster api - koss 2019Cluster api - koss 2019
Cluster api - koss 2019
 

More from Wonjun Hwang

이 프로젝트 시무12조 (Kitworks Team Study 박현준 발표자료)
이 프로젝트 시무12조 (Kitworks Team Study 박현준 발표자료)이 프로젝트 시무12조 (Kitworks Team Study 박현준 발표자료)
이 프로젝트 시무12조 (Kitworks Team Study 박현준 발표자료)
Wonjun Hwang
 
ChatGPT-4o (Kitworks Team Study 박준기 발표자료)
ChatGPT-4o (Kitworks Team Study 박준기 발표자료)ChatGPT-4o (Kitworks Team Study 박준기 발표자료)
ChatGPT-4o (Kitworks Team Study 박준기 발표자료)
Wonjun Hwang
 
중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
Wonjun Hwang
 
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
Wonjun Hwang
 
Lang Chain (Kitworks Team Study 윤정빈 발표자료)
Lang Chain (Kitworks Team Study 윤정빈 발표자료)Lang Chain (Kitworks Team Study 윤정빈 발표자료)
Lang Chain (Kitworks Team Study 윤정빈 발표자료)
Wonjun Hwang
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
Wonjun Hwang
 
Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)
Wonjun Hwang
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Wonjun Hwang
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
Wonjun Hwang
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Wonjun Hwang
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
Wonjun Hwang
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
Wonjun Hwang
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Wonjun Hwang
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Wonjun Hwang
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)
Wonjun Hwang
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)
Wonjun Hwang
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
Wonjun Hwang
 

More from Wonjun Hwang (20)

이 프로젝트 시무12조 (Kitworks Team Study 박현준 발표자료)
이 프로젝트 시무12조 (Kitworks Team Study 박현준 발표자료)이 프로젝트 시무12조 (Kitworks Team Study 박현준 발표자료)
이 프로젝트 시무12조 (Kitworks Team Study 박현준 발표자료)
 
ChatGPT-4o (Kitworks Team Study 박준기 발표자료)
ChatGPT-4o (Kitworks Team Study 박준기 발표자료)ChatGPT-4o (Kitworks Team Study 박준기 발표자료)
ChatGPT-4o (Kitworks Team Study 박준기 발표자료)
 
중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
중복,우발적중복 (Kitworks Team Study 김성호 발표자료 240524)
 
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
실행 컨텍스트 JS(Kitworks Team Study 김동현 발표자료)
 
Lang Chain (Kitworks Team Study 윤정빈 발표자료)
Lang Chain (Kitworks Team Study 윤정빈 발표자료)Lang Chain (Kitworks Team Study 윤정빈 발표자료)
Lang Chain (Kitworks Team Study 윤정빈 발표자료)
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 
Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
 

스터디모아 인프라

Editor's Notes

  1. GitHub Actions workflow는 GitHub에서 제공하는 자동화 도구 중 하나로, 코드 저장소에서 발생하는 이벤트에 응답하여 자동 작업을 수행하는 프로세스입니다. GitHub Actions을 사용하면 소프트웨어 개발 및 배포 프로세스를 자동화하고 CI/CD (지속적 통합/지속적 배포) 워크플로우를 설정할 수 있습니다.
  2. 이벤트 (Events): Workflow를 시작할 이벤트를 정의합니다. 예를 들어, 코드 푸시, 이슈 생성, 풀 리퀘스트 생성 등이 될 수 있습니다. 작업 (Jobs): Workflow 내에서 실행할 하나 이상의 작업을 정의합니다. 작업은 병렬 또는 순차적으로 실행될 수 있으며, 각 작업은 독립적으로 실행 가능한 단위입니다. 단계 (Steps): 작업은 단계로 구성됩니다. 각 단계는 명령어 또는 스크립트를 실행하거나 Docker 컨테이너 내에서 작업을 수행하는 등의 작업을 나타냅니다. 런너 (Runners): GitHub Actions는 GitHub의 런너에서 실행됩니다. 런너는 GitHub의 인프라에서 호스팅되는 가상 머신 또는 컨테이너 환경입니다. 환경 변수 (Environment Variables): Workflow에 전달되는 환경 변수를 정의하여 빌드 및 배포 과정에서 사용할 수 있습니다. 시크릿 (Secrets): 민감한 정보나 인증 토큰과 같은 보안 정보를 안전하게 저장하고 관리하기 위해 GitHub의 시크릿 스토어를 활용할 수 있습니다.
  3. appspec.yml 파일은 AWS CodeDeploy를 사용하여 애플리케이션을 배포할 때 필요한 설정을 정의하는 파일입니다. 이 파일은 배포 대상 환경에서 어떤 파일을 배포할 것인지, 배포된 파일에 대한 권한 및 규칙을 어떻게 설정할 것인지, 배포 후 어떤 작업을 실행할 것인지 등을 정의합니다.
  4. 이러한 작업은 주로 블루/그린 배포와 같이 두 가지 버전의 애플리케이션을 번갈아가면서 사용하는 상황에서 사용됩니다. 컨테이너가 어떤 버전을 사용할지를 .env 파일의 "CURRENT" 환경 변수에 저장하고, 필요한 환경 변수를 설정하여 애플리케이션을 구성하게 됩니다. source .env: .env 파일을 source 명령을 사용하여 현재 셸 세션에 로드합니다. 이를 통해 이전에 .env 파일에 설정된 환경 변수들이 현재 셸 세션으로 가져와집니다. 이전에 .env 파일에서 설정한 환경 변수를 사용할 수 있게 됩니다. 이 코드는 sed 명령어를 사용하여 텍스트 파일에서 문자열을 치환하는 작업을 수행하는 부분입니다. 주로 설정 파일 등에서 특정 값을 변경하거나 치환할 때 사용됩니다. 두 개의 sed 명령어가 사용되었으며, 각각의 역할은 다음과 같습니다:
  5. 8080 포트로 연결된 컨테이너 8081포트로 다른 다른 버전의 컨테이너 띄우기 nginx.conf 수정후 reload (업스트립 8081 수정) 8080 컨테이너 제거 개념은 정말 간단합니다. 새로 배포할 때마다 새로운 컨테이너들을 띄우고 nginx 연결(upstream)을 새로 띄운 컨테이너 포트로 연결한 뒤 이전 컨테이너는 내립니다.
  6. 이러한 작업은 주로 블루/그린 배포와 같이 두 가지 버전의 애플리케이션을 번갈아가면서 사용하는 상황에서 사용됩니다. 컨테이너가 어떤 버전을 사용할지를 .env 파일의 "CURRENT" 환경 변수에 저장하고, 필요한 환경 변수를 설정하여 애플리케이션을 구성하게 됩니다. source .env: .env 파일을 source 명령을 사용하여 현재 셸 세션에 로드합니다. 이를 통해 이전에 .env 파일에 설정된 환경 변수들이 현재 셸 세션으로 가져와집니다. 이전에 .env 파일에서 설정한 환경 변수를 사용할 수 있게 됩니다.
  7. 이러한 작업은 주로 블루/그린 배포와 같이 두 가지 버전의 애플리케이션을 번갈아가면서 사용하는 상황에서 사용됩니다. 컨테이너가 어떤 버전을 사용할지를 .env 파일의 "CURRENT" 환경 변수에 저장하고, 필요한 환경 변수를 설정하여 애플리케이션을 구성하게 됩니다. source .env: .env 파일을 source 명령을 사용하여 현재 셸 세션에 로드합니다. 이를 통해 이전에 .env 파일에 설정된 환경 변수들이 현재 셸 세션으로 가져와집니다. 이전에 .env 파일에서 설정한 환경 변수를 사용할 수 있게 됩니다.