AWS

Creating the dots·2021년 9월 16일
0

AWS

목록 보기
1/7
post-thumbnail

Elastic Compute Cloud (EC2)

쉽게 생각하면, 우리가 고사양 게임을 할때, 집에 직접 pc를 구매해서 하는게 아니라 pc방에서 시간당 금액을 지불하며 사용하는 것과 같다고 할 수 있다. 즉, EC2는 우리가 원하는 성능과 용량의 가상 컴퓨터를 대여해주는 서비스이고, 우리는 그 컴퓨터를 원격제어로 조작할 수 있다.

Amazone Machine Image (AMI)

서버에 필요한 운영체제와 여러 소프트웨어들이 적절히 구성된 상태로 제공되는 템플릿이다. 단순히 운영체제만 깔려있는 템플릿을 선택할 수도 있고, 특정 런타임이 설치되어있는 템플릿이 제공되는 경우도 있다.

key pair

키페어는 퍼블릭키와 프라이빗키로 구성되며 이 둘을 사용해 SSH를 통해 인스턴스에 접속할 수 있다. 아래 그림에서처럼 새 키페어 생성을 선택하고 키페어 이름 지정하고, 키 페어 다운로드를 클릭하면 프라이빗키 파일이 다운로드된다. 이 파일을 안전한 위치에 저장되어야하는데, 만약 이 파일이 없어진다면 다시는 해당 인스턴스에 접속할 수 없다.

인스턴스 중지, 종료

인스턴스 상태를 stop(중지)한 경우, 컴퓨터를 끄되, 데이터는 남아있는 상태이다. 이때, 저장장치에 대한 비용만 든다. 인스턴스 상태에 다시 접속한 경우, 새로운 ip 주소가 부여되기 때문에 기존에 세팅해놓은 방법 그대로 접속할 수 없고, 접속하는 방법을 재설정해줘야한다. 재설정한다는 것은, 인스턴스에 재연결해줘야한단 뜻이다.

인스턴스 상태를 terminate(종료)한 경우, 인스턴스가 삭제되고, 데이터도 모두 삭제되므로 복구할 수 없게 된다. 인스턴스가 삭제되었으므로 더이상 과금되지 않는다.

Simpe Storage Service (S3)

클라우드 서비스란, 구글 드라이브, 네이버 MYBOX처럼 인터넷 공간에 데이터를 저장하는 저장소를 말한다. 클라우드 스토리지는 "뛰어난 접근성"을 가지고 있다. 구글 드라이브를 예로 들면, 구글에 로그인이 되어있다면 휴대폰, 노트북, 패드 등으로 언제 어디서나 드라이브에 저장된 파일에 접근할 수 있다.
S3가 AWS에서 제공하는 클라우드 스토리지 서비스이다.

