9/3 AWS 테크캠프를 통해 아마존 서비스에 대해 알 수 있는 시간이었습니다.
강의 시작하고 2-30분간은 이론 수업을 해주시는데 이해가 잘 안가서
[AWS TechCamp 사이트] 에 들어가 이론 수업을 2번이나 반복해서 들었습니다.
내용이 동일해서 정말 다행이었습니다.
📍 서버리스
서버가 없다는 것이 아니라 서버를 관리할 필요가 없다는 것!
서버 관리 및 운영을 AWS에 맡기고 개발자는 비즈니스(코드작성)에만 집중하면 됨.
1️⃣ 물리적인 인프라 → 2️⃣ 가상머신 → 3️⃣ 컨테이너 → 4️⃣ 서버리스
인프라 기술의 발달이 향상되었어도 관리는 계속 해줘야함. (24시간 모니터링)
서버리스를 사용하면 인프라를 관리하는 부담이 낮아짐.
서버리스 서비스 안에 AWS Lambda, Amazon S3, Amazon DynamoDB, Amazon API Gateway가 다 포함되어 있다
서버리스의 장점
- 서버 관리 필요 없음
- 사용한 만큼만 지불
- 요청에 맞게 오토스케일링
- 높은 보안 수준
3-Tier 서버리스 아키텍처
Amazon S3 : 정적 WebPage 호스팅
AmazoneAPI Gateway : Lambda를 호출할 수 있는 인터넷 주소를 만듦. Web page의 기능을 호출하는 통로
AWS Lambda : Webpage의 기능을 가지고 있는 Lambda. 작성한 코드가 올라감.
Amazon DynamoDB : 내용을 저장하는 데이터베이스
3-Tier 아키텍처에 대해서도 궁금해진다.
📍 AWS Lambda
AWS Lambda의 특성
- 불필요한 서버 관리
- 자동확장(=오토 스케일링)
- 고가용성 및 보안
- 사용한 만큼만 지불 (요청횟수+실행시간)
Event Driven Architecture에서 주로 사용한다.
이벤트 소스 →
: 어떻게 실행할지만 방법을 정해주면 된다
함수 →
: 다양한 언어를 사용할 수 있다
서비스
: 이것이 람다.
📍 Amazon API Gateway
API Gateway는 API 기반 아키텍처 관문
사용자 요청을 받으면 다양한 서비스에 요청. 트래픽을 전달한다.
다양한 API 유형을 지원한다 (RESTful: HTTP APIs & REST APIs , WebSocket APIs)
📍 Amazon DynamoDB
대규모 성능에 최적화된 완전 관리형 NoSQL 데이터베이스 서비스
- 서버리스
- 유지관리 불필요, 오토 스케일링, 고가용성 및 내결함성
- 트래픽에 따라서 알아서 늘어나고 줄어듬
- 높은 성능
- Known access pattern이 있는 어플리케이션에서 이상적 성능
- 초당 수백만의 요청 처리 및 짧은 지연시간
- 자동화된 글로벌 복제 (여러개의 리전이 있음)
- 다른 AWS 서비스와 통합
- 많은 트래픽을 받아도 성능이 떨어지지 않음. 무한 퍼포먼스
- 보안 및 액세스
- 전송 중 및 저장 시 암호화
- API/ORM을 통한 세부적인 액세스 제어
- IAM을 통한 승인
SQL ; 관계형 데이터베이스
- 수직적 확장 (늘어날 경우 CPU+메모리가 더 필요)
- 트래픽이 많은 경우 성능 향상 필요
- 과도한 읽기, 쓰기에 취약해서 한계가 있다.
- 열: Columns / 행: Rows 로 구성되어 있음
NoSQL
- 다수의 샤드로 수평 확장
- key-value 형태의 데이터 저장
- 무한 퍼포먼스 가능
- 열 : Attributes / 행 : Items 로 구성되어 있음
- 서버리스이므로 인스턴스는 없고 테이블이 생성된다.
- Attributes는 데이터가 넣는대로 넣어져서 DynanoDB는 설계 부담이 적다
- Partition Key를 넣는다 (Unique key)
- 정렬이 필요한 경우 Sort Key를 생성한다
- Partition Key + Sort Key = Primary Key
📍 Amazon S3
Amazon Simple Storage Service는 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 ; 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스 이다
파일을 S3에 올리면 객체로 올라간다.
한 번 파일을 올리고나서 많은 사람들이 다운받을 때 성능이 좋다.
그 이유는 2개의 가용영역이 있어서 복제되서 총 6개의 데이터가 생성된다(?) (→ 고가용성, 내구성이 좋음)
S3 : 버킷+오브젝트로 이루어짐
버킷 이란 ? Amazon S3에 저장된 객체에 대한 컨테이너이다. 버킷에 저장할 수 있는 객체 수에는 제한이 없다. 또한 계정에 버킷을 최대 100개까지 포함할 수 있다. 즉, 하나의 폴더와 같은 개념
오브젝트 란? Amazon S3에 저장된 기본 개체 유형으로 하나의 데이터와 메타데이터로 구성되어 있다. 즉, 하나의 파일과 같은 개념
정적 웹 사이트 호스팅
차단되는 퍼블릭 액세스의 유형
- 새 ACL을 통해 부여된 버킷 및 객체에 대한 액세스
- 모든 ACL을 통해 부여된 버킷과 객체에 대한 액세스
- 새 퍼블릭 버킷이나 액세스 제어 정책을 통해 부여된 버킷과 객체에 대한 액세스
- 모든 퍼블릭 버킷이나 액세스 포인트 정책을 통해 적용되는 버킷과 객체에 대한 교차 계정 액세스
S3에 데이터를 올리면 다 막혀있다. (default가 차단)
외부 액세스가 가능하게 퍼블릭 액세스를 허용한다 (차단 해제)
ACL 이란 ? A network access Control List 의 약자로 네트워크 액세스 제어 목록이다. 서브넷 수준에서 특정 인바운드 또는 아웃바운드 트래픽을 허용하거나 거부한다.
📎 참고
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/UsingBucket.html
'클라우드_인프라' 카테고리의 다른 글
| 개인 프로젝트 Swimcolor에서 AWS 아키텍처가 바뀌게 된 이유 (0) | 2026.03.06 |
|---|---|
| AWS 핵심 서비스로 웹 어플리케이션 구축하기 (1) | 2024.09.25 |
| MSA :: Micro Service Architecture 알아보기 (1) | 2024.09.04 |
