: 아마존 웹 서비스(AWS)란 아마존이 자사의 노하우를 살려 제공하고 있는 ‘클라우드 컴퓨팅 서비스’를 의미
: 서버의 자원과 공간 및 네트워크 환경을 제공하며 필요할 때마다 컴퓨팅 능력을 유연하게 조절하는 것이 가능
But 단점
: AWS에서 제공하는 클라우드 컴퓨팅 서비스
: Relational Database Service, AWS에서 제공하는 관계형 DB
: Simple Storage Service, AWS에서 제공하는 클라우드 스토리지
[S3 Glacier]
: 접근성은 부족하지만 장기적인 데이터 보관에 적절
이 외에도 다양한 스토리지 클래스 제공
: 각 리전에서 고유한 이름을 가지는 파일을 담는 바구니 역할로 최상위 디렉토리에 해당하며, 무한 데이터 저장과 버킷 정책 수정을 통한 엑세스 권한 부여가 가능함
Client 배포
📌 AWS의 경우 S3 을 이용해 정적 파일로 빌드 배포 가능
- asset이 정적일 경우 그대로 배포 가능, react의 경우 npm run bulid를 통한 빌드 기능 지원
- Cloud Front (AWS의 CDN) 서비스를 통해 데이터를 가까운 리전에서 가져와 서비스를 사용하도록 배포함
Server 배포
📌 AWS의 경우 EC2를 사용해 서비스를 구성하고 제공 가능
- RDS를 사용해 EC2로 배포된 서버 데이터 제공
DNS
📌 AWS의 경우 Route 53 서비스를 사용해 직관적인 도메인주소를 통해 사용자가 접근할 수 있도록 함
: 사용자가 개발한 서비스를 이용가능하게 하는 과정
[ Development - Integration - Staging - Production ]
Development
: 개발 단계로 코드를 작성하고 해당 코드를 더미 데이터를 사용해 테스트
Integration
: 코드 병합 과정으로 병합 중 발생하는 충돌 확인 및 수정
Staging
: 실제 환경과 유사한 환경에서 실제 데이터를 사용해 테스트를 진행해 확인하는 과정
Production
: 서비스 출시
🔔 실제 서비스 환경과 개발 환경에서의 차이를 고려하면 코드를 분리 작성하는 것 중요
➢ 상대경로 사용, 환경에 따른 분기를 위한 환경 변수 설정
➢ 개발환경을 통일하면 모든 문제 없음