S3의 장점?

  • 뛰어난 접근성
    웹 환경이라면 언제 어디서나 저장된 파일에 접근할 수 있다.

  • 무한한 확장성
    시간과 수고를 들이지 않고 스토리지 규모를 확장/축소할 수 있다. 또한, 스토리지의 용량을 무한히 확장할 수 있는데, 사용한 만큼만 비용을 지불하면 되므로 비용적인 측면에서도 매우 효율적이다.

  • 강력한 내구성
    스토리지의 내구성이 높아 저장된 파일이 유실될 확률이 매우 낮다.

  • 높은 가용성
    가용성이란 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도를 말한다. 가동률과 비슷한 의미이다. 가용성을 수식으로 표현할 경우, 가용성이란 정상적인 사용 시간을 전체 사용 시간으로 나눈 값을 말한다. 이 값이 높을수록 "가용성이 높다"고 표현한다.
    AWS는 리전마다 2개 이상의 Availability Zone(가용영역)을 보유하는데, 이를 통해 한 곳의 가용영역이 자연재해 등으로 가동이 불가능해지더라도 다른 가용영역에 백업해놓은 데이터를 활용할 수 있으므로 내구성과 가용성이 높다고 할 수 있다.

  • 다양한 스토리지 클래스 제공

    • S3 Standard
      가장 일반적으로 사용되는 스토리지 클래스로 빠른 속도로 데이터에 접근하고 요청에 대한 속도도 빠르다. 대신 데이터를 오래 보관하면 보관 비용이 많이 발생하므로, 데이터의 장기간 보관 목적으로는 효율적이지 않다.

    • S3 Glacier
      저장된 데이터에 액세스하는 속도는 느리지만, 데이터 보관비용이 저렴해 장기보관에 적합하다.

    • 이 외에도 Standard-IA, One Zone-IA, S3 Glacier Deep Archive 등등 여러 스토리지 클래스가 존재하며 사용자의 이용 목적에 따라 사용할 수 있다.

  • 정적 웹 호스팅이 가능하다

    • 정적파일
      서버의 개입없이 생성된 파일
    • 동적파일
      클라이언트가 서버에 요청을 보내면, 서버가 그 자리에서 생성한 파일을 '동적파일'이라고 한다.
    • 웹호스팅
      서버의 한 공간을 임대해주는 서비스이다. 웹 호스팅 업체를 통해 개인 또는 단체가 서버의 한 공간을 빌려 원하는 서비스를 배포할 수 있다.
    • 버킷
      파일을 담는 바구니로 파일을 저장하는 최상위 디렉토리이다. S3에 저장되는 모든 파일은 버킷안에 저장되어야하고, 버킷에는 무한한 양의 파일을 저장할 수 있다. 버킷은 리전에서 유일한 이름을 가져야한다. 버킷 정책을 생성해 해당 버킷에 대한 유저의 접근 권한을 수정할 수 있다.

버킷

S3 는 버킷이라는 최상위 디렉토리들이 있고, 버킷에는 파일을 담을 수 있는데, 이때 이 파일을 우리는 객체(object)라고 부른다. 객체는 파일과 메타데이터로 구성되고, 파일은 키-값 페어 형식으로 데이터를 저장한다. 키는 각각의 객체를 고유하게 만들어주는 식별자 역할을 하며, 파일의 키를 이용해 원하는 객체를 검색할 수 있다. 파일의 값에는 실제 데이터가 저장되고, 최대크기는 5TB이다.

메타데이터는 객체의 생성일, 크기, 유형과 같은 객체에 대한 정보가 담긴 데이터로 객체를 설명하는 데이터다.

모든 객체는 고유한 URL을 주소를 갖고, 이를 통해 객체에 접근할 수 있다. URL주소 형식은 http://[버킷의 이름].S3.amazonaws.com/[객체의 키]이다.

Relational Database Service (RDS)

AWS에서 제공하는 관계형 데이터베이스 서비스

EC2 인스턴스에 MySQL과 같은 관계형 데이터베이스 엔진을 설치하면 굳이 RDS를 사용할 필요가 있을까? 왜 굳이 따로 RDS를 분리해서 사용하는 걸까?

첫째, RDS에서 데이터베이스 유지보수와 관련된 일들을 자동으로 관리한다

RDS를 사용하는 것은 렌트카를 이용하는 것과 유사하다. 우리가 렌터카 회사에서 차량을 대여하면 유지보수, 보험처리, 정비, 세차 등은 관여하지 않아도 된다. 즉, RDS를 사용하면 우리가 해야할 일은 초기 설정을 제외하고 데이터베이스에 저장된 데이터를 관리하는 일밖에 없어 편리하다.

반면, EC2 인스턴스에 데이터베이스를 설치해 데이터를 관리하는 것은 자차를 보유하는 것과 같은데, 앞서 언급한 모든 일들을 직접 관리해야한다. 이처럼 EC2 인스턴스에 데이터베이스를 직접 설치할 경우, DB 설치부터 버전관리, 데이터 백업 등을 모두 직접해야한다. 또한 가용성과 내구성이 확보되지 않아 데이터베이스에 저장된 데이터가 유실될 수 있고, 필요에 따라 데이터베이스 규모를 확장하기가 어렵다.

둘째, 다양한 데이터베이스 엔진 선택지를 제공한다

사용자/회사에게 필요한 데이터베이스 엔진(ORACLE, AMAZONE AURORA, SQL Server, MySQL, MariaDB, PostgreSQL)를 선택할 수 있다.

profile
어제보다 나은 오늘을 만드는 중

0개의 댓글