AWS란? 아마존 웹 서비스의 구조, 기술,비용, 장점
본문 바로가기
AWS

AWS란? 아마존 웹 서비스의 구조, 기술,비용, 장점

by 쏠수있어ㅤ 2021. 12. 21.
반응형

 

 

 

 

 

AWS, Amazon Web Services 

말 그대로 아마존이 제공하는  "Web, 웹 사이트" 운영에 필요한 서비스, 

컴퓨팅, 스토리지, 데이터베이스 등을 다양한 서비스가 준비되어 있는 '클라우드 컴퓨팅 서비스' 이다. 

시스템 운영에 필요한 서비스(OS 운영체제, 웹 서버, 데이터베이스 서버 등등) 가 거의 대부분 있기 때문에 aws 한 곳만을 이용하더라도 내가 필요한 분야를 통째로 편리하게 사용할 수 있다. 현재 기준 약 165개의 서비스를 제공 중이다. 

 

 

* 클라우드 컴퓨팅 서비스란 ? 

서버 및 네트워크 등을 인터넷으로 빌려주는 서비스로, "인터넷"만 있다면 언제 어디서든지 사용할 수 있다. 

 

 

 

 

AWS의 요금, 가격은?

"사용한 만큼 지불" 한다. 

필요한 만큼만 사용하고 더 추가로 필요하면 그 때 늘리면 되는 장점이 있다. 한국어가 지원되고 원화 결제로도 가능해서 편리하다. 실제로 작은 어플을 만들어 배포했을 때 사용자가 일주일동안 평균 10명이었을 때 월 1만원 정도가 청구되었었다. 

테스트하는 나와 팀원들만 거의 사용하고 실제 사용량은 정말 없었는데 나의 예상보다 비싼 느낌이 있었다. 가장 기본 요금으로 측정되는건지는 잘 모르겠지만 나중에 더 사용해보고 가성비가 어떤지 알 수 있을 듯 하다. 근데 요 어플은 중지시켰는데 아직도 월 3,000원 정도가 나간다. 이 부분은 나중에 다시 분석해서 포스팅을 올려봐야겠다.

 

=> 이 부분에 대해 찾아보니 항목별로 '최저 요금'이 정해진 것도 있어서 사용한게 아무리 적더라도 최저 요금으로 계산되어진 것 같다. aws의 비용은 초기비용이 있지않아서 처음에는 가성비 좋다고 느낄 수 있지만 점차 서버가 커지고 몸집이 크면 러닝 비용 등 숨만 쉬어도 나가는 비용이 쌓여 꽤 비싸진다고 한다. 

 

참고한 책 : 그림으로 이해하는 aws 구조와 기술

 

그래도 다른 모든 부대비용, 전문 인력 고용 및 지속적인 교육 등을 생각하면 aws 비용을 합리화(?) 시킬 순 있을 것 같은 느낌. 

 

* aws 1년 무료 프리티어

aws을 처음 시작하시는 분들은 프리티어로 1년동안 소규모 ec2인스턴스, 5gb의 s3 스토리지 등을 무료로 사용해보고 aws의 서비스를 체험해 볼 수 있다. 

https://aws.amazon.com/ko/free 

 

무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어

Internet Explorer에 대한 AWS 지원이 07/31/2022에 종료됩니다. 지원되는 브라우저는 Chrome, Firefox, Edge 및 Safari입니다. 자세히 알아보기

aws.amazon.com

 

 

* aws 요금을 예상해볼 수 있는 계산기 

https://calculator.s3.amazonaws.com/index.html

 

Amazon Web Services Simple Monthly Calculator

This Calculator provides an estimate of usage charges for AWS services based on certain information you provide. Monthly charges will be based on your actual usage of AWS services, and may vary from the estimates the Calculator has provided. Give us your f

calculator.s3.amazonaws.com

 

 

AWS의 장점 

 

1) 전문 인력에 대한 부담 축소 / 보안 기준 준수

실무에 직접 들어오니 생각보다 아주 많은 서비스를 aws에 의지하고 있었다. 그래서 aws에 대해 더 자세하게 꼼꼼하게 배워야겠다는 생각이 들었다. 스타트업, 중소기업의 입장에서는 웹 운영을 위한 모든 서비스를 회사 자체가 인력을 충당하여 유지 보수하기는 어려울 수 있지만 aws 서비스를 사용하면 이러한 (네트워크, 데이터베이스, 보안 등의) 전문 인력에 대한 부담이 적어진다. aws자체 글로벌 규정을 철저하게 준수하는 보안 기준을 가지고 있고 각각의 분야에 전문 인력을 충분히 가지고 있기 때문이다. 대기업, 정부기관에서도 aws를 사용하는 사례가 많아지고 있다고 한다. 

=> aws : "운영은 내가 할게, 너넨 관리자도, 전문적인 기술자도 없어도 돼~"

 

2) 한국어 패치 완료 / 원화 결제 가능

위 사진에서와 같이 aws는 한국어를 지원하고 원화 결제 또한 가능하다. 해외 결제 가능한 국내 카드를 가지고 등록해주면 된다. 

 

 

3) 글로벌 확장에 용이

aws는 전 세계 21개 지역의 66개 시설에서 운영하고 있다. 해외로 서비스를 확장할 경우 사이트 방문자 및 시스템 사용자가 가까이에 있는 지역에서 서비스를 쉽게 틀 수 있다. 

 

 

4) 목적에 따라 다양한 서비스를 제공 

약 165개 이상의 서비스 중 나의 목적에 따라 필요한 서비스만 골라서 사용할 수 있다. 

 

 

 

 

 

AWS의 대표적인 서비스

 

1. Amazon EC2

 

2. Amazon S3

 

3. Amazon VPN

 

4. Amazon RDS

 

5. Amazon Route 53

 

6. Elastic IP 주소 

 

7. Amazon Managed Blockchain

 

8. Amazon SageMaker

 

9. AWS Cloud9

 

10. Amazon GameLift

 

 

 

 


 

 

 

Cloud, 클라우드란? 

언제, 어디서든 인터넷을 통해 접근이 가능한 곳 = 클라우드 

ex) 네이버 클라우드, Microsoft Office365 등등

 

일상 속에서 이미 자주 접한 익숙한 서비스이다. 예를 들면 핸드폰의 용량이 꽉차서 네이버 또는 구글 클라우드에 사진을 저장하고 내 핸드폰의 사진을 모두 지워 다시 용량을 만들어 내는 경우이다. 노트북 또는 태블릿, 아니면 새로 산 핸드폰 등 어떠한 디바이스로도 인터넷만 된다면 내가 저장한 클라우드 환경에서 다시 나의 사진들을 다운받을 수 있다. 하드웨어 및 네트워크 등 물리적인 설비를 직접 가지고 있지 않아도 되는 아주 편리한 서비스이다. 

 

뇌피셜이지만 클라우드 = Cloud 구름으로 이름지어진 이유도 위의 이유이지 않을까 싶다. 데이터를 구름에 저장해두고 내가 어디에 있던 다시 위에있는 구름에서 나의 저장 공간을 찾기만 하면 되니까(?!)

 

 

 

On-Premises, 온프레미스 vs 임대

온프레미스란 자사가 스스로 서버 등을 구축하는 것

데이터 센터에 서버를 두기만 해도 온프레미스로 여겨진다. 네트워크나 장소를 임대하는 경우는 온프레미스이다. 

자사에서 운영하므로 자유로운 설계 및 운영이 가능하지만 그만큼 서버 구성을 빈번하게 변경해야할 가능성도 있고 이러한 업무를 도맡을 전문 기술자들도 필요하다. 

 

서버만 임대하는 것을 임대 서버라고 부른다. 

기본적으로 서비스를 제공하는 측에서 유지 보수를 해주기 때문에 회사에서 직접 서버를 관리할 필요도, 관리를 할 기술자도 없어도 된다. 하지만 서비스 제공 회사의 규정, 제한이 있는 경우 자유롭지 못하고 비용이 증가한다.

 

 

 

