AWS EC2 인스턴스 및 S3 기초개념

2019-02-28

Data Engineering TIL (20190226)

study program : https://www.fastcampus.co.kr/extension_des

[학습목표]

  • AWS EC2 인스턴스와 S3의 이해

[학습기록]

  • 클라우드 와치는 AWS 서비스 사용 시 모니터링을 하기위한 툴로 리소스 사용량 등 다양한 지표를 제공해준다. 사용자는 이 지표를 실시간으로 확인하여 리소스에 대한 필요한 조치를 취할 수 있는 정보를 제공받는것에서 의미가 있다.

  • 탄력적 아이피는 쉽게 말하면 고정아이피를 말한다. 우리가 EC2를 띄우면 퍼블릭 아이피가 주어지는데 이는 다이나믹 아이피이다. 쉽게 말해서 EC2를 중지하고 다시 실행하면 아이피가 변경된다는 것이다. 그런데 우리가 웹서비스를 하게 되면 EC2를 중지했다가 다시 실행해도 아이피가 바뀌면 안된다. 그럴때 쓰는 것이다.

  • 시큐리티 그룹은 서버에 대한 보안을 설정하는 것이다. 이 보안이라고 하는 것은 방화벽을 말하는 것인데 여기에 대한 정책을 사용자가 부여할 수 있다. 보안그룹이 여러개가 있고 각각 이름이 있는데 그 이유는 그냥 SSH로 접속만 할때는 22번포트만 열것이고 HTTP를 쓸때는 또 해당하는 포트를 여는 등의 보안 정책을 보안담당자들이 이 보안그룹을 통해서 만들어 공유를 해준다.

  • 우리가 데이터 분석을 하면 리소스를 통상 융통적으로 사용한다. 리소스를 1개 썼다가 100개 썼다가 이런식으로 할 수 있는데 이런 방식을 scale out 이라고 한다. 이렇게 서버숫자를 늘렸다 줄였다 하는 방식이 요즘에는 많이 쓰이는 방식이다.

  • AWS에서 템플릿은 우리가 EC2를 생성하면서 설정한 내용들을 저장하고 실행 할 수 있는 서비스를 말한다.

  • spot instance는 아마존에서 서버를 무한정으로 만들지는 않는데 이 유한한 서버 중에서 실제 사용자들이 점유하는 것은 100프로가 아닐 것이다. 그렇다면 일부의 서버는 누구도 점유하지 않고 그냥 휴무상태인데 이 놀고있는 서버를 어떻게 활용할 것인가라는 고민에서 나온 개념이다. 그래서 이 남는 서버들을 사용자들에게 경매원리로 원래 이용요금보다 싸게 제공하는 것을 말한다. 보통 70 ~ 80% 싸게 저렴한것은 90% 싸게 제공하는 경우도 있다. 통상 서비스를 사용하는 해당지역의 오래된 서버들의 리소스를 제공하다보니 조금 느릴 수도 있다. 실무에서 데이터 분석 시에 자주 활용하는 편이다. 한마디로 정리하면 spot instance는 저렴한 EC2자원이라고 할 수 있다.

  • spot instance를 한꺼번에 많이 쓰는 경우에는 내가 사용하는 도중에 중간에 리소스들이 강제로 terminated되는 경우도 있다. 예를들어 어떤사람이 500대를 온디멘드로 빌리면 spot pool이 부족한 상황이 발생 할 수 있다. 그러면 지금 spot instance를 사용하고 있는 사람들에게 경고알림을 통보하고 사용자가 어떤 액션을 취하기 전에 terminated 될 수 있다.

  • 템플릿과 이미지가 비슷한 개념인데 두개는 차이가 있다. 템플릿은 기존에 저장한 설정내용의 인스턴스를 다시 실행하고 기존에 지정한 스크립트만 실행하는 반면에 이미지는 스크립트는 실행하지는 않지만 거기에 들어가있는 디스크도 이미지로 복사해버린다. 템플릿은 디스크를 복사하지는 않는다. 다시말해서 이미지는 디스크를 그대로 본떠서 하나의 이미지로 만드는 것이고 템플릿은 실행했던 순서대로 실행한 내역을 저장하고 있다가 EC2 실행할때 그대로 작업한다.

  • 통상 데이터 레이크를 언급할때 통상 AWS에서는 S3를 활용한다. 쉽게 말해서 데이터 스토리지며 데이터는 전부 S3에 저장한다는 개념이다. 구조는 버킷과 객체로 이루어져 있다. 버켓은 root단의 폴더를 말하는 것이고 객체는 그 안에 있는 파일들이라고 생각하면 된다. S3는 액세스 빈도에 따라서도 옵션을 다르게 줘서 관리할 수 있다. 옵션을 다르게 줄때마다 가격도 다르게 책정된다. 참고로 버켓이름은 그 지역안에서 유니크해야한다. 또한 버켓의 내용도 다른 버켓으로 공유가 가능하고 접근권한도 관리할 수 있다.

  • EC2에서 S3를 연결하는것을 mount한다고 부른다. EC2입장에서는 물리적으로 떨어져 있는 S3에서 데이터를 가져오는데 논리적으로는 EC2 옆에 붙어있는것처럼 하는 것이다. EC2에서 S3로 접근해서 데이터를 조작할 수 있다. EC2에서 컴퓨팅을 하고 소스는 S3에서 가져오는 형태이다.

  • EC2에서 S3를 접근할 수 있는 권한 역시 존재한다. 읽기만 하게 할 수도 있고, 읽고 쓰고 전체 권한을 다 줄수도 있다.