Code&Data Insights

[새싹 성동 2기] AWS 기초 - VPC, EC2, Load Balancing, S3, RDS 본문

Cyber Security/[새싹+SK쉴더스] 생성형 AI 활용 클라우드&보안 전문가 과정

[새싹 성동 2기] AWS 기초 - VPC, EC2, Load Balancing, S3, RDS

paka_corn 2024. 11. 2. 09:40

VPC (Virtual Private Cloud)

[ACL]

: 서브넷 내부와 외부의 트래픽을 제어하기 위한 방화벽 역할을 하는 VPC의 선택적 보안 계층

 

[라우팅 테이블]

: 네트워크 트래픽을 전달할 위치 결정 시 사용되는 규칙

 

[인터넷 게이트웨이]

: VPC의 인스턴스와 인터넷 간에 통신이 가능할 수 있게 해주는 기능

- 수평 확장되고 가용성이 높은 중복 VPC 구성요소

- 퍼블릭 IPv4 주소가 할당된 인스턴스에 대해 NAT(네트워크 주소 변환)를 수행하는 두 가지 목적을 가짐

- IPv4, IPv6 트래픽을 모두 지원

 

[NAT 게이트웨이]

: 사설 네트워크의 장치가 공인 IP를 통해 인터넷에 접근할 수 있도록 네트워크 주소를 변환(NAT)해주는 서비스

 

EC2

EC2는 가상 머신을 만드는 것 

=> 내려받은 키 페어 파일은 해당 인스턴스 접속을 위해서 잘 보관해야 함

** 전원이 OFF되면, 저장 데이터가 날아감 (Volitile) **

- AMI : Amazon Machine Image ( 가상머신이미지 ) 

 

- 인스턴스 유형 

https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-type-names.html

범용 인스턴트

C Series - Compute optimized

D Series - Dense storage

M Series - General purpose

 

EBS

EBS는 EC2를 위해 설계된 사용이 쉽고 확장 가능한 고성능 블록 스토리지 서비스

 

- EBS snapshot 

: AWS EBS(Elastic Block Store) 볼륨의 백업본

=> AWS 클라우드 환경에서 데이터를 안전하게 백업하고, 필요 시 신속하게 복구할 수 있도록 지원

=> region간의 데이터 이동을 지원 

 

EIP 

고정된 IP주소를 제공해주는 서비스

=> 반드시 필요에 따라서만 생성해야함(모든 EIP주소에 대해 요금이 부과됨)

 

가용성 증대 방안 

원하는 시점에 원하는 서비스(규모)를 제공받을 수 있는 것 

-> 수평적인 확장(Scale Out)이 필요함 : 수직적 확장에 비해 증설이 용이함 

<-> 수직적 확장(Scale Up) : 하드웨어 증설

-> 로드 밸런스(LB)

=> 수평적 확장 + 부하분산이 이루어져야 함 => Auto Scaling + ELB(Elastic Load Balancer) 

 

Load Balancing 

: 여러 서버에 트래픽을 분산하여 애플리케이션의 성능과 가용성을 향상시키는 관리형 서비스

 

모든 인스턴스를 다른 AZ(Availability Zone)에 배치하는 것이 권장 사항

- Target Group  (target : LB를 적용할 대상 그룹)

- health check를 통해 죽은 traffic은 연결을 끊음

 

=> 부하가 많은 경우 알림 - SNS (Simple Notification Service) 

 

Q) 로드 밸런스를 적용하지 않고, 각각의 인스턴스를 돌릴 경우?  

- 트래픽 분산 불가, 가용성 저하, 헬스 체크 부재, IP 관리의 복잡성 증가

 

LB의 종류

1) Application Load Balancer(ALB)

 

  • HTTP/HTTPS 트래픽을 처리하며, 레이어 7 로드 밸런싱 기능을 제공
  • 경로 기반, 호스트 기반 라우팅, WebSocket 및 서버리스 애플리케이션과의 통합 지원

2) Network Load Balancer(NLB)

  • 초저지연, 높은 처리량을 요구하는 TCP/UDP 트래픽에 적합하며, 레이어 4 로드 밸런싱을 제공합니다.
  • 정적 IP와 TLS 종료를 지원.

 

[ ELB(Elatic Load Balancing) ]

: 둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP 주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산해주는 서비스

 

S3 

버킷이라는 파일 저장소 

웹을 통해 언제 어디서든 원하는 양의 데이터를 저장하고 검색이 가능함

- 버킷 이름은 unique 해야함 

 

=> 데이터 내구성 (99.999999999%)

=> unlimited 저장 용량 제공 

