배포란 개발한 서비스를 사용자들이 이용 가능하게 하는 일련의 과정이라고 할 수 있다.
기본적으로 배포는 4단계로 진행이 된다. 다음부터는 배포의 4단계에 대한 설명이다.
1단계 Development
Development 단계는 각자의 컴퓨터에서 코드를 작성하고 테스트하는 과정이다.
개발 단계이기 때문에 실제 데이터를 이용하지 않고 더미 데이터를 이용해서 테스트한다.
2단계 Integration
Integration 단계는 각자의 컴퓨터에서 작성한 코드를 합치는 과정이다.
내가 작성한 코드가 다른 코드를 침범해서 오류를 일으키지 않는지, 코드 간에 conflict가 있지는 않은지 확인하는 과정을 거친다
3단계 Staging
Staging 단계에서는 실제 출시 단계인 Production 단계와 가장 유사한 환경에서 테스트를 진행한다.
실제 데이터를 복사해서 문제가 있지 않은지 등 다양한 환경에서 테스트를 진행하게 된다.
또한 서비스와 관련된 부서 혹은 인원의 확인 과정을 거치게되는데, 예를 들면 작성된 코드가 마케팅팀 혹은 디자인팀이 예상했던 결과인지 확인을 거치는 과정이다.
4단계 Production
Production 단계는 개발된 서비스를 출시하는 단계입니다.
사용자가 접속할 수 있는 Production 환경에서 코드를 구동하고 서비스를 제공합니다.
실제 데이터를 가지고 서비스가 운영되기 때문에 문제가 생기면 안 되는 단계입니다.
배포를 위한 굉장히 다양한 플랫폼들이 있는데, 이번 코드스테이츠에서는 AWS 플랫폼을 이용한다.
AWS의 특징에 대해서는 어떠한 것들이 있을까?
첫번째, EC2란 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스이다.
클라우드 컴퓨팅은 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스이다
정리하면 아마존에서 가상의 컴퓨터를 한 대 빌리는 것과 같다
EC2 서비스도 이런 후불제 PC방과 같이 사용한 만큼비용을 지불하기 때문에 '탄력적인'이라는 의미의 Elastic이라는 단어가 붙어있다.
Elastic은 비용적인 부분뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있는데, 정리하자면 EC2 서비스는 AWS에서 비용, 성능, 용량 면에서 탄력적인 클라우드 컴퓨터를 제공하는 서비스라고 할 수 있다.
EC2 서비스의 장점 중 첫 번째는 구성하는 데 필요한 시간이 짧다는 것이다.
필요한 용도에 따라 다양한 운영체제에 대한 선택이 가능하다는 것이 장점 중 하나이다.
또한 EC2에서는 AMI라는 다양한 템플릿을 제공하고 있어서 필요에 따라 손쉽게 운영체제를 선택하고 구성할 수 있으며, 운영체제뿐만이 아니라 CPU와 RAM, 용량까지도 손쉽게 구성할 수 있습니다.
두번째, RDS는 Relational Database Service의 약자로 AWS에서 제공하는 관계형 데이터베이스 서비스이다. RDS를 이용하면 데이터베이스 유지 보수와 관련된 일들을 RDS에서 전적으로 자동 관리한다. 사용자가 해야 할 일은 초기 설정을 제외하고 데이터베이스에 저장된 데이터를 관리하는 일 밖에 없기에 큰 편의성을 느낄 수 있을 것 이다.
세번째, S3는 Simple Storage Service의 약자로 AWS에서 제공하는 클라우드 스토리지 서비스이다. S3 사용 시 얻을 수 있는 이점으로 높은 확장성이 있다. 확장성이 높으면 많은 시간과 수고를 들이지 않고 스토리지 규모를 확장/축소할 수 있다고 한다.
또한 S3에서는 스토리지의 용량을 무한히 확장할 수 있다. 그리고 사용한 만큼만 비용을 지불하면 되기 때문에 비용적인 측면에서 매우 효율적이다.
S3는 다양한 스토리지 클래스를 제공합니다. 저장소를 어떤 목적으로 활용할지에 따라 효율적으로 선택할 수 있는 스토리지 클래스가 달라집니다.