공용 클라우드 vs 사설 클라우드

- 공용 클라우드란 aws처럼 임대하는 클라우드

- 사설 클라우드는 자사에 직접 구축해 놓는 클라우드

 

 

 

 

클라우드를 지탱하는 두 가지 기술 

 

1) 가상화 

컴퓨터가 어떤 작업을 하려면 물리적인 하드디스크, 메모리, OS 등 다양한 부품이 필요하지만 이 모든 것을 소프트웨어로 대체하는 것

ex) 물리 서버 1대 위에 게스트가 되는 서버 여러대를 가상으로 생성, 네트워크도 마찬가지 

 

소프트웨어처럼 구축하기 때문에 서버 복제가 쉽고 대수를 늘리거나 줄이기도 쉽다. 가상 서버에 할당된 메모리와 스토리지는 자유롭게 늘리거나 줄일 수 있으나 가상 서버의 성능을 올리는 것은 한계가 있다. 

 

2) 분산 처리와 로드 밸런서 

분산 처리란 기기 여러 대에 분산하여 처리하는 방법을 말한다.

접속이 갑자기 증가할 수 있는 아마존, 거대한 사이트 등과 같은 경우, 같은 기능, 정보를 가진 서버 여러 대에 분배하여 요청들을 처리하면 서버 1대의 부담을 줄이고 과부하를 막을 수 있다. 

 

서버 여러 대에 분배하는 장치를 로드 밸런서 (LB)라고 한다. 로드 밸런서는 각 서버를 확인하여 부하를 분산한다. aws는 Elastic Load Balancing을 제공 중이다. 

 

 

언제든지 마음대로 서버나 인프라를 구축할 수 있는 클라우드는 위와 같이 "가상화"와 "분산 처리"에 의해 지탱되고 있다. 

 

 

 

 

클라우드의 서비스 제공 형태 

On-Site vs Iaas vs Paas vs Saas vs Eaas

On-site

본인이 알아서 모든 것을 한다. 

 

Iaas (Infrastructure as a Service) 

인프라만 제공한다. 즉, 네트워크 or 서버 머신 등을 제공

사용하려면 세팅이 필요하다. 

서버 관리에 대한 지식이 필요하다. 

경우에 따라서는 애플리케이션을 준비해야 할 필요가 있다.

자유도가 높다. 

 

Paas (Platform as a Service)

플랫폼까지 제공한다. OS가 설치된 서버에 사용자가 애플리케이션을 설치해서 사용. ex)임대 서버

애플리케이션을 마음대로 설치할 수 있지만 대응하지 않는 애플리케이션도 있다. 

서버 관리에 대한 지식이 필요하다. 

경우에 따라 애플리케이션을 준비해야 할 필요가 있다. 

 

Saas (Software as a Service) 

인프라, 플랫폼(OS)뿐만 아니라 애플리케이션까지 제공한다. 

편리한 반면 자유도가 낮다. 

단말기만 있으면 바로 사용 가능하여 작업량이 적다. 

특별한 지식이 필요 없다. 

 

Eaas (Everything as a Service) == Xaas 

네트워크를 통한 통신부터 소프트웨어까지 제공하는 서비스. ex) AWS 

 

 

* 그 되의 클라우드 서비스의 형태들 (계속해서 생겨나고 있음) 

Daas (Desktop as Service) 

클라이언트 PC (일반 PC) 환경을 가상화하여 네트워크에 구축하는 서비스 

사용자는 네트워크를 통해 원격으로 사용 -> 어떠한 PC이든지 같은 PC환경을 사용할 수 있다. 

ex. 회사 PC를 Daas화하여 회사에서도, 집에서도 같은 환경에서 작업하는 것

 

Faas (Function as a Service) 

함수를 설치하면 실행되는 서비스

서버리스라는 시스템으로 aws Lamda가 Faas에 해당한다. 

 

 

 

 


 

 

 

 

Server & Instance, 서버와 인스턴스 

server, 서버란 ? 

말 그대로 어떠한 서비스를 제공하는 것

 

서버 기능을 갖춘 컴퓨터 (물리적인 서버 머신, 서버를 설치하는 컴퓨터 자체도 '서버'이다.)에 OS가 동작하고, OS위에 소프트웨어가 동작한다. 웹 서버용 소프트웨어를 설치하면 웹 기능을 갖게 되고 메일 서버용 소프트웨어를 설치하면 메일 기능을 갖게 된다. 서버는 같이 사용할 수 있고 제한도 없지만 컴퓨터 한 대에 소프트웨어 여러 개를 같이 사용하는 경우는 별로 없다. 

~ 서버를 만드는 것 = ~용 소프트웨어를 설치하고 해당 기능을 갖추는 것 

평소 우리가 쓰는 PC도 서버로 사용하는 것이 가능하지만 서버는  24시간 가동하는 것을 전제로 하기 때문에 불필요한 기능은 생략하고 잘 고장나지 않는 부품으로 구성되어 있다. CPU, 메모리, 메인보드, 스토리지 (HDD, SSD) , OS 등 필요한 것들만으로 구성되어 있다. 

 

구성 항목 설명
CPU PC의 두뇌,  제어, 연산 등의 처리, 프로그램 실행 담당 
메모리 (메인 메모리) 일시적인 기억 장치 
CPU에는 기억 장치가 없어서 프로그램을 실시할 때 데이터의 저장 장소로 사용
사용자가 입력한 데이터, 파일 읽기, 네으퉈크 통신 읽기 등을 처리 
메인보드 전자 회로 기판 - CPU 및 메모리, 스토리지를 연결
스토리지 보조 기억 장치 (HDD, SSD) 
메모리에 저장된 내용은 전원이 꺼지면 지워진다. 영구적으로 남기고 싶은 데이터는 스토리지에 저장
OS 컴퓨터를 움직이기 위한 시스템 
하드웨어와 OS 위에서 동작하는 소프트웨어 사이에서 중간 역할
서버에도 OS가 필요하다. 

 

 

Instance, 인스턴스란?

aws에서는 서버를 임대하는 서비스로 EC2가 있다. EC2에서 서버는 "인스턴스"로 생성된다. 이는 실제 가동되고 있는 가상화 컴퓨터이다. 

인스턴스 = 가상 서버

 

 

 

 


 

 

LAN,  Local Area Network

집이나 회사에서 나의 컴퓨터 또는 서버를 네트워크에 연결하여 서로 이어지게 만드는 방식을 LAN이라고 한다. 

유선 LAN - 네트워크 케이블을 유선으로 연결

무선 LAN - 네트워크 케이블을 무선으로 연결 

사내 LAN - 회사 내에 설치된 네트워크 

   - 사내 LAN의 경우 외부 인터넷과 연결된 경우도 있고 아닌 경우도 있다. ex. 은행 등 - 이러한 폐쇄된 네트워크 범위가 인트라넷이다. 

 

LAN 구성 기술
라우터, router 네트워크의 출입구 부분에 존재, 들어온 데이터의 목적지를 확인하고 목적지의 가까운 또 다른 네트워크로 보낸다.
허브, hub 네트워크의 배선을 분할한다. 같은 네트워크의 다른 단말기에 (라우터에서 받은)데이터를 전송
방화벽, FW (fireWall) 들어오고 나가는 데이터를 확인하고 통신 여부를 조정하는 장치.
부정한 장소에서의 접속을 방어하고 보안을 강화시킨다. 방화벽이란 따로 기계가 있는 것이 아니라 역할 자체에 지어진 이름으로 실제 기기는 라우터, 서버, 전용 기기 등이 있다. 
비무장지대, DMZ 외부 네트워크(인터넷)과 사내 네트워크의 중간에 설치하는 네트워크
양쪽에서 모두 접속이 가능한 서버를 설치한다.
DHCP 접속되어 있는 단말기에 자동으로 IP주소를 분배하는 방식
서브넷 한 네트워크를 작게 분할한 네트워크

 

 

 

 


 

 

 

