1. 클라우드 컴퓨팅
1.1 Why Cloud Computing?
AI, Big Data 기술이 발전에 함에 따라 데이터를 관리하기 위한 cloud computing 능력이 더욱 중요해짐
1.2 장단점
- 장점
- 언제 어디서든, 접근 가능
- 컴퓨터 자원을 늘리기 쉬움
- 사용량 기반 과금이 가능
- 적은 초기비용
- 빠르게 전 세계에 서비스 런칭이 가능
- 단점
- 고급 전문 지식이 필요
- 파악하기 어려운 광범위한 서비스
2. AWS
2.1 AWS의 주요 서비스 소개
- Computing
가상으로 연산 능력을 제공하는 서비스
- EC2(elastic): 사양과 크기를 조절할 수 있는 컴퓨팅 서비스
- Lightsail: 가상화 프라이빗 서버
- Auto Scaling: 서버의 특정 조건에 따라 서버를 추가/삭제할 수 있게 하는 서비스
- Workspaces: 사내 PC를 가상화로 구성하여 문서를 개인 PC에 보관하는 것이 아니라 서버에서 보관하게 하는 서비스
- Network
- Route 53: DNS(domain name system) 웹서비스
- VPC: 가상 네트워크를 클라우드 내에 생성/구성
- Direct Connect: On-premise 인프라와 aws를 연결
- ELB(Elastic Load Balancer): 부하 분산(load balancing) 서비스
- Database
- S3: 여러가지 파일을 형식에 구애받지 않고 저장
- RDS: 가상 SQL 데이터베이스 서비스
- DynamoDB: 가상 NoSQL 데이터베이스 서비스
- ElastiCache: In-memory 기반의 cache 서비스
- AI
- Redshift: 데이터 분석에 특화된 스토리지 시스템
- EMR: 대량의 데이터를 효율적으로 가공 & 처리
- Sagemaker: 머신러닝 & 데이터분석을 위한 클라우드 환경 제공
3. 네트워킹의 기본
- IP Address(IPv4)
8bit x 4 (4개의 octet, 32bit, 총 2^32개)
e.g. 172.16.254.1 - IP 구성
- A Class:
[0xxxxxxx].[xxxxxxxx.xxxxxxxx.xxxxxxxx]
- Network bit(8bit) + Host bit(24bit)
- 2^7개 network 존재 (2^24 IP/network)
- B Class:
[10xxxxxx.xxxxxxxx].[xxxxxxxx.xxxxxxxx]
- Network bit(16bit) + Host bit(16bit)
- 2^14개 network 존재 (2^16 IP/network)
- C Class:
[110xxxxx.xxxxxxxx.xxxxxxxx].[xxxxxxxx]
- Network bit(24bit) + Host bit(8bit)
- 2^21개 network 존재 (2^8 IP/network)
- A Class:
- Network 나누기(subnetwork)
- Network:
211.11.124.0
~211.11.124.255
- 2개의 subnet으로 나누기
- Subnet A:
211.11.124.0
~211.11.124.127
- Subnet B:
211.11.124.128
~211.11.124.255
- Subnet A:
- CIDR: Subnet을 쉽게 표현해보자
고정된 IP / 고정된 bit수- Subnet A:
211.11.124.0/25
- Subnet B:
211.11.124.128/25
- Subnet A:
- 4개의 경우,
- Subnet A:
211.11.124.0/26
- Subnet B:
211.11.124.64/26
- Subnet C:
211.11.124.128/26
- Subnet D:
211.11.124.192/26
- Subnet A:
- Network:
4. VPC - AWS 네트워킹의 동작원리
- VPC(Virtual Private Cloud, 가상 네트워크)의 특징
- 계정 생성 시 default로 VPC를 생성
- EC2, RDS, S3 등의 서비스 활용 가능
- 서브넷 구성
- 보안 설정(IP block, inbound, outbound 설정)
- VPC Peering(VPC 간 연결)
- IP 대역 지정 가능
- VPC는 하나의 Region에 종속
- VPC의 구성요소
- Availability Zone
- 물리적으로 분리되어 있는 인프라가 모여있는 데이터 센터 (일정 거리 이상 떨어져있음)
- 하나의 리전은 2개 이상의 AZ로 구성됨
- Subnet(CIDR)
- VPC의 하위단위로 하나의 AZ에서만 생성 가능
- Private subnet: 인터넷 접근 불가능
Public subnet: 인터넷 접근 가능
- Internet Gateway(IGW)
- 인터넷으로 나가는 통로
- Public subnet - NACL - Route Table - Router - IGW -> Internet
- Route Table
- 트래픽이 어디로 가야 할 지 알려주는 테이블
- Network Access Control List(NACL) / Security Group
- NACL: Stateless, SG: Stateful
- Access Block은 NACL에서만 가능
- NAT(Network Address Translation) instance / NAT gateway
- Private Subnet에서 인터넷 접속을 하기 위한 우회 수단으로 Public Subnet의 Nat instance / Nat gateway를 사용
- Nat instance: 단일 instance (EC2)
Nat Gateway: AWS 제공 서비스 - Bastion host
관리자(인터넷)가 private instance에 접근하기 위해 public subnet 내에 위치한 Bastion host(EC2)를 사용
- VPC endpoint
- AWS의 여러 서비스들과 VPC를 연결해주는 중간 매개체
- 서비스에 비공개로 연결
- Public IP 필요 없음
- Interface Endpoint
Private IP를 만들어 서비스로 연결해줌(SQS, SNS, Kinesis, Sagemaker 등 지원) - Gateway Endpoint
라우팅 테이블에서 경로의 대상으로 지정하여 사용
- NACL
- Inbound: request 허용 포트
Outbound: response 허용 포트 - Security Group (stateful)
- Stateful: Request 받았을 때, source의 port를 기억하고 예외적으로 outbound 허용
- NACL (stateless)
- Stateless: 정해진 규칙에 따라 엄격히 outbound 적용
- Inbound: request 허용 포트
- Availability Zone
- 실습
- VPC 생성 시, 자동으로 라우팅 테이블, 네트워크 ACL, 보안 그룹 생성
- Subnet
Public(10.0.0.0/24
), private subnet(10.0.1.0/24
) 생성 - 인터넷 게이트웨이
인터넷 게이트웨이(dj.yoon-igw
) 생성 후, VPC에 연결 - 라우팅 테이블
- Public, private subnet 각각에 대한 라우팅 테이블(
dj.yoon-public-rtb
) 생성 후, 연결 - 인터넷에 연결할 수 있도록 라우팅 편집
0.0.0.0/0
라우팅 추가
- Public, private subnet 각각에 대한 라우팅 테이블(
- NACL
- Public, private subnet에 대하여 생성(
dj.yoon-public-nacl
) 및 연결 - 인바운드 규칙 추가
- 규칙 번호: 100 단위로 (규칙 번호가 작은 규칙부터 적용)
- 유형: 22(
ssh
), 80(http
), 443(https
) - 허용
- 아웃바운드 규칙 추가
- 규칙 번호: 100
- 유형: 1024-65535
- 허용
- Public, private subnet에 대하여 생성(
- Bastion Host
- public, private ec2 생성
- VPC Endpoint
- 인터넷 게이트웨이가 아니라 Gateway Endpoint를 통해 인터넷에 연결
트래픽 노출을 최소화시켜 Bastion host 보다 낫다 - IAM / 역할 생성
- 권한 추가:
AmazonS3FullAccess
- Private에서 IAM 역할 추가
- 권한 추가:
- 인터넷 게이트웨이가 아니라 Gateway Endpoint를 통해 인터넷에 연결
PREVIOUSEtc