티스토리 뷰
인프라/AWS
[AWS/SSA-C03] Module 2 - 고성능 아키텍처 설계 Design Performant Architectures
물고기고기 2023. 3. 3. 19:49Self-paced digital training on AWS - AWS Skill Builder 를 보며 정리한 내용입니다.
EBS
- 블록 스토리지
- EC2 인스턴스에 디스크로 EBS 볼륨 탑재 가능
- SSD vs HHD
- SSD : 용량 큰거 저장할 때
- HHD : 자주 저장할 때
- 데이터는 자동으로 백업되지 않음
- 인스턴스가 중지되어도 데이터가 손실되지 않음
S3
- EC2 인스턴스가 동적 컨텐츠만 제공하도록 정적 컨텐츠는 S3에 저장
- 리전 중 하나에 버킷을 생성 → 버킷 이름은 S3 URL의 하위 도메인이 됨
- 버킷에 원하는 수의 객체를 업로드 가능
- S3 객체는 버킷 이름에 따라 자동으로 URL이 할당됨(가상 호스팅 스타일 또는 경로 스타일)
- 리전과 별개의 이름을 참조하더라도 버킷은 항상 리전에 연결됨 → 버킷이름은 전역적으로 고유함 → 특정이름이 한번 생성되고나면 모든 리전에서 고유해야함
- 버킷 이름 뒤 파일경로 = 키
- 요금 산정?
- 용량
- 리전 외부로 전송(같은 리전이라면 무료)
- API 요청(단, S3로의 전송은 무료임)
- S3 Standard vs S3 Standard - IA
- Standard-IA : 용량별 비용 저렴, API요청 당 비용이 높음, 30일 스토리지 → 잘 액세스 하지 않는 데이터일 경우 추천인셈
- S3 수명 주기 정책 : 데이터 액세스 빈도에 따라 Standard → Standard-IA → Glacier → 삭제 이런식으로 관리 가능
EBS와 S3는 무슨 차이
- 둘다 가용 영역 내에 자동 복제됨
- EBS는 직접 컴퓨터에 붙어 하드디스크처럼 작동한다고 보면 됨(볼륨당 인스턴스 한개니까)
- EBS 볼륨은 암호화가 가능
RDS
- 데이터의 내구성이 좋음
- 읽기 전용 복제본 추가 가능 → MySQL, MariaDB, PostgreSQL , Aurora
Dynamo DB
- 샤딩 가능(서버 확장이 쉬움)
- 무제한의 스토리지 제공
- 대규모 읽기/쓰기 속도
- RCU vs WCU
- RCU : 읽기 용량 단위
- WCU : 쓰기 용량 단위
CloudFront 엣지 로케이션(CDN, 콘텐츠 전송 네트워크)
- 정적 컨텐츠 캐싱에 사용됨
- S3 등 오리지널 버킷의 캐싱용으로 사용
- 요청과 응답이 퍼블릭 인터넷 대신 AWS 백본을 통해 이동
- 기본 오리진은 S3 → EC2, ELB 외부 웹서버를 오리진으로 쓰는 것을 커스텀 오리진이라고 함
- 커스텀 오리진은 동적으로 생성되는 페이지를 캐싱할때 쓰임 (웹서버가 필수로 있어야함)
- AWS Shield와 통합되어있음 , 웹 어플리케이션 방화벽인 WAF와도 통합되어 있음 → 요청을 확인함
Auto Scaling
- 수직적 조정(스케일 업/다운) vs 수평적 조정(스케일 인/아웃)
- 자동으로 로드밸런서에 인스턴스를 등록
- Cloud Watch를 이용하여 인스턴스를 모니터링함 → 예를 들어 CPU사용률이 특정 임계값을 넘으면 Cloud Watch가 경보를 냄 → Auto Scaling이 이 경보를 가로챔 → 이후 어떤 작업을 수행할지 지정(인스턴스 수와 유형 결정)
- EC2에서 Auto Scaling을 사용하려면 Auto Scaling, ELB , CloudWatch를 연동해야한다
- 인스턴스를 자동으로 시작하기 위해서 사용하는 것? 시작 구성 (* AMI ID도 필요하고 이것저것 필요한데 결정적으로 시작 구성이 시작하기 위한 모든 데이터를 말하는 것임)
- Auto Scaling 시작 구성 → EC2 인스턴스 크기 및 AMI 이름 지정
- Auto Scaling 그룹 → 시작 구성의 크기(인스턴스 최소&최대 크기) , ELB 참조, 인스턴스 도움말 확인 방법 지정(상태 확인 유형)
- Auto Scaling 정책 → 스케일 인/아웃의 규모를 지정, 여러 정책을 그룹에 연결 가능 → Cloud Watch를 이용하여 스케일 인/아웃의 시기를 결정
Cloud Watch
- CPU, 네트워크, 대기열 크기를 모니터링 할 수 있음 → 메모리 사용 추적 불가능!!
- CloudWatch Logs에 로그 저장 가능
- 로그를 지표로 변환도 가능 & 사용자 지정 지표도 볼 수 있음
- 계산법 유의, 5분 기간 3회에 걸쳐 특정 임계값에 경보 설정 → 15분이 넘도록 임계값을 넘겨야 경보를 받는 것임.
Elastic Cache
- DB용 캐싱
- Memcached vs Redis
- Memcached → 간편한 설정, 멀티스레딩
- Redis → 데이터 구조 지원, 지속성(싱글 스레드), 메시징도 가능 더 복잡한 설정 가능
- 가능한한 최신이어야하고 오래되면 안되는 데이터(중요한 데이터라고 생각하면 될듯) → 이런애는 무조건 데이터베이스에서 왔다갔다해야함
ELB(Elastic Load Balancer)
- Application Load Balancer를 사용하면 교차 영역 로드 밸런싱이 항시 활성화됨 → 다만 Network & Gateway LB를 사용하면 비활성화됨 (가용영역 두개를 연결했을때 해당 가용영역에 정상 그룹이 1개 이상 있어야 연결 가능)
운영 우수성
- 코드로 운영 수행
- 인프라 운영 자동화
- 문서(설명서)에 주석 추가
- 시스템 모니터링
- 시스템을 자주 변경 → 변경에 의미가 없다면 이걸 되돌릴 수 있도록
- 운영 및 절차를 수시로 개선(지속적 개성) → 실패를 예상하고 대비
- 이를 지원하는 서비스
- AWS Config : EC2, EBS 리소스를 추적, 새 리소스가 구성 규칙을 준수하는지 확인
- AWS CloudFormation : JSON, YML 템플릿을 인프라와 리소스로 변환
- Cloud Trail : API호출을 로깅
- VPC Flow Logs : 네트워크 트래픽을 로깅
- Inspector : EC2의 보안 취약점을 검사
- Trusted Advisor : 보안, 안정성, 성능, 비용 서비스 한도에 관한 모범 사례를 검사
- Cloud Watch : 지표를 추적하고, 지표를 초과하면 경보를 시작
- Cloud Watch Logs는 EC2 인스턴스 CloudTrail, Lambda의 로그 파일을 저장 → 로그 라인에서 패턴 추출, 로그 파일을 지표로 변환하기도 함
Tip
- IAM 역할은 키와 암호보다 쉽고 안전
- 시스템 전반에서 지표를 모니털이
- 적절한 경우 지표에 대한 대응 자동화
- 비정상적 상황에 대해 알림 제공
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- mockserver
- redis
- 실시간클락
- 목서버
- redis-py
- 조회수기능개발
- 데이터잘림
- 이미지검색
- PC시간어떻게
- visionAPI
- crudrepository
- ChatGPT
- 항해커톤
- 소숫점잘림
- 알고있
- 실시간클록
- 조회수기능
- 구글
- 해커톤
- 시간어떻게
- 항해해커톤
- 빈해쉬맵
- 구글클라우드스토리지
- jupyterlab
- redisTemplate
- 주피터랩
- 지도데이터
- 모의서버
- 스마트렌즈
- 네이버이미지검색
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함