IP 주소와 DNS 

Internet Protocol, IP 주소란 ? 

서버, 네트워크, PC 등 호스트를 구별하는 주소 / 이름표와 같은 기능을 한다. 

네트워크에 접속되어 있는 한 호스트(pc or 폰 등등) 1대에 최소 1개가 필요하다. 개인 ip는 유동적으로 할당되지만 24시간 사용자에의해 사용되어야하는 서버 ip는 고정되어야 한다. 

aws의 경우 Elastic IP라는 ip주소가 있다. 

 

공인 IP 주소 - 인터넷에서 사용되는 것, 전 세계에 어떤 것도 중복되는 일은 없다. 예를 들면 www.naver.com는 세계 어디에 가더라도 한국의 네이버가 나온다. 

사설 IP 주소 - 가정 또는 회사와 같이 큰 단위로 공인 IP를 할당하고 이 안의 PC들은 가정 / 회사 안에서만 통신하는 IP를 할당 받는다. 

 

 

 

Domain Name System, DNS란 ?

보통 네이버를 요청할 때 www.naver.com이라고 입력한다. 쉽고 이용하기 편리하게 ip주소를 naver.com으로 등록한건데 이를 DNS라고 한다. 쉽게 생각하면 아래와 같은 전화번호부와 같다. 사용자는 외우기 쉬운 url로 주소를 입력하고 DNS는 해당 ip 주소로 응답을 준다. aws에서는 Route 53 이 해당 DNS서비스를 제공하고 있다. 

이름 전화번호
홍길동 010-1111-2222

=

url 도메인 ip
www.naver.com 223.130.200.104
www.google.com 172.217.31.142

 

 

DNS 용어 

DNS 용어
Resolver 도메인 이름과 IP주소를 상호 변환하는 것을 말함 
라운드로빈 호스트명 하나에 IP주소를 여러 개 할당하고 IP 반환을 요청하면 제일 앞쪽 IP부터 연결하려는 특성을 이용하여 접속할 때마다 IP주소 반환 순서를 바꾸는 방식으로 IP 주소를 변경시킬 수 있다. 접속 대상의 IP 주소가 복수이기 때문에 서버 여러 대에 분산하는 것이 가능하다.
트래픽 흐름 서버의 부하와 가장 효율이 좋은 서버의 IP주소를 반환하도록 조정하는 것을 말한다. 
지연이 적은 서버에 전송하는 지연 시간 기반 라우팅, 지리적으로 가까운 서버에 전송하는 Geo DNS, 서버의 가동 여부를 체크하여 가동되고 있지 않는 서버에 할당하지 않는 DNS페일 오버(장애 극복 기능)를 조합하여 구성한다. 
호스트 영역 DNS의 설정 단위로 도메인 전체 혹은 서브도메인을 말한다.
레코드 도메인 및 서브도메인에 설정하는 항목으로 설정 하나당 도메인과 IP 주소를 변환하기 위한 내용이 한 개씩 기록되어 있다. 
쿼리 DNS에 대한 요청을 말한다.

 

 

Route 53 (DNS 서비스 제공) 요금 

호스트 영역별 기본 요금 + 쿼리 건수에 대한 요금 + 상태 확인 요금 

 

 

 


 

 

 

웹의 구조

HTML과 웹 브라우저 구조

웹 사이트의 콘텐츠는 html을 사용하여 우리에게 보여진다. html에 기술되어 있는 것은 문자와 구조뿐, 이미지는 별도의 파일로 저장되고 해당 이미지의 장소만 (주소) 만 쓰여있다. 각각의 파일로 저장하는 문서와 이미지를 웹 브라우저에서 조합하여 하나의 페이지로 완성시켜 보여준다. 

 

웹 서버의 구조 

html이나 이미지 파일을 저장하고 있는 것은 웹 서버이다. 

웹 사이트를 열람할 때 웹 브라우저로 보고 싶은 웹 사이트의 url에 접속하면 웹 서버에서 해당하는 파일을 웹 브라우저로 보낸다. 

 

웹 사이트 공격 방법

불특정 다수가 이용하는 웹 사이트는 보안의 취약점을 이용한 공격 방법들이 존재한다. 

공격 방법 설명
멀웨어, malWare 부정하고 유해한 의도로 만들어진 악성 소프트웨어나 악성 코드이다. 
ex. 바이러스, 트로이 목마, 웜, 봇, 스파이웨어, 키로거, 백도어 등
XSS, Cross-site Scripting 방문자의 웹 브라우저에 악의적인 스크립트를 심는 공격
CSRF, Cross-site
Request Forgery
== 이미지 태그 공격
사이트간 위조 요청
사용자의 의지와 무관하게 변조한 폼의 데이터를 특정 서버에 요청하여 처리하도록 유도
SQL 인젝션 sql 쿼리문을 송신하여 데이터베이스에 부정한 조작을 하는 공격
세션 하이재킹 세션을 도용하여 다른 사람인 척 하는 공격
DoS 공격 표적 서비스에 부하를 발생시켜 서비스를 중지되도록 하거나 방해하는 공격
패스워드 크래킹 서버의 패스워드 파일에 접속하거나 전송되는 패스워드를 도용하거나 패스워드를 알아내는 공격

 

 

 

 


 

 

 

aws cli 란 ? 

aws Common Line Interface

로컬의 명령어 단말기 or 서버에서 명령어나 스크립트로 aws서비스를 빠르게 수행하기 위한 cli (= 명령줄 환경) 이다. 

aws의 서비스 설정, 조작은 '관리 콘솔'에서 시각적으로 할 수 있지만 스크립트를 작성해서 여러 가지 조작을 한 번에 실행하거나 좀 더 자동화, 프로그램화된 방법으로 조작할 경우는 aws cli가 편하다. 

 

 

 

 


 

 

 

 

AWS IAM & 접근권한

aws Identity and Access Management 

각 서비스에 대한 접속을 관리하는 기능

aws iam 은 aws의 인증 방식이다. aws는 서비스 여러 개를 사용하기 때문에 적절한 관리를 위한 인증 방식이 필요하다. IAM에는 사용자 외에 그룹이나 역할이 있고 일괄로 관리하기 쉽게 되어 있다. 

IAM 자체에는 추가 요금이 들지 않는다. 

 

IAM 사용자 - 사람에 대해 부여하는 IAM

IAM 역할 - 서비스나 프로그램 등에 부여하는 IAM 

 

IAM 그룹화 장점 : 같은 권한을 부여하고 싶은 사용자를 일괄로 관리할 수 있음 

IAM 정책 : 실행자가 어떤 서비스에 접속할 수 있는지 정해진 규칙을 설정하는 기능 - 이미 aws가 만든 정책들이 있는게 이걸 사용하면 편리하다. 실수할 여지가 줄어든다.

 

 

 

 

 


 

 

 

 

Amazon CloudWatch

: Amazon EC2의 리소스 상태 감시

24시간 정상적으로 작동해야하는 서버를 모니터링해주는 서비스

aws의 각 서비스에서 지표, 로그 등을 수집 기록한다. 임계값을 넘으면 알려준다. (어떤 작업을 수행할지 설정 가능) 

CloudWatch로 CPU 사용률, 볼륨의 읽기 쓰기 횟수, 바이트 수, 네트워크 송수신 패킷 수 등을 감시할 수 있다. 

기본 요금없이 종량제 요금제로 사용한 만큼 지불한다. 

 

AWS CloudTrail이라는 감사 audit 서비스를 활성화하면 누가 어떤 리소스에 접근했는지 기록으로 남길 수 있다. 

 

 

 

 

 


 

 

 

 

AWS Billing and Cost Management

비용 관리에 도움을 주는 서비스

현재 사용하는 비용 확인 가능, 상한을 정하고 경고 알림도 가능 

 

 

 

 

 


 

 

 

 

리전과 가용 영역 

: 전 세계 25개의 지역에 서버와 데이터 센터를 가지고 있다. 

