1. 💡 Amazon Web Service
EC2 - 서버 배포
S3 - 클라이언트 배포
RDS - 관계형 데이터베이스
CloudFront - 캐시 서버 (CDN)
Route53 - 도메인 서버
* AWS CloudShell은 아직 도쿄 리전에서만 사용 가능

1.1. 💡 배포 과정
환경별 설정 분리 & 절대경로 사용 X & 상대경로 사용 O
- Deployment
- Local 개발 & 테스트
- Sample Data 사용
- Intergration
- 각자 개발된 코드 취합
- 코드간 Conflict 확인
- Staging
- 복제된 실제 데이터를 통한 테스트
- Production 환경과 유사한 테스트
- 모든 개발 관계자들에게 검증
- Production
- 실제 서비스 제공 단계
1.2. 💡 EC2
- 인스턴스 접근시 pem키 사용
- Role 설정하여 인스턴스 ACL 가능
- 중지 가능 디스크 기반 인스턴스인 EBS 기반 인스턴스
- 중지 불가능 Instance Store 기반 인스턴스로 나뉜다
- 인스턴스 유형으로는 범용, 컴퓨팅 최적화, 메모리 최적화, 스토리지 최적화 등이 있다
- Elastic IP를 이용하여 IP고정 가능
- EC2 구매옵션
- On-Demand
- Hour단위 과금, 1분을 사용하더라고 1시간 과금을 물림
- Spot
- 인스턴스 경매, 최초 생성시 기준가격이 화면에 나타나며 화면의 가격보다 높으면 계속 사용 가능
- Reserved
- 1년 & 3년 단위로 예약하여 사용하는 인스턴스로 On-Demand에 비해 가격 대폭 할인, 장기적으로 사용 시 적합
- Dedicated Host
- 단일 클라이언트의 VPC에서 실행됨, 라이센스 적용 가능하며, 여러 인스턴스 사용 가능
- On-Demand
- Batch Group
- Cluster
- 인스턴스를 AZ 내에서 근접하게 배치, 결합된 노드간 낮은 지연시간의 네트워크 달성
- Partition
- 인스턴스 그룹을 논리 세그먼트로 나눠 각 파티션에 배치, 최대 7개이며
각 파티션은 자체 랙 세트 보유 & 자체 네트워크 & 자체 전원 보유
- 인스턴스 그룹을 논리 세그먼트로 나눠 각 파티션에 배치, 최대 7개이며
- Seperated
- 파티션이 논리 세그먼트로 분리된 인스턴그 그룹인것과 달리 분산은
'인스턴스' 개체 하나가 자체 랙에 분산 배치됨, AZ당 7개 인스턴스 배치 가능
- 파티션이 논리 세그먼트로 분리된 인스턴그 그룹인것과 달리 분산은
- Cluster
1.3. 💡 S3
- Bucket과 Object로 나뉘며, 저장하고자 하는 모든 요소는 Object, Object를 담는곳이 Bucket
- Bucket 의 특징
- 버킷 생성 시 리전 지정, 버킷의 이름은 리전당 고유해야함
- ACL 가능
- Object의 특징
- 객체 하나의 최소 크기는 1(0) byte ~ 5TB
- 키, 버전ID, 값, 메타데이터 등으로 구성
- 스토리지 클래스, 암호화, 태그, 메타데이터, 객체 잠금 설정 가능
- 객체의 크기가 매우 클 경우 멀티파티 업로드를 통해 신속한 업로드 가능
- 모든 객체는 고유 URL 보유 ex) http://[버킷_이름].S3.amazonaws.com/[객체_키]
- 목적 별 스토리지 클래스 존재
- Standard
- 저장이 아닌 검색이 주 용도
- 데이터를 오래 보관 할 시 부적합, 보관 비용 ↑
- Glacier
- 검색이 아닌 저장이 주 용도
- 데이터를 오래 보관 할 시 적합, 보관 비용 ↓
- Standard_IA(Ifrequent Access)
- 자주 액세스하지는 않지만 즉시 액세스 할 수 있는 데이터여야 할 경우 선택
- 3곳의 AZ에 저장되어 AZ 파괴 시 정보 손실 가능성 적음
- One Zone_IA
- Standard와 기능은 동일하나 1곳의 AZ에 저장되어 AZ 파괴시 정보 손실 가능성 높음
- Intelligent Tiering
- 불규칙적인 액세스 빈도를 가진 서비스일 경우 선택
- Glacier Deep Archive
- 데이터를 10년이상 장기간 저장할 시 선택
- Standard
1.4. 💡 RDS
- RDBMS를 지원하며 Multi-AZ를 이용한 고가용성 데이터베이스
- 기본 인스턴스의 수행 작업(백업, 스냅샷)을 대신하여 기본 인스턴스의 부담 ↓
- 기본 인스턴스의 스냅샷을 캡쳐 후, 다른 AZ에 복원하는 '동기식' 예비 복제본 생성
- 즉, Active(AZ A) - StandBy(AZ B, C) 구조를 형성한 후 지속적인 동기화
- StandBy 전환 상황 - 전환 시 60 - 120초 소요
- FailOver 실시
- AZ 중단
- DB 인스턴스 소프트웨어 패치
- Read Replica
- 기본 DB 인스턴스가 읽기,쓰기를 담당한다면 Read Replica는,
읽기만 담당하여 Master DB Instance의 부담을 줄임 - DB 인스턴스 스냅샷 캡쳐 후, 이를 기반으로 Replica를 생성해,
데이터를 Async 복제 방식을 통해 업데이트 - 리전당 최대 5개의 Read Replica 사용 가능
- Read Replica의 독립된 인스턴스 승격 가능
- 기본 DB 인스턴스가 읽기,쓰기를 담당한다면 Read Replica는,
- Automated Backup
- RDS의 자동 백업으로 개별 DB를 백업 하는것이 아닌 DB 인스턴스 전체 백업
- 매일 백업이 이루어지며, 기본 보존기간은 CLI로 생성시 1일 & 콘솔로 생성시 7일, 최저 1-35일 가능
- 백업 시, 스토리지 I/O의 일시적 중단 가능성이 있음
- 최근 5분까지 특정 지점 복원 가능
- Snapshot
- 자동 백업과 마찬가지로 스냅샷도 자동생성 가능하며 수동생성도 가능하다
- 자동 백업과 달리 스냅샷 생성지점으로만 복원 가능
- 스냅샷 복원 시, DB인스턴스가 복원되는게 아닌, 개별 DB 인스턴스가 생성됨
- 스냅샷의 복사, 공유, 마이그레이션 가능
- Enhanced Monitoring
- RDS의 지표를 실시간 모니터링하는 '강화된' 모니터링
- 모니터링 로그는 CloudWatchs Logs에 30일간 저장됨
- 일반 모니터링과의 차이점은 인스턴스 내 에이전트를 통해 지표수집, 일반 모니터링은 하이퍼바이저에서 수집
- 초 단위로 수집 가능
1.5. 💡 CloudFront
- Edge Location의 주변 Orogin Server의 컨텐츠를 Edge Location에 캐싱하고,
- 각 Edge Location간 공유를 통해 컨텐츠 전달
- 각 Edge Location간 백본 네트워크를 통한 매우 빠른 속도의 캐시 전달 가능
- 외부 서버의 캐싱 가능(Custom Origin)
- TTL을 조절하여 캐시 주기 통제 가능
- 컨텐츠 제공 방법
- 사용자의 웹사이트 or 액세스 하고있는 이미지 or HTML 요청 (정적 데이터)
- DNS가 최적의 요청 처리를 할 수 있는 CloudFront Edge Location으로 요청 라우팅
- Edge Location에서 해당 캐시에 요청된 파일이 있는지 확인하고, 없으면 오리진 서버에 요청후 전달 & 캐시적재
- OAI (Origin Access Identity)
- S3를 오리진 서버로 사용 시, CloudFront를 제외하고 다른 경로의 S3접근을 막는 방법
- OAI 설정시 각각의 Distribution이 별도의 Identity를 갖게 되고, S3의 버킷 정책을 수동 & 자동으로 수정 가능
- Presigned URL
- 인증된 사용자만이 해당 Distribution을 사용할 수 있도록 제어하는 기능
- 만료 날짜 & 시간까지 설정 가능
- CloudFront 설정 시 Presigned URL 사용과 CloudFront Key Pair를 계정의 보안자격증명에서 생성해야함
- 이를 조합해 URL 서명 생성 & 해당 URL을 통한 CloudFront 접근 가능
1.6. 💡 Route 53
- 도메인 등록, DNS 라우팅, Health Check의 3가지 담당 & 도메인 등록 시, 12000원 정도 들고 최대 3일 정도 걸림
- 도메인을 AWS 내 서비스뿐만 아니라 외부 서비스와도 연결 가능
- 도메인 생성 후, 레코드 세트를 생성하여 하위 도메인 등록 가능
- 레코드 세트 등록 시, IP, Domain, Alias 등을 지정하여 쿼리 라우팅 가능
- Route 53의 라우팅 정책
- Simple
- 동일 레코드 내에 다수의 IP를 지정하여 라우팅 가능, 값을 다수 지정한 경우 무작위로 반환
- Weighted
- 리전 별 부하분산 가능, 각 가중치를 가진 동일이름의 A 레코드를 만들어 IP를 다르게 줌
- Latency-based
- 지연시간이 가정 적은, 즉 응답시간이 가장 빠른 리전으로 쿼리 요청
- FaliOver
- A/S 설정에서 사용됨, Main과 DR로 나누어 Main 장애 시, DR로 쿼리
- Geo-Proximity
- Traffuc Flow를 이용한 사용자 정의 DNS 쿼리 생성 가능
- Multi-Value Answer
- 다수의 IP를 지정한다는 것은 Simple과 비슷하지만, Health Check가 가능(실패 시, Auto Failover)
- Simple
- Alias (별칭)
- AWS만의 기능으로 고유한 확장명 제공
- AWS의 리소스는 도메인으로 이루어져 있고, 이 도메인을 쿼리 대상으로 지정할 수 있도록 하는 기능
- Route 53에서 별칭 레도드의 DNS쿼리를 받으면 다음 리소스로 응답 (즉, 다음 리소스로 Alias 지정 가능)
- CloudFront Distribution
- Elastic LoadBalancer
- Web Site Hosting이 가능한 S3 Bucket
- Elastic Beanstalk
- VPC Interface EndPoint
- 동일한 호스팅 영역의 다른 Route 53 레코드
'Ops > AWS' 카테고리의 다른 글
[CI/CD with AWS] - Deploy Client to S3 Bucket (0) | 2022.12.02 |
---|---|
[CI/CD with AWS] - Deploy Server (0) | 2022.12.02 |
AWS Memo (0) | 2022.09.22 |
AWS CloudWatch Custom Metric (0) | 2022.09.22 |
AWS 기본개념 (0) | 2022.08.01 |