=> object(객체) : 파일

 

(ex) 백업 및 복원, 재해 복구(DR), 아카이브, 클라우드 스토리지 

 

S3의 기능 

1) 버전 관리(S3 Versioning)

- 버전 관리를 활성화 하고, 동일한 객체 이름을 업로드하면 이전 버전으로 저장됨 => versionId로 조회가능

 

2) 객체 암호화

 

3) 정적 웹사이트 호스팅

* static website <->  dynamic website

 

정적 - 고정되어 있는 파일 서비스 

동적 - 사용자의 요청에 따라 결과를 보여주는 서비스 

 

=> 버킷에 업로드한 파일을 HTTP(s) 접속을 통해서 이용 : "S3가 웹 서버 기능을 제공" 

==> s3를 이용하면 서버리스 아키텍쳐를 구현 가능

하드웨어 관리가 필요 없음

S3(파일 저장) - lambda (연산 관련) - DB(RDS, DynamoDB) + 인증/인가 

-> 서버의 개념이 사라짐, 서비스만 가져와서 연동함 

(원래의 구조 WEB - WAS - DB) 

 

4) 객체 수명주기 관리 (Lifecycle Policy)

: 설정한 날짜 이후 더 저렴한 storage로 이동됨 

 

5) 이벤트 알림 

- 이벤트 : 객체 생성, 복제, 복원 

- 생성된 이벤트 알림은 SNS, SQS, Lambda 등으로 보낼 수 있음 

 

6) 전송 가속화 (S3 Transfer Acceleration) 

 

7) 객체 잠금

- 일정시간, 무기한으로 객체가 삭제되거나 덮어쓰이지 않도록 하는 기능

- 법적인 보존기간이 있는 객체의 경우에 사용 

 

8) 요청자 지불 버킷 

- 데이터 전송 비용을 버킷 소유자가 아닌 요청자(데이터를 다운로드 및 업로드하는 사용자)가 지불

 

9) 동일한 이름의 객체(파일)을 업로드하면 덮어쓰게 됨

 

S3의 종류

1) S3 Standard (범용)

: 짧은 지연시간, 많은 처리량

 

2) S3 Intelligent-Tiering 

: auto-tiering data with any access pattern

(1) 빈번한 액세스에 최적화 (2) 저렴한 비용, 빈번한 액세스가 필요없음 경우를 자동적으로 판단하여 저장하여 비용 최적화

 

3) S3 Standard-IA(Infrequent Access)

 

4) S3 One Zone-IA

: 자주 액세스하지 않지만, 빠르게 액세스해야 하는 데이터에 적합 

* 다른 S3 스토리지 클래스와 달리 단일 가용영역(AZ)에 데이터를 저장

(standard-IA 보다 20% 저렴)

복원력이 필요없는 경우 

 

5) S3 Glacier 

: 아카이브, 저렴한 비용으로 장기 보관하는 백업 용도 

 

6) S3 Glacier Deep Archive 

: 가장 저렴

7~10년 이상 데이터를 장기 보관하는 용도 

검색 시간이 12시간 이내 

 

RDS(Relational Database Service) 

: 클라우드 환경에서 관계형 데이터베이스를 더 쉽게 설치, 운영, 확장할 수 있도록 지원하는 완전 관리형 서비스

 

- 고가용성: Multi-AZ 배포 옵션을 통해 장애 시 자동으로 장애 조치를 수행

- 성능 최적화: 읽기 전용 복제본(Read Replica)과 확장 가능한 스토리지로 성능 개선

- 보안: VPC 네트워크 연결, AWS IAM 인증, 데이터 암호화(AES-256) 지원

- 유연성: 요구에 맞게 인스턴스 크기 조정 및 스토리지 확장이 가능하며, 시간당 사용한 리소스에 따라 비용이 청구

- 자동화된 관리: 백업, 복구, 패치 적용, 모니터링 등의 작업을 AWS가 자동으로 수행

 

==> 이 서비스는 산업 표준 관계형 데이터베이스를 위한 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업이 가능

 

베스쳔 호스트(Bastion Host)

: 민감한 데이터나 중요한 서비스가 위치한 내부 네트워크로 안전하게 접근하기 위한 중계 서버

 

- 클라우드 환경에서 민감한 데이터나 중요한 서비스가 있는 내부 네트워크에 접근할 필요가 있을 때, 사용자는 먼저 베스쳔 호스트에 접속해야 함 -> 이렇게 하면 베스쳔 호스트가 로그와 보안 정책을 적용할 수 있음

 

reference 

https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections

https://aws.amazon.com/ko/what-is/sre/

Comments