서울도 그 중 하나이다. 하지만 아직 서울 리전에서 사용할 수 없는 서비스가 있긴하다. 이런 경우 리전을 다른 곳으로 설정해서 해당 서비스를 사용한다. 또는 비용을 따져봐서 더 싼 곳으로 하는 경우도 있다. 

 

 

 

 

 


 

 

 

 

서버 서비스 : Amazon EC2

Amazon Elastic Compute Cloud

컴퓨팅 용량을 제공하는 서비스 == 서버에 필요한 세트를 클라우드에서 빌려 나의 서버를 만들기 

클라우드는 하드웨어의 구성과 OS의 조합을 탄력적으로 선택할 수 있고 구축이 쉽다. 

( !== 임대 서버는 이미 만들어진 서버 기계 / 기능을 빌리는 것 )

 

* EC2 는 Managed 서비스가 아니다. 서버 및 네트워크 운영은 aws의 담당이지만 OS, 소프트웨어 등은 사용자가 직접 설치하고 운영한다.

 

클릭으로 바로 생성할 수 있고 또 바로 삭제가 가능하다. 복제, 스케일 아웃(동일 서버를 여러 개 늘려서 수평으로 확장), 스케일 다운(기존 시스템보다 작은 용량의 시스템으로 줄이는 것)의 기능도 있어 이벤트 사이트 등 일시적으로 접속이 증가하는 경우에 적합하다. 초기에 사용량이 얼마나 될지 잘 모를 때, 불확실성이 높을 때 유용하다.  

 

  설명
인스턴스 AWS 클라우드에 생성한 가상 서버
AMI 가상 이미지
인스턴스를 생성하는 기준이 되는 금형과 같다.
OS만 설치된 간단한 유형부터 소프트웨어도 설정된 유형까지 다양한 AMI가 있다.
키 페어 인스턴스에 접속할 때 인증을 위해 사용하는 키
EBS aws 클라우드에서 사용할 수 있는 스토리지
인스턴스 스토리지로 사용된다. 
보안 그룹 가상 방화벽으로 1개 이상의 인스턴스 트래픽을 제한한다.
Elastic ip 정적(고정) IPv4주소 

 

인스턴스를 생성할 때 설정할 수 있는 설정값들이 매우 많다. 

 

그림으로 이해하는 aws 구조와 기술 120p 참고 

 

 

인스턴스 요금  

인스턴스 사용량 + EBS 요금 + 통신 요금 + 그 외 옵션 = 인스턴스 총 요금 

 

 

 

 


 

 

 

AMI 

Amazon Machine Image

: OS 및 소프트웨어가 설치된 디스크 이미지 / OS와 소프트웨어의 구성을 기록한 템플릿

AMI를 사용하면 동일한 인스턴스를 대량으로 쉽게 생성할 수 있다. 쉽게 생각하면 붕어빵 구워내는 금형 틀과 같은 기능이다.

동일한 서버가 여러 개 필요할 때 서버마다 OS, 아파치, 소프트웨어 설치, 각각 설정 등등 이러한 작업을 반복하는 불필요한 시간을 단축시킬 수 있다. AMI를 사용하면 몇 분 안에 동일한 서버 생성이 가능하다. 

 

AMI는 경우에 따라 무료, 유료이다. AMI는 개인이 만들 수 있고 마켓플레이스라는 장소에서 배포도 가능하다. 

* 마켓플레이스  : AWS에서 AMI를 배포할 수 있는 장소 

 

 

 

 

 


 

 

 

 

인스턴스 유형

CPU, 메모리, 스토리지, 네트워크 용량 등이 각기 다양하게 용도에 맞춰 조합되어 있다. 용도는 범용, 컴퓨팅 최적화, 메모리 최적화, 가속화된 컴퓨팅 최적화, 스토리지 최적화 이렇게 다섯 가지로 구분되어 있다. 

 

비용  = 단가 X 사용시간    (인스턴스 유형과 크기에 따라 단가가 달라짐)

 

 

 

 


 

 

 

 

 

Amazon EBS

: Amazon Elastic Block Store 영구적인 블록 스토리지 볼륨 / EC2 인스턴스와 조합하여 사용

대표적인 스토리지는 HDD, SSD가 있다. 

 

EBS 요금 

단가 X 저장 시간

 

스토리지 HDD, SSD 비교

  HDD, Hard Disk Drive SSD, Solid State Drive
읽기 쓰기 속도 보통 빠름
가격 보통 비쌈
소비 전력 조금 높다 보통
내구성 약함 강함
고장 이중화되어 있음 이중화되어 있음

 

EBS의 편리한 기능들 

EBS의 기능과 요금
탄력적 볼륨 볼륨 크기를 간단히 조정할 수 있는 기능
스냅샷 어떤 시점의 데이터를 통째로 저장하는 기능
데이터 라이프 사이클 매니저 일정에 따라서 스냅샷을 생성, 삭제하는 기능
최적화 인스턴스 특정 인스턴스 유형을 최적화 인스턴스로써 읽기 쓰기를 고속화하는 기능
암호화 데이터 볼륨, 부팅 볼륨 및 스냅샷을 암호화하는 기능
KMS (AWS Key Management Service, 키를 생성/ 관리 할 수 있는 기능)를 사용할 수 있음  

 

 

 

 


 

 

 

SSH를 사용한 접속과 키 페어

일반적으로 EC2도 서버에 설치한 소프트웨어의 SSH로 관리하는데 이 때 "키 페어" 라는 방식을 이용한다. 서버에 설치한 소프트웨어를 조작하려면 SSH 방식을 사용해 원격 접속으로 보통 조작한다. SSH는 서버에 설치된 소프트웨어를 조작할 때 사용하는 방식이다. 

 

* SSH : Secure Shell 보안 쉘 

* 키 페어란 ? - 로그인할 때 인증으로 사용되는 공개키와 비밀키로 된 한 쌍을 말한다. 

 

 

 

 


 

 

 

Elastic IP 주소 

: 고정 공인 IP 주소를 부여 

EC2 인스턴스는 정지 후 다시 시작하면 공인 ip주소가 바뀌게 된다. 24시간 open되어야 하는 서버에게는 이는 문제가 되므로 고정ip 주소를 Elastic ip를 사용하여 부여할 수 있다. Elastic ip 주소는 aws 계정에 연결되어 있다. 연결한 인스턴스가 삭제되더라도 aws계정은 여전히 Elastic ip 주소를 보유하고 있다. 

 

Elastic ip 요금

인스턴스에 부여된 IP 한 개는 무료 
추가로 ip를 연결하면 ip는 시간에 비례하여 요금이 부과된다. 
중지된 인스턴스, 분리된 네트워크에 연결된 경우에도 요금이 부과됨 

 

 

 

 


 

 

 

ELB, Elastic Load Balancing 

: 트래픽을 분배하는 분산 장치

서버에 집중되는 접속 트래픽을 서버 여러 대나 네트워크에 분산하여 과부하를 방지한다.

 

ELB의 종류

ELB의 종류
ALB (Application Load Balancer) HTTP, HTTPs 에 가장 적합한 로드 밸랜서 
OSI 모형의 애플리케이션 계층에서 동작
인스턴스와 로드 밸런서 사이의 통신의 암호화 가능 
지원 프로토콜 : HTTP, HTTPs
NLB (Network Load Balancer) OSI 모형의 전송계층에서 동작 
패킷이라고 불리는 단편 데이터밖에 볼 수 없어서 ALB만큼 상세하게 분배 불가 
지원 프로토콜 : TCP, TLS 
CLB (Classic Load Balancer) 지원하는 프로토콜은 많지만 오래된 유형이라 비추
지원 프로토콜 : TCP, SSL/TLS, HTTP, HTTPs

 

ELB의 요금

사용 요금 (사용 단가 X 시간) + LCU 요금 (LCU 사용량 X LCU단가 X 시간)

 

 

 

 


 

 

 

스냅샷

: 서버 데이터 백업

