UrClass의 Achievement Goals중 일부를 정리
클라우드 컴퓨팅이 무엇인지 설명할 수 있다.
클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드(On Demand: 수요 중심 서비스)로 제공하고 사용한 만큼만 비용을 지불하는 것을 말한다. 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, 클라우드 공급자(AWS 등)로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스에 액세스할 수 있다.
클라우드 컴퓨팅은 민첩성, 탄력성, 비용절감, 빠른 배포 가능의 이점을 가진다.
Deployment의 의미를 이해할 수 있다.
Deployment(배포)란 개발한 서비스를 사용자들이 이용할 수 있게 하는 일련의 과정이다.
회사마다 차이는 있을 수 있으나, 기본적으로 Development - Intergration - Staging - Production
의 4단계를 거쳐서 개발한 서비스를 배포하게 된다.
Development
각자의 컴퓨터에서 코드를 작성하고 테스트 하는 과정.
개발단계이기 때문에 실제 데이터를 이용하지 않고 더미데이터를 이용해서 테스트한다.
Intergration
각자의 컴퓨터에서 작성한 코드를 합치는 과정.
내가 작성한 코드가 다른 코드를 침범해서 오류를 일으키지 않는지, 코드간에 conflict가 있지는 않는지 확인하는 과정을 거친다.
Staging
실제 출시단계인 Production단계와 가장 유사한 환경에서 테스트를 진행.
실제 데이터를 복사해서 문제가 있지 않은지 등 다양한 환경에서 테스트를 진행하고, 서비스와 관련된 부서 혹은 인원의 확인 과정을 거친다. 예를 들면 작성된 코드가 마케팅팀 혹은 디자인팀 예상했던 결과인지에 확인을 거치는 과정이 스테이징 단계에 해당된다.
Production
개발된 서비스를 출시하는 단계.
사용자가 접속할 수 있는 Production환경에서 코드를 구동하고 서비스를 제공한다.
실제 데이터를 가지고 서비스가 운영되기 때문에 문제가 생기면 안되는 단계이다.
RDS와 EC2에 설치된 데이터베이스의 차이를 이해할 수 있다.
EC2 인스턴스를 사용하면 데이터베이스와 관련해서 자동으로 관리를 담당하는 부분이 매우 적기에, 사용자가 일일이 시간을 투자하여 데이터베이스 엔진의 설치와 버전 관리, 데이터 백업을 해야한다.
게다가 가용성과 내구성이 확보되지 않기에 데이터베이스에 저장된 데이터가 유실되거나 정상적으로 사용하지 못할 확률이 커지며, 후에 필요에 따라 데이터베이스의 규모를 확장하기 어렵다.
RDS를 이용하면 데이터베이스 유지보수와 관련된 일들을 RDS에서 전적으로 자동 관리한다. 사용자가 해야할 일은 초기 설정을 제외하고 데이터베이스에 저장된 데이터를 관리하는 일 밖에 없기에 큰 편의성을 느낄 수 있다.
기타 RDS 이용 시 얻을 수 있는 장점으로 다양한 데이터베이스 엔진 선택지를 제공한다는 점을 들 수 있다. Amazon RDS는 현재 MySQL, Oracle, SQL Server, PostgreSQL, MariaDB, Aurora(MySQL과 호환)을 비롯한 총 6가지 데이터베이스 엔진을 지원하고 있다.