On the journey of
[산학협력 비교과] 2. 클라우드 서비스 - 네트워크, 컴퓨팅 본문
* 본 강의는 LINC 사업단의 사업 일환으로 진행되었으며, 강의안은 유출 금지이기에 수강하면서 기록만 하고자 합니다.
* 본 강의는 AWS Korea의 Solutions Architect 담당자분께서 진행해 주셨습니다.
[ 네트워크]
0. Network Overview
IT에서 네트워크란 Resource를 공유하고, 서로 커뮤니케이션할 수 있도록 해주는 수단이다. 쉬운 예로 한 컴퓨터에서 다른 컴퓨터로 메일을 보내는 것 등이 있다. 또 집 Wifi-Network와 학교의 Wifi Network 망이 달라, 통신하기 위해 '라우터'라는 장비를 통해 요청을 하는 것 또한 하나의 예시이다.
1. Network - Amazon VPC
AWS에선 전 세계를 Region(데이터센터를 클러스터링하는 물리적 위치)라고 하고, 여기서 AZ(Availability Zone)는 AWS 리전의 중복 전력, 네트워킹, 연결 등이 모두 제공되는 하나 이상의 개별데이터센터를 의미한다.
VPC(Virtual Private Cloud)는, 사용자가 정의하는 논리적으로 격리된, 가상 환경에서 구축된 private 네트워크 환경을 의미한다. 말하자면, AWS라는 땅 위에, VPC는 아파트 부지를 얼마로 할지 정하는 것이다. Subnet은 아파트의 '동' 개념과 비슷하다고 생각하면 된다(사용할 자원 배분). 아파트 정문의 역할을 하는 인터넷 Gateway 또한 정의가 가능하며, 이 정도 구성만으로도 AWS의 확장 가능 인프라를 기존 데이터센터 환경과 유사하게 사용할 수 있다.
AWS 계정을 생성하면 VPC 또한 Default VPC로 제공되기 떄문에, 어렵지 않게 시작할 수도 있다 :)
1-1. VPC 구성
IP주소는 네트워크주소와 호스트주소의 조합( 네트워크주소.호스트주소 형태)이다. 앞에 16개 비트는 네트워크 주소(같은 네트워크를 공유하는지 확인, 고정값), 뒤는 호스트 주소(unique한 할당값)로 이뤄져 있다. VPC 대역보다 작은 크기를 갖게 되는 Subnet을 설정할 떄는 용도에 맞게 분리하며, 하나의 대역에 문제가 생기더라도 다른 대역을 통해 문제가 생기지 않도록 하는 것이 일반적이다. /24 bit를 통해 256개 주소를 사용할 수 있다(서브넷당).그리고 AWS가 기본적으로 5개 IP 주소를 예약해두는데, 각 주소는 아래와 같다
- 10.0.0.0 - 네트워크주소
- 10.0.0.1 - VPC라우터
- 10.0.0.2 - DNS용
- 10.0.0.3 - 향후 대비용
- 10.0.0.255 - 브로드캐스트 주소
1-2. 라우팅 테이블 - 로컬 통신
네트워크 주소를 공유하는 리소스들은, 기본 라우팅 테이블의 Target이 local로 설정되어 있는 경우 별다른 조치 없이 공유가 가능하다. 라우팅 테이블은 각 서브넷에서 표지판의 역할을 해주며, local로 설정되었다면 local이 아닌 경우 internet gateway로 이동하게 된다. Subnet은 한편 퍼블릭 & 프라이빗 (Public & Private)으로 나뉘는데, 프라이빗 서브넷에 있는 리소스는 일반인의 접근이 불가능하며 public은 가능하다.
1-3. Private subnet의 인터넷 통신
한 인스턴스가 Private IP주소만 갖고 있다고 하자. 이 인스턴스가 인터넷 통신이 가능하게 하려면 Public 라우팅 테이블을 별도로 작성해 줘야 한다. 프라이빗서브넷 내부에서, 퍼블릭 서브넷 측으로 공개요청을 보내면, gateway로 보내서 통신이 가능해지는 방식이다.
1-4. DNS와 DHCP
DHCP를 통해 새 리소스를 자동으로 사설 IP에 할당하는 것이 가능하고, 빌트인 DNS를 통해서는 프라이빗 DNS 이름을 자동 할당하는 게 가능하다.
2. VPC 액세스 제어 : NACL & 보안그룹
2-1. NACL(Network Access Control List; 나클)
- 서브넷 단위 방화벽
- 상태 비저장(Stateless)
- Allow, Deny 설정 가능
- Inbound, Outbound 별도 설정(Inbound에서 허락된 트래픽 응답도 Outbound 규칙 내 명시적 Allow가 있어야 return 가능)
2-2. Security Group (SG)
- 인스턴스(ENI) 단위 방화벽
- 상태 저작(Stateful)
- Allow만 설정 가능(나가는 건 자유롭게 나갈 수 있음)
- Inbound로 허용된 트래픽의 Outbound는 자동 허용
- 다른 보안그룹을 참조해 Source로 지정 가능(아무런 규칙이 없는 경우)
3. VPC 연결
3-1. VPC Peering (Peering Connection)
- Private VPC(Target이 라우팅 테이블상 local로만 정해진 경우) 2개가 통신을 해야 하는 경우 사용되는 게 Peering Connection이다. 이때 주의할 건 VPC간 대역이 겹쳐서는 안 된다는 것..연결이 불가능하고, 통신도 자연히 불가능해진다.
- 전이적 라우팅은 불가(ex. VPC 1-2 통신 가능, VPC 2-3 통신 가능하다고 해서 VPC 1-3이 가능한 건 아님)
3-2. AWS Transit Gateway
- Hub & Spoke 구조
- DX, VPN과 같은 다양한 연결 옵션 가능
- 각 VPC가 AWS Transit Gateway로 연결되면, 이 Gateway에서 각 데이터 센터로 연결해주는 방식
3-3. 운영환경을 위한 VPC 디자인
- 보안을 위해 인터넷 통신을 의도하지 않은 환경은 private subnet으로 분리
- private subnet outbound 통신용 NAT 게이트웨이 활용
- NACL과 보안그룹으로 VPC 내 자원 액세스 제어
[ 컴퓨팅 ]
0. 컴퓨팅(Compute)이란
- 컴퓨터는 크게 CPU, Memory, Storage로 이뤄져 있다. 이때 아마존 EC2에 CPU와 Memory // EBS에 Storage가 속함.
- EC2(Elastic Compute Cloud) -CPU : 중앙처리장치(실질적 연산 처리), Memory: 실행에 필요한 데이터 임시저장
- EBS(Elastic Block Store) - Storage : 데이터 영구 저장
1. 가상화
구조는 기본적으로 아래와 같다.
가상화 기술
1) Virtual Machine
2) Container 인 것!(어플이 실행되는 공간만 분리)
2. 컴퓨팅 서비스
- Amazon EC2 : 클라우드에 위치한 가상 서버 인스턴스
- Amazon ECS, EKS, Fargate : Docker 컨테이너를 대규모로 실행, 관리할 수 있는 서비스
- AWS Lambda : 이벤트에 대한 응답으로 코드를 실행하는 서버리스(Serverless) 컴퓨팅
2-1. Amazon EC2
- AWS 글로벌 region에 위치한 물리적 서버에서 구동되는 자원
- solution layer 위에 호스트 서버, 그 위에 하이퍼바이저가 있으며 자원을 효율적으로 쓸 수 있다는 장점이 있다.
- Linux, Mac, Windows 등 다양한 OS 지원
- On demand / Spot / 예약 인스턴스 등 다양한 옵션 제공
2-2. Instance
- 기본 AMI로 인스턴스 생성(Amazon S3에서 VPC로 이미지 이동)
- 변경/구성 후 사용자 정의 AMI 작성(Amazon EC2에서)
- 사용자 정의 AMI를 사용해 필요한 인스턴스 작성(시작)
- 인스턴스에서 필요한 메모리(Storage Type - Instance Store, Elastic Block Store 중 선택) 결정
- EC2 인스턴스 수명 주기(state 종류) - 실행중(Running), 정지됨(Stopped), 종료됨(Terminated)
- 실행중(Running) - 실제 과금 발생, 정지/종료/Reboot(리부트) 명령으로 상태 전이 가능
- 정지됨(Stopped) - 과금 X, 시작/종료 명령으로 상태 전이 가능, EBS Volume이 Root인 instance만 가능
- 종료됨(Terminated) - 인스턴스가 완전히 제거된 상태, 과금 X, 시작/정지 등 불가능
2-3. Instance 유형
2-4. 인스턴스 이름 지정 규칙
ex ) c7gn.xlarge 가 있다 하면
c - 인스턴스 패밀리
7 - 인스턴스 세대
gn - 추가 기능 ( 프로세서, 스토어 볼륨, 네트워크/블록스토리지 최적화,추가 스토리지, 고주파 등(
xlarge - 인스턴스 크기
2-5. Auto Scaling & Load Balancing
2-5-1. Auto Scaling
- 리소스 낭비 (비용적으로도 이슈 발생) case를 해결하고자 나온 것이 Auto Scaling
- 자동적으로 서버 확장 / 축소 : AUTO Scaling
- 평균 CPU 사용률을 보고 1개 / 2개 추가 등 추가여부(제거할 수도 있음) 및 추가 개수 확인
2-5-2. Load Balancing
- 네트워크 트래픽 분산을 통한 애플리케이션 확장성 개선
- 여러 가용영역 기반 고가용성 제공
- 트래픽에 따라 자동 조정(트래픽 받는 대상-EC2 인스턴스, 컨테이너, IP주소, Lambda함수, 가상 appliance)
- Application Load Balancer, Network Load Balancer, Gateway Load Balancer 등
'학교 프로그램' 카테고리의 다른 글
[자진프] 클러스터링 (0) | 2023.09.29 |
---|---|
[산학연계 비교과] 인공지능 시대의 클라우드 서비스 1. 클라우드란 (0) | 2023.05.31 |