특정 시점에 서버 디스크 상태를 "사진 찍듯이" 데이터, 소프트웨어, OS, 설정 정보 등을 모두 통째로 복사하여 보존하는 폴더 등의 집합이다. Amazon EBS 볼륨의 데이터를 S3에 백업할 수 있다. 백업한 요 스냅샷은 바로 사용가능한 복제본이며, 개인이 AMI를 만들 때 스냅샷을 사용할 때도 많고 백업을 위해 많이 사용된다. 

데이터 수명 주기 관리자 (Amazon DLM)를 이용하면 스냅샷 생성, 삭제를 자동화할 수 있다. 

 

스냅샷의 요금

GB 단위로 요금이 측정된다. 

 

스냅샷의 보관 장소 

Amazon S3에 저장되지만 우리가 일반적으로 바라보는 S3과는 다른 영역으로 볼 수 없고 또 자유롭게 다운로드도할 수 없다. 참고로 S3요금은 발생되지 않는다. 

 

 

 


 

 

오토 스케일링, Auto Scaling

서버의 엑세스 상태에 따라 필요하면 인스턴스(서버)를 자동으로 늘리고 줄이는 아주 유연하고 유용한 기능이다. 보통 EC2에서 많이 쓰나 그 외의 서비스를 지원하는 오토 스케일링도 있다. 

* 아까 위에서 언급한 로드 발랜서는 서버 자체를 늘리는게 아닌 존재하는 서버들을 확인하고 한 곳에 몰리는 여러 서버로 분배하여 과부하를 방지하는 기능을 수행한다. 

 

오토 스케일링을 시작하기 전 

1) 'Auto Scaling 그룹' 생성

2) 'Auto Scaling 그룹' 설정하기 - 서버 시작에 필요한 AMI, 키페어, 보안 그룹 등 

3) 인스턴스 (서버)의 최소/ 최대 대수 설정 

 

오토 스케일링의 요금

무료
but ! CloudWatch를 사용할 경우 모니터링에 관련된 요금이 부과된다. 

 

인스턴스를 증감시키는 3가지 방법 

1. EC2 인스턴스가 정지한 경우에 분리하고 새로운 EC2 인스턴스를 생성
2. 일정에 맞춰 스케일링하는 방법
3. CPU와 네트워크의 부하를 참고하여 특정 임계 값을 넘을 때 인스턴스 수를 자동적으로 증감하게 만들기

 

 

 

 


 

 

 

Amazon S3 , Simple Storage Service

: 객체 스토리지 서비스 

객체 스토리지 : 객체 단위로 데이터를 관리하는 형식

S3는 파일을 버킷에 저장, 버킷에 저장한 파일을 "객체"라고 한다.

***** S3 버킷을 생성한 후에는 이름과 리전을 변경할 수 없다. 

 

 

S3의 기능

1) 웹 서버 기능  -> 간단하게 웹 서버 구축 가능

2) 쿼리 기능  -> 집계 가능

 

S3의 장점

1) 확장성

2) 가용성, 내구성

3) 신뢰성

4) 다양한 관리 기능

5) 스마트한 기능

 

S3의 요금

저장 용량 (데이터를 저장한 양) + 전송량 (데이터를 주고 받은 전송량) 

 

 

 

스토리지 클래스 

= 스토리지의 종류

상황에 따라 변경할 수 있어서 상황에 맞는 스토리지를 유연하게 선택할 수 있다. 

 

스토리지 클래스의 종류
* 아래 모든 클래스는 내구성 99.999999% 을 가지고 있다.
Standard 가장 일반적인 스토리지 클래스 
3곳 이상의 AZ (가용 영역) 에 데이터 저장되어 99.9% 가용성을 보장
검색 요금과 최소 용량의 요금이 없고 일할로 계산되므로 쉽게 사용 가능 
Intelligent-Tiering 빈번한 엑세스와 간헐적 엑세스에 최적화된 두 가지 계층에 객체 (파일)를 저장한다. 어느 쪽에 저장할지는 객체별로 모니터링하여 그 결과에 따라 자동으로 이동된다. 
최소 저장기간에 대한 요금이 있다.
Infrequent Access 저장 요금이 낮게 설정되어 있는 대신 액세스 요금이 조금 높게 설정되어 있음 
-> 액세스 빈도가 낮고 용량이 큰 데이터에 적합
Reduced Redundancy Storage 엄격하게 따지면 클래스가 아닌 옵션으로 분류되지만 한 종류밖에 없어서 실질적으로 스토리지 클래스 중 하나로 여겨짐 
standard에 비해 이중화 수준을 낮춰서 낮은 가격으로 제공
-> 저장되는 AZ가 한 곳이여서 데이터 유실 가능성이 있다. 
S3 Glacier / S3 Clacier Deep Archive 데이터 아카이브와 장기간 백업을 고려하여 탄생한 스토리지 클래스 
데이터는 '볼트'라는 컨테이너에 저장됨

 

 

 

S3의 사용 절차

관리 콘솔에서 파일을 업로드 가능하지만 API/SDK를 사용하여 업로드할 수 있다. 

 

 

S3 용어 

항목 설명
객체 S3의 엔터티 단위 ex) 텍스트/이미지 파일 등 
버킷 객체를 저장하는 컨테이너 
버킷명 다른 모든 aws 사용자를 포함하여 유일무이한 이름이어야 한다. 
웹 서버로 사용할 경우 도메인명이 버킷명이되기 때문이다.
객체 키 객체 식별자 (이름)
모든 객체는 반드시 한 개의 키를 가진다.
S3가 파일을 식별하기 위한 데이터
객체 메타데이터 이름과 값의 세트
객체 업로드 시 설정할 수 있다. 
사람이 파일을 쉽게 관리하기 위한 데이터
리전 버킷의 물리적인 보관 장소가 있는 지역
Amazon S3의
데이터 일관성 모델
데이터의 무결성을 보장 
-> 복제가 모두 반영되기까지 다소 시간이 걸림
버전 관리 여러 버전을 보관하는 것
다른 버전은 별도의 객체로 취급하는 것이 가능
로그 버킷, 객체 단위의 로그를 기록할 수 있다. (객체 - 유료)
암호화 S3에 저장되는 데이터를 자동으로 암호화할 수 있다.
액세스 제어 S3 버킷에 대해 권한을 설정할 수 있다. 
웹 서비스 S3 버킷을 웹 사이트로 사용하는 기능

 

 

 


 

 

 

객체와 버킷

버킷은 C드라이브, 객체는 그 안의 파일들과 같다. 버킷 안 버킷을 만들 수 없다. aws계정 당 100개의 버킷까지 가능하고 별도 신청하면 최대 1,000개까지 가능하다. 버킷 한 개에 저장할 수 있는 객체 수와 용량에는 제한이 없다. 

 

버킷을 한 번 생성하게되면 리전과 버킷명을 변경할 수 없다.

버킷 이름을 생성할 때 주의점 

1) S3안에서 유일한 unique 이름이어야 한다. 

2) 3~63글자 사이

3) 버킷명 맨 처음과 마지막에는 알파벳 or 숫자를 사용

4) ip주소 형식은 버킷명으로 쓸 수 없음

5) 대문자 혹은 _ 언더 스코어는 금지 

 

 

버킷에 대한 액세스 제한

1) 버킷 단위로 제한하는 버킷 정책

2) IAM 사용자 단위로 제한하는 사용자 정책

3) ACL (액세스 제어 목록)에 의한 관리 정책

 

 

 

 


 

 

S3의 기능 : 웹 사이트 호스팅 

S3는 정적 웹 사이트를 호스팅할 수 있다. 버킷을 그대로 웹 사이트로 오픈하면 된다. 

* 정적 웹 사이트 ? 서버가 스크립트를 처리하지 않는 사이트 ex. 단순한 html과 이미지만으로 작성된 사이트

 

S3이 외에도 Amazon Lightsail(웹 사이트에 필요한 서비스 전체를 정가제로 구축), AWS Amplify(모바일 앱, 웹 앱) 등을 통해서 호스팅이 가능하다.

 

 

 

 


 

 

 

