AWS맛보기에 앞서 Cloud Computing에해 알아보자.
Cloud와 반대되는 개념인 기존의 온프레미스(on-premise)라고 불리는
기존의 서버 방식은 소프트웨어 등 솔루션을 Cloud 같이 원격 환경이 아닌 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식을 말한다.
➊ 주기적인 관리가 필요하다. 서버가 커지면서 관리해야할 컴퓨터가 늘어나고 유지보수에 투입되는 인력 및 비용이 증가 시작했다.
➋ 공간의 한계가 있다. 정해진 공간안에 서버를 추가 하계되면서 공간의 한계로인해 추가적인 서버 증설이 어렵게 되기 시작했다.
거대기업은 온프레미스의 한계로 서버증설이 어렵게 되자 데이터센터라는 건물을 세우게 되었고 남는 유휴 자원을 대여하는 서비스가 등장하기 시작했다. 즉 서버의 자원과 공간, 및 네트워크 환경을 대여해주는 클라우드 컴퓨팅이 시작시작되었다.
➊ 대여할 수 있는 컴퓨터의 성능을 유연하게 조절 할 수 있다.
➋ 초기에 고정비용이 들지않으며, 사용한 만큼의 요금만 지불하면된다.
➌ 컴퓨터의 스냅샷(Image)을 이용해 다른 컴퓨터로 즉이 이주(migration)가 가능하다.
➊ 클라우드 서비스를 사용하면 운영환경자체가 클라우드 제공자에게 종속되게되어, 크라우드서비스에 문제가 생기변 배포 및 관리중인 서비스환경에도 영향을 미칠 수 있다.
➋ 또한, 클라우드 제공자에게 운형환경이 종속된다는것은, 백엔드 구성을 클라우드 특정회사의 기술로만 구성해야하는 경우도 발생할 수 있다.
➌ 클라우드 사업자가 제공하는 기술을 익힐 필요가 있고, 그 인프라 자체를 이해하기위한 추가적인 노력이 필요할 수 있다.
기업관리영역 | IaaS | PaaS | SaaS |
---|---|---|---|
애플리케이션 | 에플리케이션 | ||
데이터 | 데이터 | ||
런타임 | 런타임 | 런타임 | |
미들웨어 | 미들웨어 | 미들웨어 | |
운영체제 | 운영체제 | 운영체제 | |
가상화 | 가상화 | 가상화 | 가상화 |
서버 | 서버 | 서버 | 서버 |
스토리지 | 스토리지 | 스토리지 | 스토리지 |
네트워크 | 네트워크 | 네트워크 | 네트워크 |
✢ IaaS; Infrastructur as Service
✢ PaaS; Platform as a Service
✢ SaaS; Software as a Service
개발한 서비스를 사용자들이 이용할 수 있도록하는 일련의 과정을 말한다.
Development
,Intergation
,Staging
,Production
이렇게 4가지 단계로 구분 할 수 있다.
✅ 더미데이터를 이용하여 각자의 컴퓨터에서 코드를 작성하고 테스트 하는 과정으로 변경사항이 있어도 문제가 되지 않는다.
✅ 개별 환경에서 개발된 부분을 하나로 합치는 과정으로, 서로간의 코디가 침범해서 오류를 일으키는지, 또는 코드간 충돌이 발생하는지 확인한다.
✅ 실제 서비스를 출시하는 단계인 Production단계와 가장 유사한 환경에서 테스트를 진행한다. 실제데이터를 복사해서 문제 발생여부를 확인하고, 서비스 관련부서나 인원들이 확인 과정을 거친다.
✅ 개발된 서비스를 사용자들이 접속할 수 있도록 Production 환경에서 코드를 구동하여 해당 서비스를 제공한다. 실제 데이터를 사용하기때문에 문제가 발생하면 안되는 단계이다.
AWS를 이용한 간단한 배포 도식화이다. 이중 S3, EC2, RDS의 개념에 대해 간략히 알아보겠다.
✅ AWS에서 제공하는 클라우드 컴퓨팅 서비스로서 서버, 스토리지, 데이터베이스 등을 제공한다. 쉽게 말해 가상 컴퓨터를 대여하는 것과 같다. 사용하고자 하는 스펙은 유연적으로 선택이 가능하며 이에 상응하는 비용을 지불하게 된다.
➊ 가상컴퓨터를 구성하는데 드는 시간이 짧다. 2~5분이면 가능하다.
➋ 운영체제부터 CPU, RAM, 용량까지 원하는 성능을 구성가능하다.
➌ 네트워크가 연결된 어떤곳에서든 장소에 구애받지 않고 가상 컴퓨터를 사용할 수 있다.
운영체제, 특정 런타임, 스펙등이 구성이 기재된 템플릿이다. 구성된 AMI 외에도 직접 구성이 가능하다.
AWS EC2에서 AMI를 토대로 가상의 컴퓨를 빌리는 것을 의미한다. 즉 빌린 가상컴퓨터를 인스턴스라고 말할 수 있다.
✅ AWS에서 제공하는 관계형 데이터베이스 서비스이다.
EC2에 직접 관계형 데이터 베이스 엔진을 설치해서 사용해도 데이터관리가 가능한데 RDS를 사용하는 이유는 무엇일까?
인스턴스에 데이터 베이스 설치 | Database 관리사항 | RDS 사용 |
---|---|---|
직접 관리 | 데이터베이스 규모 확장 | AWS가 관리 |
직접 관리 | 가용성, 내구성 확보 | AWS가 관리 |
직접 관리 | 데이터 백업 | AWS가 관리 |
직접 관리 | 데이터 베이스 설치/관리 | AWS가 관리 |
AWS가 관리 | 운영체제 설치/관리 | AWS가 관리 |
AWS가 관리 | 기반 시설 구축 | AWS가 관리 |
📌 데이터베이스의 유지보스 및 규모확장등 관련 작업들에 대한 관리를 RDS에서 해주게되어 시간과 수고를 아낄 수 있다. 추가로 RDS에서는 다양한 데이터 베이스 엔진을 제공한다.
클라우드 스토리지는 네트워크또는 인터넷 공간에 데이터를 저장하는 곳을 말한다. EC2가 가상의 컴퓨터를 빌리는 개념이라면, S3는 가상의 하드디스크를 대여한다고 생각해도 무방할 것 같다. 컴퓨터의 하드디스크에 접근하려면 해당 컴퓨터를 사용해야하지만 클라우드 스토리지는 웹환경어디서든 접근이 가능하고, 웹 접속이 가능한 다양한 기기를 통해서도 접속이 가능한 특징이 있다.
➊ 뛰어난 확장성! 다른 클라우드서비스처럼 스토리지규모를 늘리거나 줄이는게 자유로우며 사용한 만큼만 비용을 지불하면 된다.
➋ 높은 내구성을 보장하여 파일의 유실가능성이 현저히 낮다. 99.999999999%의 내구성보장.
➌ 99.99%의 가용성을 보장한다. 1년에 약 8.8시간 정도 스토리지에 장애가 발생한다는 의미.
➍ 정적 웹사이트의 호스팅이 가능하다.
✅ S3에 저장되는 파일들이 담기는 바구니로 최상위 디렉토리이다.
✅ 파일을 무한히 저장할 수 있다.
✅ 버킷의 이름은 각 지전에서 고유한값이어야한다.
✅ 정책설정을 통해 버킷에 액세스 권한을 부여할 수 있다.
📌AWS에는 리전이라는 개념이 있다. AWS가 전 세계에서 데이터 센터를 클러스터링하는 물리적 위치를 리전이라고 하고, 논리적 데이터 센터의 각 그룹을 가용 영역이라고 한다.
✅ 버킷에 담기는 파일이다.
✅ 객체는 파일과 메타데이터로 구성되며 파일의 값에는 실제 데이터가 저장된다(최대 5TB).
✅ 모든 객체는 고유한 키값을 가지며 식졀자 역할을 한다.
✅ 모든 객체는 고유한 URL을 가지고 있어, URL을 통해 객체에 접근가능하다.
✅ URL 주소형식은 http://[버킷의 이름].S3.amazonaws.com/[객체의 키]
의 형태를 뛴다.