Aws - Vpc,cidr,ec2,s3,cdn,route53,nacl,security group
AWS(Amazon Web Service)
클라우드 컴퓨팅 플랫폼을 구성하는 원격 컴퓨팅 서비스 ㅁ모음
컴퓨팅 성능, 스토리지, DB 및 분석
여러 지역에 위치한 데이터 센터를 통해 전 세계적으로 운영
장점
- 확장성 : 광범위한 컴퓨팅 리소스에 대한 #온디맨드 액세스 제공 --> IT 인프라 쉽게 확장
- 비용 효율성 : 사용한 리소스에 대해서만 비용 지불
- 안정성 : 안전하고 안정적인 데이터 센터의 글로벌 네트워크 운영 - 고가용성 및 재해 복구 기능 제공
- 유연성 : 컴퓨팅, 스토리지, DB 및 분석을 포함한 광범위한 서비스 제공
- 보안 : 고객 데이터 보호, 다양한 보안 조치 및 인증 구현
#온디맨드 인스턴스
선불 비용이나 장기 약정 없이 시간당 컴퓨팅 리소스 비용 지불
단점
- 복잡성 : 클라우드 컴퓨팅을 처음 접하는 경우 관리 및 탐색이 복잡할 수 있는 광범위한 서비스 및 기능
- 비용 : 특수한 요구 사항이 있는 비즈니스에는 요금 모델이 비쌀수도
- 공급업체 종속 : 한 번 AWS에 투자하면 다른 공급업체로 전환이 어렵고 비용이 많이 든다
EC2(Elastic Compute Cloud)
클라우드에서 온디맨드 확장 가능 컴퓨팅 용량 제공
AWS에서 제공하는 클라우드 컴퓨팅 서비스
클라우드 컴퓨팅
: 인터넷(클라우드)을 통해 서버, 스토리지, DB 등 컴퓨팅 서비스를 제공
--> AWS
에서 원격으로 제어 가능한 가상
의 컴퓨터 한 대를 빌리는 것
Elastic
--> 사용한 만큼 비용을 지불 , 성능, 용량 을 자유롭게 조절 가능
AWS 클라우드
의 가상 서버
물리적인 서버를 구축하면 시간과 비용이 많이 들기 때문에 가상의 컴퓨터를 대여해주는 #EC2 사용
- 다양한 운영체제로 인스턴스 시작 가능
- 비용 절감 --> 사용한 만큼만 요금 지불
인스턴스 유형에 타입 이 존재
-
사용 목적(서버, 머신러닝, 게임) 에 따라 타입별로 인스턴스에 이름 부여 (t타입, m타입, inf타입 ...)
-
범용 : vCPU, 메모리, 네트워크, 저장 공간 등이 평균적인 사양으로 제공
-
컴퓨팅 최적화 : 메모리 대비 vCPU 비율이 높음
-
메모리 최적화 : 메모리 용량이 훨씬 큼
-
스토리지 최적화 : 스토리지 용량이 훨씬 크거나 초고속 I/O 제공
-
GPU 인스턴스 : 고성능 NVDIA GPU 장착
-
마이크로 인스턴스 : 가장 저렴, 낮은 #vCPU 성능, 적은 메모리 --> 프리티어
vCPU : 가상회 소프트웨어를 통해 제공되는 CPU
인스턴스 수명주기
AMI로 부터 실행되고나서 종료될 때까지의 과정
AMI (Amazon Machine Image)
- EC2 인스턴스를 실행하기 위해 필요한 정보를 모은 단위(OS, 아키텍쳐 타입, 저장공간 용량 등)
- EBS : (Elastic Block Store) - EC2 인스턴스에 사용할 영구 블록 스토리지 볼륨 제공 - 하드디스크라고 생각. 각 #EBS 볼륨은 가용 영역 내에 자동으로 복제되어 구성요소 장애로부터 보호해주고 고가용성 및 내구성 제공
EC2 분류
- EBS Based : 반 영구적인 파일의 저장 기능
- 하드 디스크와 그래픽 카드 메모리 cpu와 분리되어 네트워크로 연결
- Instance 에 비해 느림
- EC2 를 내려도 #EBS 는 살아있어 다음에 또 사용 가능
- Snapshot 기능 --> 덤프 떠서 백업
- 인스턴스 업그레이드
- stop 가능
- Instance Storage : 휘발성이 빠름
- EC2 내 물리적 연결 --> EC2 안에 있음
- 종료시키면 EC2 와 함께 날아감
- 빠른 연산, 저장 필요 없을때 사용
- 바로 접근이 가능해서 빠름
- stop 불가능
VPC(Virtual Private Cloud)
AWS 클라우드에서 논리적으로 격리된 공간을 프로비저닝하여 고객이 정의하는 가상 네트워크에서 AWS 리소스 시작 가능
- IP 주소 범위 선택
- 서브넷 생성
- 라우팅 테이블 및 네트워크 게이트웨이
가상 네트워킹 환경 완벽 제어
- VPC 별로 네트워크 구성가능
- 각각의 VPC 에 따라 다르게 네트워크 설정 가능
- 각각의 VPC 는 완전히 독립된 네트워크처럼 작동
기능
- 전용 네트워크 사용 : 다른 네트워크와 상호 간섭X, 논리적으로 완전히 분리된 네트워크
- 다양한 네트워크 토폴로지 : 고객 맞춤형 네트워크 환경 조성
- 강력한 보안 : ACG 를 통해 서버 단계의 접근 제어, NetworkACL 을 통해 Subnet 단계의 네트워크 접근 제어
- 외부 네트워크와의 보안 통신
- VPC간 내부 통신
VPC 구축 과정
- VPC의 IP 범위를 사설아이피 대역에 맞춤
- 사설IP : 내부 네트워크 내에서 위치를 찾아갈 때 사용 - 우리집 주소 ( #퍼블릭IP ) - 안방 ( 사설IP ) -->
- 사설 IP 대역 : 10.0.0.0 ~ 10.255.255.255, 172.16.0.0 ~ 172.31.255.255, 192.168.0.0 ~ 192.168.255.255
- 한번 성정된 IP대역은 수정 불가, 각 VPC는 하나의 리전에 종속
- 서브넷 을 통해 VPC를 잘게 쪼갬
- VPC보다 더 작은 단위이기 때문에 더 작은 IP범위를 가짐
- 서브넷을 나누어 더 많은 네트워크망을 만든다
- 라우팅테이블 과 라우터
- 네트워크 요청이 발생하면 데이터는 라우터로 향함
- #라우터 : 목적지, #라우팅테이블 : 이정표
- 라우터로 향한 데이터는 각각 정의된 라우팅테이블에 따라 작동
- 인터넷게이트웨이 : VPC와 인터넷을 연결해주는 하나의 관문
-
- 목적지의 주소가 172.31.0.0 이 아니면 IGA A로 보내라는 뜻
- 퍼블릭서브넷 : 인터넷과 연결되어 있는 서브넷
- 프라이빗서브넷 : 인터넷과 연결되어 있지 않는 서브넷
- 네트워크ACL 과 보안그룹
- 방화벽 역할
- 인바운드/아웃바운드 트래픽 보안정책 설정 가능
- 서브넷에 설정할 수 있고 각각의 EC2 인스턴스에 적용 가능
- 보안그룹의 우선순위가 더 높음
- NAT게이트웨이
- #프라이빗서브넷 이 인터넷과 통신하기 위한 아웃바운드 인스턴스
- 프라이빗서브넷에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷게이트웨이 와 연결
서브넷
IP 네트워크의 논리적인 영역을 부분적으로 나누 하위 망
VPC에서도 서브넷을 통해 네트워크 분리
CIDR(Classless Inter-Domain Routing)
- IP주소 + 서브넷마스크 를 같이 표기한 것
- ex) 192.168.50.0/24 --> 처음 24비트가
네트워크 주소
, 나머지는 호스트 주소
- 인터넷상의 데이터 라우팅 효율성을 향상시키는 IP 주소 할당 방법
- 클래스 없는 도메인 간 라우팅 기법
- Address의 영역을 나눌 때 기존방식보다 유연하게 자신이 원하는 Network 주소와 Host 주소를 나눌 수 있음
- IP Address Class보다 더욱 많아진 IP Address의 요구를 충족시키기 위해서 나옴
-
VPC 내의 인스턴스 및 리소스에 할당되는 IP 주소 결정
IP주소 : 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호
Subnet : 하나의 IP 네트워크 주소를 네트워크 내부에서 적절히 분할하여 다수의 상호 연결된 하부 네트워크로 나누어 사용
- 기존 IP주소를 더 잘게 쪼개 IP주소를 아끼고 관리하기 위한 방법
-
Private IP Address
: Public IP Address
의 개수가 한정되어 있기 때문에 더 많은 수의 디바이스를 연결하기 위해 사용
장점
- IP주소 낭비 감소
- 특정네트워크에 필요한 수의 IP주소를 프로비저닝
- 라우팅 테이블 항목 줄어들음
- 데이터 빠르게 전송
- #라우터 에서 보다 효율적으로 IP주소를 활용해 여러 서브넷으로 구성 가능
- 불필요한 경로를 사용하지 않아도 데이터가 대상 주소에 도달
- VPC 생성
서브넷마스크
32비트의 숫자로 '0'의 비트는 호스트 부분을 나타내고 '1'의 비트는 네트워크 부분을 나타냄
IP 주소를 네트워크 및 호스트 주소와 분리
- 클래스A 네트워크
- 255.0.0.0 의 서브넷 마스크 이용 --> 126개의 네트워크 허용, 네트워크당 호스트가 거의 1,7000만개
- 클래스B 네트워크
- 255.255.0.0의 서브넷 마스크 이용 --> 약 1600개의 네트워크 허용, 네트워크당 65,000개의 호스트 허용
- 클래스C 네트워크
- 255.255.255.0의 서브넷 마스크 이용 --> LAN 에 이용, 200만 개의 네트워크 허용, 각각 254개의 호스트 허용
S3(Simple Storage Service)
확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스
- 저장할 수 있는 파일 수 제한 X
- 액세스 제어 가능
- 객체 : S3 에 저장된 데이터 하나 하나의 파일
- 버킷 : 연관된 객체들을 그룹핑한 최상위 디렉토리
- 버킷 단위 지역 지정 가능
- 버킷 내의 객체에 일괄적으로 인증과 접속 제한 가능
- 버킷 이름은 global unique
- 버전 관리 : S3에 저장된 객체들의 변화 저장
- 엄청난 내구성 (파일이 없어지는지 안없어지는지)
- 가용성 (내가 서비스 기간 중 파일을 다운할 수 있는지, 사용할 수 있는지)
보안설정
- Bucket Policy
- 버킷 단위(파일 하나하나 세세한 설정 불가능)
- JSON 형식
- ACL
- 파일 단위
CDN(Content Delivery Network)
Client의 콘텐츠 요청으로 서버에서 받아온 콘텐츠를 캐싱하고 이후 같은 요청이 왔을 때, 캐싱해 둔 것을 제공하는 서비스
서버의 부하를 낮출 수 있음
- 사용자가 서버에서 물리적으로 멀리 떨어져 있는 경우 대용량 파일을 로드하는 데 시간이 오래 걸림 --> 웹 사이트 콘텐츠는 지리적으로 사용자와 가까운 CDN 서버에 저장되며 컴퓨터에 훨씬 빨리 도달
- CDN 의 목적은 대기 시간을 줄이거나 네트워크 설계로 인해 발생하는 통신 지연을 줄이는 것
- 클라이언트와 웹 사이트 서버간에
중간 서버
를 두어 효율성 높임
이점
- 페이지 로드 시간 단축
- 대역폭 비용 절감 : 캐싱 및 최적화를 통해 오리진 서버가 제공해야 하는 데이터의 양을 줄여 비용 절감
- 콘텐츠 가용성 제고
- 웹 사이트 보안 강화 : 여러 중간 서버 간에 로드를 분산하여 오리진 서버에 미치는 영향을 줄임으로써 트래픽 급증 처리 가능
CloudFront : 뛰어난 성능, 보안 및 개발자 편의를 위해 구축된 #CDN 서비스
- 높은 전송 속도 - 소프트웨어, 게임 패치 및 IoT 업데이트를 전송하도록 자동 크기 조정
엣지로케이션
- 컨텐츠가 캐싱되고 유저에게 제공되는 시점
- AWS가 CDN을 제공하기 위해서 만든 서비스인 CloudFront 의 캐시 서버
- #CloudFront 를 통해 서비스하는 컨텐츠를 사용자가 요청하면 지연 시간이 가장 낮은 엣지로케이션으로 라우팅 --> 컨텐츠 전송 성능 뛰어남
- 컨텐츠가 이미 지연 시간이 가장 낮은 엣지 로케이션에 있는 경우 #CloudFront 가 컨텐츠를 즉시 제공
CloudFront 동작 방식
CloudFront는 AWS 백본 네트워크를 통해 컨텐츠를 가장 효과적으로 서비스할 수 있는 엣지로 각 사용자 요청을 라우팅하여 컨텐츠 배포 속도를 높임
- 컨텐츠가 엣지로케이션 에 없는 경우
- 오리진서버 에서 컨텐츠를 검색
- 컨텐츠를 제공하는 근원에서 제공받아 전달
- 컨텐츠가 엣지로케이션 에 있는 경우
- 바로 전달
#CloudFront 장점
- 사용자의 요청이 반드시 통과해야 하는 네트워크의 수가 줄어 성능 향상
- 파일의 첫 바이트를 로드하는 데 걸리는 지연 시간이 줄어들고 데이터 전송 속도가 빨라진다
- 파일(객체)의 사본이 전 세계 여러 엣지 로케이션에 유지(또는 캐시)되므로 안정성과 가용성 향상
- 보안성 향상
- #오리진서버 에 대한 종단 간 연결의 보안 보장 ( https )
ROUTE 53
최종 사용자를 인터넷 애플리케이션으로 라우팅하는 안정적이고 비용 효율적인 방법
가용성과 확장성이 우수한 클라우드 기반의 DNS 웹 서비스
#로드밸런싱 : 도메인을 이용해서 여러개의 서비스로 부하를 분산하는 것
#라우팅 : 네트워크에서 경로를 선택하는 프로세스, 미리 정해진 규칙을 사용하여 최상의 경로를 선택하는 프로세스
특징
- 가용성과 확장성이 뛰어난 클라우드 기반 DNS 웹 서비스
- 동적으로 사용자에게 노출될 DNS 레코드 타입과 값 조정
- 각종 다양한 로드밸런싱 기능 지원
- 사용자의 요청을 EC2, ELB, S3 버킷 등 인프라로 직접 연결 가능
- 외부의 인프라로 라우팅
NACL(Network ACL)
1개 이상의 서브넷 내부와 외부의 트래픽을 제어하기 위한 방화벽 역할을 하는 VPC를 위한 선택적 보안 계층
ACL : Access Control Lists 액세스 제어 목록을 뜻함
Subnet 의 Access List(접근 제어 목록)을 책임짐
특징
- 인바운드 규칙과 아웃바운드 규칙으로 나뉨 - 최대 20개
- 여러 서브넷 적용 가능
- 서브넷은 하나의 NACL 만 연결 가능
- 허용 규칙 / 거부 규칙 생성 가능 --> 보안그룹 은 허용만 가능 - 막는건 NACL 만 가능
- 상태 저장 X ( Stateless ) - 인바운드를 통과해도 아웃바운드의 규칙 적용 -> 반대도 마찬가지
- 트래픽을 허용할 것인가에 대해 결정할 때 가장 낮은 번호의 규칙부터 시작하여 순서대로 규칙 수행
- 연결된 서브넷 내 모든 인스턴스에 자동적으로 적용
SECURITY GROUP
인스턴스를 위해 들어오고(inbound) 나가는(outbound) 트래픽을 제어해주는 가상 방화벽 역할
서브넷 단이 아닌, 인스턴스 단에서 역할
특징
- 허용규칙만 지원
- stateful : 어떤 규칙과도 관계없이, 반환 트래픽 자동 허용
- 트래픽을 허용할 것인가에 대한 결정 전 모든 규칙 평가
- 인스턴스 를 시작할 때 보안그룹을 명시하거나 나중에 인스턴스 와 보안그룹 을 연결할 때에만 적용