S3 : 파일업로드와 다운로드 

관리콘솔, API, SDK, CLI, SFTP 등을  사용할 수 있다. 

관리 콘솔로 업로드할 경우 파일 크기 제한은 160GB이며 그 이상은 CLI or SDK를 사용하면 된다. 

 

S3 업로드 방법 

 

1)API와 SDK

 

2) 멀티 파트 업로드 

- 객체를 여러 개로 나누어 세트 하나로 업로드할 수 있다. -> 업로드 완료 후 하나의 객체가 됨 

- 100MB 이상의 파일은 멀티 파트 업로드 추천

 

3) AWS Transfer for SFTP

- SFTP도구가 아닌 SFTP 서버를 제공하는 서비스 

 

4) AWS DataSync 

- 온프레미스 스토리지 시스템과 AWS 스토리지 서비스 간에 대용량 데이터 전송을 위한 서비스

 

 

 

 





 

액세스 관리 및 변조 방지 

: 부정한 액세스 감시

 

S3는 스토리지의 액세스를 감시하기 위한 액세스 로그(기록)을 무료로 제공한다. 

 

액세스 로그란 ? 

서버에 어떤 요청이 있었는지를 기록 (기록되는 정보 : 버킷 소유자, 버킷명, 요청자, 총 시간, 응답 시간, 작업, 응답 상태, 오류, 코드 등) 

 

액세스 로그 요금

로그 기록에 대한 요금 - > 무료
로그를 기록한 파일은 대상 버킷과 같은 리전의 버킷에 보관 -> 보관료 발생

 

다른 액세스 관리 방법

1) 스토리지 클래스 분석

2) 객체 잠금 - 객체 변경 허용하지 않아서 객체 삭제, 덮어쓰기, 변조 방지 -> 복사도 안됨 

 

 

 

 


 

 

 

버전 관리 / 수명 주기 / 복제 

: 저장된 객체 관리

 

버전관리란?

간단히 버전을 여러 개로 저장함으로써 유실/손실에서 복구가 가능하도록 하는 것 

 

버전 관리란 객체를 여러 버전으로 (버킷 단위로) 저장하는 기능이다. 

버전 관리의 상태 '미사용(기본)', '활성화', '버전 일시 중지' 이렇게 세 가지이다. 

이전 버전으로 되돌리려면 저장된 과거 버전 중 되돌리고 싶은 버전을 같은 버킷으로 복사한다. 

 

수명주기란?

객체가 정기적으로 수행할 작업을 설정하는 기능

수명주기 정책을 설정할 수 있는 작업들
Transition 객체를 다른 스토리지 클래스로 이동
Expiration 유효기간 만료된 객체 삭제 
Noncurrent Version Transition 현재 스토리지 클래스에서 객체의 유지 시간을 지정
Noncurrent Version Expiration 과거 버전의 객체를 삭제하기 전 유지할 시간을 지정
AbortIncompleteMultipartUpload 멀티 파트 업로드 진행 상태를 유지할 최대 시간을 지정한다. (지정 시간 내 업로드 안 되면 중지)
ExpiredObject DeleteMarker 만료된 객체 삭제 표시를 제거

 

교차 리전 복제

다른 리전의 버킷에 객체를 비동기적으로 복사하는 것 

복제 작업을 수행하기 위해 IAM역할 (접근 권한)을 부여해야 함

해외에도 데이터를 백업해 둘 수 있기 때문에 서울에 재해가 발생하더라도 데이터를 유실하지 않고 보존할 수 있다. 

* 해외에 데이터를 보존하게 되면 국외 반출 금지 데이터를 보존하지 않도록 주의해야함 ex. 고객 데이터 등 

 

 

 


 

 

데이터 분석과 연계 

: 저장된 데이터의 분석

 

S3객체 또는 객체의 내용에 대해 데이터를 분석하는 기능

Amazon S3는 데이터 분석 서비스와 연동이 가능하다. 

S3 select과 Amazon Athena는 CSV(Comma Separated Value, 엑셀에서도 사용하는 데이터 형식)나 JSON과 같이 구조화된 텍스트 형식의 데이터를 SQL의 select문으로 실행하는 기능이 가능하다. (서버는 필요하지 않다.)

Amazon Redshift Spectrum도 비슷한 기능을 갖고 있지만 대용량 데이터 전담으로 처리하기 때문에 Redshift cluster가 필요하다. 

 

* S3는 AWS Lambda 서비스와도 연결할 수 있다. S3버킷에 객체를 업로드할 때 트리거로 Lambda함수를 호출할 수 있다. 

 

S3 Select

S3로 저장된 데이터 파일 하나에 SQL문을 사용하여 집계 및 검색이 가능한 기능이다.

지원 형식 : CSV, JSON, Apache Parquet 

관리 콘솔에서 SQL문을 입력하여 간단히 실행 가능하다. 

 

Amazon Athena & Amazon Redshift Spectrum

Athena : 매번 필요에 따라 분석용 서버를 자동 생성 실행 -> 실행 시간 동안만 비용 발생

redshift spectrum = S3 저장된 데이터 분석 서비스 : 미리 분석용 서버를 시작하고 이 서버를 사용하여 분석, 대용량 복잡한 데이터를 빠르게 처리할 경우 추천

 

 

 

 


 

 

 

Amazon CloudFront

: 고속 콘텐츠 전송/배포 네트워크 서비스

웹 서버 내용을 캐시하는 "엣지 서버"를 사용하여 웹 콘텐츠를 빠르게 전송한다.

매번 사용자의 서버 요청에 응답하면 서버의 부담이 커지므로 엣지 서버에 캐시한 내용을 반환하는 방식  

 

* 엣지 서버 : 리전별로 존재하며, 사용자의 물리적 위치와 가까운 곳에 (말그대로 "엣지") 접속하게 하여 네트워크 속도를 높일 때 사용한다. 

 

Amazon CloudFront의 비용

데이터 송신에 대한 요금 (http, https에 따라 요금이 상이)

 

 

 

 

 


 

 

 

 

Amazon VPC, Virtual Private Cloud

: 가상 네트워크 서비스 

네트워크와 서브넷 범위, 라우팅 테이블, 네트워크 게이트웨이 등 가상 네트워킹 환경을 설정할 수 있다. 

VPC 안에 서버를 설치하면 해당 네트워크에 소속되고 별도로 설정하지 않으면 VPC 자체는 격리된 네트워크가 된다. 외부와 통신하려면 VPC를 인터넷 혹은 회사 내 LAN과 연결해야 한다. 

 

VPC 네트워크의 특징 : 

1) 일반 네트워크와 다른 "라우터"를 가짐 - VPC는 물리적인 라우터가 아닌 소프트웨어가 라우터 역할(라우팅)을 한다.

즉, 소프트웨어가 라우팅한다. 라우터는 ip 주소를 갖지 않는다.

2) 라우팅 테이블 하나에 서브넷 여러 개를 설정 가능

3) VPC 하나에 인터넷 게이트웨이 한 개만 설정 가능, ip주소는 갖지 않는다.

4) 라우터 없이 서브넷 사이 통신 가능

- 일반적인 서브넷 사이의 통신은 "라우터"를 통해 이뤄지지만 VPC의 경우 라우터없이 직접 통신이 가능

 

 

VPC의 기능 

VPC 기능
CIDR 블록  = 서브넷
네트워크를 나눈 범위
VPC를 생성할 때 네트워크 범위를 CIDR로 정하고 이를 더 작은 서브넷으로 나누어 사용한다. 
서브넷 마스크 네트워크의 크기를 계산하는 값
CIDR은 서브넷 마스크 표기법 중 하나
가용 영역 서브넷이 구축된 물리적 장소
인터넷 게이트웨이 인터넷에 접속하기 위한 출입구
VPC와 인터넷을 연결해주는 관문
VPC를 인터넷에 연결하지 않을 경우에는 불필요
라우팅 어떤 데이터를 어디에 보낼지 조정
인터넷 게이트웨이와 라우팅으로 
라우팅 테이블 라우팅에 대한 설정이 기록된 테이블
각 목적지에 대한 이정표
보안 그룹 AWS가 제공하는 가상 방화벽
인스턴스 단위로 설정
디폴트 : 유입되는 데이터 "거부"
네트워크 ACL AWS가 제공하는 가상 방화벽
서브넷 단위로 설정됨

 

 

 

 


 

 

 

