AWS/NIPA-AWS
2025.07.02 교육 내용 정리
NIPA-AWS 3일차 교육 내용인 스토리지, 데이터베이스, 모니터링 및 크기 조정, 자동화 내용 정리
어제자 복습
- Well-Architected Framework → 공통적으로 적용할 수 있는 모범 사례, 6개의 핵심 요소로 구성되어 있다.
- Well-Architected Tool을 통해 질문에 대한 답변으로 개선
- AWS 계정 루트 사용자는 AWS 서비스에 대한 제한 없는 액세스 보유
- 일반적 업무에 활용하지 않는다.
오가니제이션에 속한 루트 계정이면서 SCA 설정이 되어 있는 경우, 특정 서비스 접근에 제한을 받을 수 있다.
- MFA → 계정 보안을 강화할 수 있는 기능
- IAM 서비스를 통해 계정 관리 진행
- 서비스 제어 정책(SCP) → 계층형 방어 적용을 통한 인증 보안 수준 향상
- 여러 가용 영역에 서브넷을 추가하고 서브넷 간 통신을 위한 서브넷 라우팅 테이블 추가
- NAT 게이트웨이 → 앱 서브넷(백엔드)에서 아웃바운드로 통신해야 하는 경우
- EBS → EC2의 파일 시스템
- EC2가 사라지면 루트 볼륨은 사라진다. 하지만 별도로 만든 데이터 볼륨은 사라지지 않는다.
- Lambda → 서버리스 환경에서 압축된 함수 코드를 실행할 수 있는 서비스
스토리지
클라우드 환경에서 스토리지 선택 기준
- 블록, 파일, 객체 스토리지와 같은 유형이 존재
- 객체 스토리지
- 내결함성을 위해 여러 스토리지에 중복 저장
- 클라이언트-서버 모델에서 요청을 위한 매핑 정보 필요
- 분산 처리 및 분산 저장이 가능하다 → 성능 향상
Amazon S3
- S3(Simple Storage Service) → AWS에서 제공하는 객체 스토리지 서비스
- 정적 파일을 데이터, 메타데이터, 키의 조합의 객체로서 저장하는 서버리스 스토리지
- 데이터 백업 기능(고가용성), 미디어 저장 및 스트리밍, 정적 웹사이트, 데이터 레이크, 아카이빙 및 규정 준수
업로드 된 파일은 특정 형식을 갖춘 URL을 통해 접근할 수 있는데 리전이 없는 경우는 일반적으로 버지니아 리전에 해당한다.
- 버킷 정책 → 버킷에 대한 접근 제어를 위한 기능. JSON 파일 형태로 구성하며 20kb 미만으로 구성
- 액세스 포인트 정책 → 버킷의 특정 엔드포인트에 해당하는 전용 경로를 만들고 해당 정책에 의거하여 제한
- 보안 → S3 관리형 키(기본값), KMS 키, 고객 관리형 키
- S3 스토리지 클래스 → 적절한 클래스 적용을 통해 저장 비용 젊감 가능
- 즉각적인 액세스 가능
- Standard
- Standard-IA
- One Zone-IA → 단일 가용 영역
- 복원의 개념 → Glacier ~ = 장기 보관을 위한 클래스
- Glacier Instant Retrieval → 90일 이상 장기 보관을 하지만, 즉각적인 복원이 필요한 경우. 예를 들어, 보안 사고 조치를 위한 로깅용. 최근에 추가됨
- Glacier Flexible Retrieval
- Glacier Deep Archive → 복원 가능성이 낮은 데이터. 예를 들어, 탈퇴한 유저의 개인정보
- 즉각적인 액세스 가능
IA(Infrequent Access)
자주 접근하지 않는 객체. 최소 30일을 유지해야 하는 규칙이 있음
- S3 Intelligent-Tiering → 액세스 패턴이 바뀌거나 알 수 없는 객체 자동 이동
- S3 수명 주기 정책 → 객체 저장 시점부터 기간에 따라 객체 이동 및 삭제를 진행하는 정책
- S3 객체 복제 → 여러 S3 버킷에서 비동기식으로 객체 자동 복사 가능. 복제 규칙 생성 및 적용
- 스토리지 추가 기능
- 버전 관리 → 객체의 여러 버전 보관, 저장 비용 증가
- 빠른 복원을 위한 기능
- 멀티 파트 업로드 → 하나의 객체를 여러 객체로 나눠 병렬 업로드. 대용량 객체 대상. 업로드 중단 상황에 유리.
- Transfer Acceleration
- 이벤트 알림
- 버전 관리 → 객체의 여러 버전 보관, 저장 비용 증가
- 공유 파일 시스템 → EFS, FSx를 사용
Amazon EFS
- EFS(Elastic File System) → 최소 용량 없는 서버리스 형태 서비스. NFS 프로토콜 사용. EC2 인스턴스, 컨테이너, 람다 함수 지원. VPC 범위에서 접근 가능.
- 각 가용 영역에 접근 가능하도록 마운트 포인트(탑재 대상) 생성 → 각각의 서브넷에 존재하는 ENI(Elastic Network Interface)를 통해 동작
Amazon FSx
- 특정 워크로드에 적합한 파일 시스템을 선택할 수 있도록 다양한 옵션을 제공
- 워크로드 예시 → 기계 학습, 분석, HPC, 미디어 시스템
AWS 데이터 마이그레이션 도구
- 온라인 회선 도구
- AWS Storage Gateway → 애플리케이션이 SMB, NFS, iSCSl 프로토콜로 S3 스토리지 액세스
- 기본적으로 HTTPS 방식으로 업로드를 진행하는데, 이외 프로토콜을 사용할 때 중간 처리하는 역할
- S3 File Gateway, Tape Gateway, Volume Gateway
- AWS DataSync → 온프레미스와 AWS 스토리지 서비스 간 주기적 동기화
- AWS Transfer Family → SFTP, FTP, FTPS 프로토콜로 S3와의 파일 전송
- AWS Storage Gateway → 애플리케이션이 SMB, NFS, iSCSl 프로토콜로 S3 스토리지 액세스
- 오프라인 도구
- AWS Snow Family → 온프레미스 디바이스에서 전용 하드웨어를 활용해 마이그레이션
- 인터넷 속도가 충분치 않는 경우 등
- AWS Snow Family → 온프레미스 디바이스에서 전용 하드웨어를 활용해 마이그레이션
데이터베이스
관계형 데이터베이스와 비관계형 데이터베이스 선택
- 이전부터 관계형 데이터베이스를 많이 활용했음 → 사용 순위 오라클, MySQL, MS SQL ... 순서
- 일반적으로 데이터베이스 읽기 및 쓰기를 진행하는 서버는 1대
- 비관계형 데이터베이스는 병렬 처리 진행 → 속도가 빠름
- 솔루션마다 데이터 저장 형식이 다름
AWS 관리형/비관리형 서비스 차이
- 관리형 서비스를 통해 애플리케이션 최적화 외 여러 부분을 AWS에서 관리해준다.
- 관리형 서비스는 커스텀 관련된 제약사항이 있을 수 있음
- 게임 서비스와 같은 곳은 성능 향상을 위한 튜닝을 위해 비관리형 서비스를 활용하는 경우가 있음
Amazon RDS
- RDS(Relational Database Service) → 관계형 데이터베이스를 AWS 관리형 인스턴스로 배포 관리
- EC2 인스턴스처럼 보안 그룹을 활용할 수 있고, 데이터 암호화 가능
- 인스턴스(컴퓨팅 및 볼륨 스토리지) 용량 조정
- Multi-AZ 배포 가능 (프라이머리, 액티브, 스탠바이로 구성 가능) → 데이터베이스 고가용성 구현
Amazon Aurora
- 클라우드를 위해 구축한 MySQL 및 PostgreSQL과 호환되는 데이터베이스
- 스토리지를 클러스터 볼륨으로 제공 → 여러 가용 영역에 걸친 가상 스토리지
- 서버리스 v2 모델 지원
Amazon DynamoDB
- 키-값 기반 비관계형 데이터베이스를 완전 관리형으로 제공
- 읽기, 쓰기별 처리 용량 파악 → 용량 유닛 (CU, Capacity)
- 분산 저장 → 3개의 가용 영역에 걸쳐 1초 내에 테이블 데이터를 복제
- 파티션 키 설정이 중요 → 되도록이면 중복이 없도록 하는 것이 좋음
- 읽기 일관성 유지를 위해 읽기 전용 가용 영역을 비교하여 일치할 경우만 전달
DynamoDB 글로벌 테이블
- 리전 간 복제본이 모두 액티브 데이터베이스 역할을 담당하는 기능
데이터베이스 캐시
- 클라이언트가 데이터베이스 접근 성능을 높이기 위해 데이터베이스 계층 앞 단에 캐시를 추가 배치
- 캐시와 데이터베이스 동기화 필요 → 레이지 로딩, 라이트 스루 전략 필요
- 캐시 적용을 고려할 케이스
- 쿼리 속도가 느리고 비용이 많이 드는 데이터 존재 → 여러 테이블에 거쳐 조인을 수행하는 쿼리
- 비교적 정적이며 액세스 빈도가 높은 존재 → SNS 서비스 프로필
- 라이트 스루 → 자주 액세스 하는 데이터가 아님에도 캐시 처리 가능
데이터베이스 마이그레이션 도구
- 데이터베이스 마이그레이션을 진행할 때 유의하는 부분
- AWS Database Migration Service → 온프레미스 데이터베이스 초기 및 지속적 데이터 복제
- 마이그레이션 과정에서 발생하는 다운 타임(중단되는 시간) 최소화
- AWS Scheme Conversion Tool → 온프레미스와 클라우드 이기종 데이터베이스 마이그레이션을 위한 사전 스키마 변환 도구
- AWS Database Migration Service → 온프레미스 데이터베이스 초기 및 지속적 데이터 복제
모니터링 및 크기 조정
AWS 클라우드 모니터링 대상 리스트
- 배포한 AWS 리소스의 성능 지표
- 로그를 남기는 AWS 리소스
- EC2 위에 배포한 애플리케이션의 로그
- AWS 계정 내의 API 호출과 응답
- VPC내에 오가는 IP Packet
AWS 클라우드에서의 모니터링 알림 설정
- AWS 리소스의 성능 값에 대한 임계치 설정 후 벗어날 시 수행할 작업 정의
- 여러 리소스에서 발생되는 이벤트를 캡쳐 후 이에 따라 수행할 작업 정의
- 변경사항을 탐지하여 알림을 발생
Amazon Cloudwatch
- EC2에 설치하여 시스템 레벨의 지표를 수집하고 임계치 지표 설정
- 수집할 지표, 임계치 기준 등 설정
Amazon EventBridge
- 여러 리소스의 이벤트를 구칙으로 선언하고, 발생시 이에 따른 작업을 대상에게 라우팅
AWS CloudTrail
- 계정 내 대부분의 AWS 서비스에 대한 API 호출 및 응답을 S3에 로깅
- 특정 EC2를 종료한 사용자, 권한 부족으로 거부된 활동, 보안 그룹 구성 변경한 사용자 등등
VPC 흐름 로그
- VPC ENI에 송수신되는 IP 트래픽 정보 수집
Elastic Load Balancing
- 여러 컴퓨팅 리소스 대상으로 자동으로 트래픽 분산 및 상태 확인 수행
- 가용 영역 수준에서의 고가용성 및 보안 기능 제공
ELB 로드 밸런서 종류 및 기능 비교
- Application Load Balancer → HTTP/HTTPS 기반으로 컴퓨팅 로드 밸런싱 및 상태 확인
- Network Load Balancer → TCP/UDP 기반으로 컴퓨팅 로드 밸런싱 및 상태 확인
- Gateway Load Balancer → IP/TCP 기반으로 보안 솔루션 EC2의 로드 밸런싱 및 패킷 라우팅
Application Auto Scaling을 지원하는 서비스의 예제
- EC2 인스턴스의 수량
- DynamoDB 테이블의 읽기/쓰기 용량 유닛
- Aurora Reader Node
- Amazon ECS task 수량
- Lambda 함수 프로비저닝된 동시성
Amazon EC2 Auto Scaling
- EC2 인스턴스의 인스턴스 수량 조절을 자동화
- 여러 가용 영역을 포함한 그룹 생성 가능
자동화
AWS CloudFormation
- Infrastructure as a Code → 코드형 인프라. AWS 리소스를 코드 형태로 배포 업데이트 및 삭제
- 수동으로 리소스를 만드는 부담을 덜 수 있다.
기타 AWS 인프라 배포 및 관리 도구
- AWS Elastic Beanstalk → AWS에서 프로비저닝 및 운영하는 EC2 기반 인프라 제공
- AWS 솔루션 라이브러리 → AWS 아키텍트가 승인한 Cloudformation 기반 아키텍처 레퍼런스
- AWS CDK → Python, JavaScript 등의 프로그래밍 언어로 Cloudformation 템플릿 생성 배포
- Amazon Q Developer → AI 기반 코드 도우미
- Cursor와 같음
- AWS Systems Manager → EC2 인스턴스의 구성, 운영 및 규정 준수 관리
Last updated on