본문 바로가기
부트캠프교육중/AWS

[AWS] Deploy

by 뭉지야 2023. 4. 2.
728x90

# 배포
- 개발한 서비스를 사용자들이 이용 가능하게 하는 일련의 과정.
-기본적으로 4단계를 거쳐서 개발한 서비스를 배포하게 됩니다.



#Development 단계
-각자의 컴퓨터에서 코드를 작성하고 테스트하는 과정
-개발 단계이기 때문에 실제 데이터를 이용하지 않고 더미 데이터를 이용해서 테스트합니다.

#Integration 단계
- 각자의 컴퓨터에서 작성한 코드를 합치는 과정
-내가 작성한 코드가 다른 코드를 침범해서 오류를 일으키지 않는지, 코드 간에 conflict가 있지는 않은지 확인하는 과정을 거칩니다.

#Staging 단계
-실제 출시 단계인 Production 단계와 가장 유사한 환경에서 테스트를 진행합니다.
-실제 데이터를 복사해서 문제가 있지 않은지 등 다양한 환경에서 테스트를 진행합니다.또한 서비스와 관련된 부서 혹은 인원의 확인 과정을 거칩니다. 
예를 들면 작성된 코드가 마케팅팀 혹은 디자인팀이 예상했던 결과인지 확인을 거치는 과정입니다.


#Production 단계
 -개발된 서비스를 출시하는 단계입니다.
-사용자가 접속할 수 있는 Production 환경에서 코드를 구동하고 서비스를 제공합니다.
-실제 데이터를 가지고 서비스가 운영되기 때문에 문제가 생기면 안 되는 단계입니다.

#
-Development 환경과 Production 환경은 서로 다를 수가 있습니다.
-여러분이 개발부터 배포까지 모든 것을 통제할 수 있는 상황이라면, 크게 걱정 없이 Production 환경을 구성할 수 있을 겁니다.
그러나, 여러 명이 함께 작업하는 프로젝트라면 어떨까요? node 버전도 제각각일 거고, 인증 정보나 데이터베이스 등에 접근하기 위해 사용하는 엔드포인트도 제각각일 겁니다.

예를 들어봅시다. 내 로컬에 설치된 데이터베이스 비밀번호는 rlazheld1234! 인 데, 클라우드에 설치된 데이터베이스 비밀번호는 supersecret! 일 수 있을 거예요.
이 모든 케이스를 코드 안에 담을 수 있을까요? 아니죠. 이처럼 Development 환경과 Production 환경은 서로 다를 수가 있습니다.
마치, 우리나라에서 잘 자라는 식물을 사막 한가운데에서 똑같은 방식으로 재배한다고 잘 자라지 않는 것과 비슷해요.
-따라서 배포에서는, 환경의 차이를 이해하고 환경 설정을 코드와 분리하는 것이 중요합니다.

#
-작성한 코드가 다른 환경에서 정상 작동할 수 있게 하려면, 설정을 환경 변수(envvars나 env라고도 불림)에 저장해야 합니다. 
-환경 변수는 코드 변경 없이 배포 때마다 쉽게 변경할 수 있습니다. 
설정 파일과 달리, 잘못해서 코드 저장소에 올라갈 가능성도 낮습니다.
-코드 상의 모든 곳에 절대 경로가 아닌 상대 경로를 사용해야 하며, `.env` 등을 이용해 환경 변수를 설정하세요. 
-그 외에도 docker와 같은 가상화 도구는 환경 자체를 메타데이터로 담아서 아예 모든 개발 환경을 통일시킵니다.
-배포를 위한 굉장히 다양한 플랫폼들이 있습니다.


출처

코드스테이츠

728x90

'부트캠프교육중 > AWS' 카테고리의 다른 글

[AWS] 프론트엔드 배포 실습  (0) 2023.04.02
[AWS] 백엔드 배포 실습  (0) 2023.04.02
[AWS] 배포 전략  (0) 2023.04.02
[AWS] S3  (0) 2023.04.01
[AWS] RDS  (0) 2023.04.01