VPC의 사용 절차 

vpc를 사용하려면 관리 콘솔에서 별도로 설정해줘야 한다.

* 중요한 설정 중 하나는 서브넷 : CIDR 블록에 네트워크 범위를 설정한 후 서브넷을 나눈다.

 

VPC = 네트워크

 

VPC 설정 시중요 포인트 

1) 인터넷 연결해야하는 여부 : 인터넷 연결이 필요하면 인터넷 게이트웨이 설정해야 한다. 

2) 오토 스케일링 여부 : 오토 스케일링 설정한다면 서버가 자동으로 늘어나기 때문에 충분한 IP주소를 확보해 두어야 한다. 

3) 보안 그룹과 네트워크 ACL을 설정하려면 인스턴스 용도에 맞는 포트를 설정하는 것도 고려해야함 (기본 설정 변경 필요) 

=> 기본 VPC를 추천 

 

* 기본 VPC

어렵고 복잡한 네트워크 지식이 없어도 누구나 VPC를 사용할 수 있도록 AWS에서는 기본 VPC를 제공한다. 

- Elastic Load Balancing 서비스 포함

- 서브넷과 인터넷 게이트웨이가 기본적으로 구성되어 있음 

 

 

 

 


 

 

 

서브넷과 DHCP, Dynamic Host Configuration Protocol

* DHCP란 ? 호스트의 ip주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜을 말한다. 

 

서브넷이란 커다란 네트워크를 작게 나눈 네트워크를 말한다. 분할해서 직접 통신할 수 있는 범위를 축소시키고 방화벽 설정하여 보안을 강화하는 것을 목적으로 한다. 서브넷은 CIDR 표기를 사용한다. 

 

* CIDR (Classless Inter-Domain Routing) : 클래스없는 도메인 간 라우팅 기법의 최신 IP주소 할당 방법 

 

AWS는 어떤 물리적인 가용 영역에 서브넷을 둘지 설정한다. 

 

 

 

 


 

 

 

라우팅과 NAT

: 공인 IP 주소와 사설 IP 주소 변환

 

 네트워크  : PC들이 서로 통신할 수 있도록 연결되어 있는 상태 

 라우팅  : 라우터에서 목적지까지 데이터를 송신하는 방법

 IP주소  : 네트워크 안의 모든 호스트에 설정되어 있는 "주소"와 같은 역할 (목적지)

 라우터  : 라우팅을 수행함, 네트워크의 관문에 위치해 있기 때문에 "게이트웨이"라고도 함

 게이트웨이  : LAN <-> 인터넷으로 데이터를 전송할 때 내부의 출입구 (역할 수행하는 기기는 "라우터") 

 IP 마스커레이드 (1:N)  : 공인IP주소와 사설 IP주소를 변환

- 게이트웨이가 사설 IP 주소를 공인 IP주소로 변환하고 회사/가정 내에서 공인 IP주소 하나를 공동으로 사용하는데 이 때 주소 변환을 담당하는 역할 

- LAN 내부의 PC에는 전부 사설 IP 주소를 할당하지만 인터넷 상에서 공인 IP주소가 없으면 식별이 안되기 때문에 IP마스커레이드가 필요하다.

- PORT 변환 가능

 NAT (Network Address Translation) (N:N)  : 공인IP주소와 사설 IP주소를 변환

- 공인IP주소를 여러개 설정할 수 있도록 하는 역할

- IP마스커레이드는 내부에서 외부로 나갈 때가 가능하다. PC(Client)의 경우 문제가 없지만 LAN 환경에 서버를 설치한 경우에는 양방향으로 통신할 수 있도록 IP 마스커레이드를 설정할 수 있다. IP마스커레이드는 공인IP 하나만 설정할 수 있기 때문에 서버가 여러 대라면 공인 IP 주소를 여러개 설정하도록 하는 NAT을 사용해야 한다.

- PORT 변환 불가능

 

 

 


 

 

인터넷 게이트웨이와 NAT 게이트웨이 

: VPC에서 인터넷으로 접속

 

인터넷 게이트웨이 : 인터넷 연결을 담당한다. 

클라이언스 ---- 요청 (webSite address) ----> DNS (webSite address -> 공인 IP주소로 변경) ------> 게이트웨이 (공인 IP -> 사설 IP주소로 변환) ----요청---->  EC2 인스턴스

 

NAT 게이트웨이 : 회사 내부에서 단방향 인터넷 연결을 하고 싶을 때 사용 (외부에서 회사로의 연결은 안되도록) 

 

 

 

 


 

 

 

 

보안 그룹 & 네트워크 ACL, Access Control List

: AWS가 제공하는 가상 방화벽 두 가지

VPC 가상 방화벽으로 보안 그룹과 네트워크 ACL이 있다. 방화벽이란 네트워크 통신을 제어하는 방식을 말한다. 보안 그룹과 네트워크 ACL은 인바운드 트래픽과 아웃바운드 트래픽을 제어한다. (양방향 - 디폴트) 

 

  보안 그룹 네트워크 ACL
설정 범위 인스턴스에 대해 설정
(최대 5개)
서브넷에 설정
서브넷 하나에 네트워크 ACL 하나 only
네트워크 ACL하나에 여러개의 네트워크 가능
*** 개별 인스턴스에 설정할 필요가 없음
규칙 규칙 허용 가능 규칙 허용 / 거부 가능
설정 스테이트풀 (stateful) 
- 규칙과 상관없이 반환된 트래픽을 자동으로 허용
스테이트리스 (stateless) 
- 반환된 트래픽을 규칙에 따라 명시적으로 허용
규칙의 적용 순서 모든 규칙을 확인하여 트래픽의 허가 여부 결정 순서대로 규칙을 처리하면서 트래픽의 허가 여부 결정

 

 

 


 

 

인바운드 및 아웃바운드 설정과 잘 알려진 포트 

포트, PORT 는 어떤 숫자를 사용하던 상관없지만 잘 알려진 포트들이 정해져있다. 포트란 '통신의 입구'로써 웹, 메일, FTP와 같이 서버에 어떤 데몬(서비스)이 동작할 때 해당 서비스를 사용하는 포트는 수신 대기 상태가 된다. 

* 데몬, daemon : pc (서버)의 전원이 켜져 있는 동안 백그라운드에서 계속 실행되고 있는 소프트웨어

유닉스 OS에서는 '데몬'이라고 하고 윈도우에서는 '서비스'라고 한다. ex) 웹 기능, 메일 기능 등은 데몬에 의해 실행됨. 워드/엑셀같이 필요한 경우만 켰다가 끄는 소프트웨어는 데몬이 아니다. 

 

보안 그룹 : 아웃바운드만 허가/ 인바운드 허가하지 않음 (디폴트)  ->  이 후 필요한 포트만 허가해서 수신 허용

네트워크 ACL : 양쪽 모두를 허가 

 

잘 알려진 포트

포트 번호 서비스 내용
25 SMTP 메일 송신
110 POP3 메일 수신
143 IMAP4 메일 수신
80 HTTP 웹 송수신
443 HTTPS 웹 송수신
22 SSH SSH 통신
1433 SQL Server 데이터베이스 통신
1521 Oracle Database 데이터베이스 통신
3306 MySQL 데이터베이스 통신
5432 PostgreSQL 데이터베이스 통신
5439 Redshift 데이터 웨어하우스 통신
20 및 21 FTP 파일 전송 통신 (AWS는 사용하는 경우가 드물다)
53 DNS 도메인 관리 통신 (AWS는 사용하는 경우가 드물다)
3389 RDP 원격 데스크톱 통신
32768~65535 AWS의 경우 아웃바운드 지원

 

 

 

 


 

 

 

 

VPC 엔드포인트 

: VPC 내부에서 VPC 외부로 접속하기 위한 연결점을 제공하는 가상 서비스 

VPC 내 서브넷 간에는 직접 통신할 수 있고 VPC 간에도 하나의 네트워크처럼 연결되어 통신할 수 있다. 하지만 VPC 외부의 다른 서비스와 VPC를 연결하려면 "인터넷 게이트웨이"를 사용해 인터넷으로 접속해야 한다.

-> 인터넷 회선으로 연결된다면 번거롭고 보안이 불안해진다. 

-> 이런 점을 보안하기위해 "엔드포인트 서비스"가 나옴  ===> VPC를 지원하지않는 대표적인 서비스 S3, DynamoDB 등과 직접 연결할 수 있다. 

 엔드포인트는 트래픽에 대해 자동으로 스케일링되기 때문에 네트워크 트래픽에 대해 걱정안해도 된다. 

 

VPC 엔드포인트 종류

1) 인터페이스 엔드포인트

- 네트워크 인터페이스로 구축하는 유형

 

2) 게이트웨이 엔드포인트

- 라우팅 테이블에 설정된 내용을 라우팅하는 유형

 

인터페이스 엔드포인트 요금

VPC 엔드포인트 한 개당 사용료 + 데이터 처리량 

게이트웨이 엔드포인트 요금

무료이지만
송신료가 부과됨 

 

 

 


 

 

 

VPC연결 

1) VPC와 VPC의 연결 by VPC 피어링 

- 회사 내 or 다른 회사의 VPC들을 연결할 수 있다.

 

2) VPC + 물리적인 네트워크 or 다른 클라우드

 

네트워크와 네트워크를 연결해 큰 네트웤을 구축하는 것을 WAN (Wide Area Network)이라고 한다. 

WAN을 구축하는 방법은 전용선, 가상 사설망이 있고 AWS와 다른 네트워크를 연결하는 경우도 있다.

 

전용선과 가상 사설망

1) 전용선

KT와 같은 통신 사업자가 직접 연결할 수 있는 회선인 전용선을 임대하여 구축 -> 비싸지만 신뢰성이 높음

 

2) 가상 사설망

보유 회선뿐만 아니라 공용 회선을 사용하여 통신을 암호화하여 연결 ->  비용은 싸지만 신뢰성이 낮다. 암호화 기술이 해석되지 않는 이상 데이터가 유출될 걱정은 없다. 

 

3) AWS DIRECT CONNECT

 VPC나 AWS서비스와 다른 네트워크를 전용선으로 연결하는 서비스 -> 회선공사 필요, 라우터 설치 필요 -> 도입 규모가 꽤 크며 비용이 꽤 발생한다. -> AWS Direct Connect 공유 설비를 사용한 연결 서비스 사용하는 방법도 있다. 

 

 

 

 


 

 

 

AWS VPN

VPN을 사용하여 다른 네트워크와 연결하는 방법 

인터넷을 이용한 연결이므로 회사 내 VPN을 지원하는 라우터가 설치되어 있다면 사용 가능하다. 인터넷 사용하므로 네트워크 품질과 속도는 보장되지 않는다. 

 

전송 게이트웨이

VPC나 온프레미스 네트워크를 ㅎㅏ나로 묶어 서로 연결하는 '접속점'을 제공하는 서비스 

서로 다른 AWS계정도 연결 가능 

 

 

 

 


 

 

 

Amazon RDS, Relational Database Service

: 대표적인 RDBMS인 Amazon Aurora, PostgreSQL, mySQL, MariaDB, Oracle Database, SQL server를 클라우드에 최적화된 상태로 제공한다. 

메니지드 서비스여서 업데이트, 백업 등의 관리가 AWS에 의해 자동으로 이루어진다.

AWS Database Migration Server (DMS) 를 사용하면 기존 데이터베이스를 이전하거나 복제하는 것도 가능하다.

EC2와 연동이 쉽고 같은 네트워크 내에 있다면 통신료도 무료이다. 

 

단점 : 사용자가 자유롭게 사용할 수 없다. 

인스턴스 클래스

RDS는 EC2처럼 인스턴스 형식으로 사용한다.

표준, 메모리 최적화, 버스트 성능 3가지로 나뉜다. 

데이터베이스 인스턴스는 ** 꼭 VPC에 설치해야 한다. 

 

RDS 요금

스토리지 요금 + 데이터베이스 인스턴스 요금(유료 DBMS인 경우, 라인센스 사용료 포함) + 백업 스토리지 요금 + 통신료

 

아마존이 개발한 RDB - Amazon Aurora 

AWS가 만든 MySQL, PostgreSQL와 호환 가능한 관계형 데이터베이스

요금은 조금 비싼편, 그러나 견고하고 성능이 뛰어남 

호환성 있기 때문에 "스냅샷"을 이용하여 온프레미스환경의 MySQL이나 PostgreSQL을 이전할 수 있고 SQL문도 그대로 사용할 수 있다. 

AWS 메니지드 서비스이다. 

AWS용으로 설계되어 MySQL, PostgreSQL에 비해 속도가 빠르다. 

 

 

 

 


 

 

 

 

키 벨류 스토어 데이터베이스, Key Value Store Database == KVS

데이터 형식에 관계없이 어떤 데이터에 대해 특정 '키' 값을 결합하여 저장  noSQL의 대표적 예 

RDS (관계형 데이터베이스) 보다 더 오래되었다. 유연성이 높아 어떤 것이든 데이터로 저장하기 때문에 상세하게 검색할 수는 없으나 데이터에 대한 액세스가 빠르다. 최근 빅데이터, IoT와 같은 대용량 데이터 처리에 주목받고 있다. 

 

키 벨류 스토어 데이터베이스의 종류 

1) DynamoDB (스토리지에 저장) 

- VPC가 불필요하므로 Lambda와 같은 VPC를 사용하지 않는 애플리케이션 환경과 궁합이 좋음 

 

2) Amazon ElastiCache (메모리에 저장)

- 메모리 데이터베이스는 조작할 때마다 외부 기억 장치에 읽기/쓰기를 수행하지 않고 자주 읽고 쓰는 데이터는 일시적으로 메모리에 보관(캐시)하는 방식으로 메모리를 활용하여 처리 속도를 빠르게 만든 방식이다.  때문에 DynamoDB보다 처리 속도가 더 빠르다. 

** 대신 인스턴스를 재시작할 때 데이터가 삭제된다. 

=> 빠른 속도 목적으로 하는 캐시 용도로 많이 사용된다. 

 

ElastiCache

- Redis용

- Memcached용

* Reids와 Memcached는 대표적인 인 메모리형 키 밸류 스토어 DBMS

 

 

AWS에는 관계형 데이터베이스, 키 벨류 스토어 데이터베이스 이외에도

문서 기반 데이터 베이스 (DocumentDB) - mongoDB 호환

그래프 데이터베이스 (Neptune) - 페이스북과 같은 소셜 네트워크, 지식 그래프 등 데이터 간의 복잡한 관계 처리

시계열 데이터베이스 (Timestream) - 시간의 경과에 따른 사물의 변화 기록 - 전형적 IoT의 데이터 취득 형태

장부 데이터베이스 (Quantum Ledger Database) - 데이터 변경 추적하여 이력 남기는 '저널 형식' - 감사 목적에 적합 - 'SHA256' 해시 함수에서 변경한 내용 변조 방지함. 조작은 쉬운편

등도 있다. 

 

 

 


 

 

 

AWS Lambda 

: 서버리스 서비스 / 이벤트 자동 실행

 

 

 

 

 


 

 

 

 

References : 그림으로 이해하는 AWS 구조와 기술 

 

그림으로 이해하는 AWS 구조와 기술:AWS 쉽고 재미있게 시작하자!

COUPANG

www.coupang.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형

댓글