우주먼지
article thumbnail
Published 2022. 12. 2. 06:54
Amazon Web Service (AWS) Deployment Ops/AWS

💡 Amazon Web Service

EC2 - 서버 배포
S3 - 클라이언트 배포
RDS - 관계형 데이터베이스

CloudFront - 캐시 서버 (CDN)
Route53 - 도메인 서버

* AWS CloudShell은 아직 도쿄 리전에서만 사용 가능

 


💡 배포 과정


환경별 설정 분리 & 절대경로 사용 X & 상대경로 사용 O

  • Deployment
    • Local 개발 & 테스트
    • Sample Data 사용
  • Intergration
    • 각자 개발된 코드 취합
    • 코드간 Conflict 확인
  • Staging
    • 복제된 실제 데이터를 통한 테스트
    • Production 환경과 유사한 테스트
    • 모든 개발 관계자들에게 검증
  • Production
    • 실제 서비스 제공 단계

💡 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에서 실행됨, 라이센스 적용 가능하며, 여러 인스턴스 사용 가능
  • Batch Group
    • Cluster
      • 인스턴스를 AZ 내에서 근접하게 배치, 결합된 노드간 낮은 지연시간의 네트워크 달성
    • Partition
      • 인스턴스 그룹을 논리 세그먼트로 나눠 각 파티션에 배치, 최대 7개이며
        각 파티션은 자체 랙 세트 보유 & 자체 네트워크 & 자체 전원 보유
    • Seperated
      • 파티션이 논리 세그먼트로 분리된 인스턴그 그룹인것과 달리 분산은
        '인스턴스' 개체 하나가 자체 랙에 분산 배치됨,  AZ당 7개 인스턴스 배치 가능

 


💡 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년이상 장기간 저장할 시 선택

 


💡 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의 독립된 인스턴스 승격 가능
  • Automated Backup
    • RDS의 자동 백업으로 개별 DB를 백업 하는것이 아닌 DB 인스턴스 전체 백업
    • 매일 백업이 이루어지며, 기본 보존기간은 CLI로 생성시 1일 & 콘솔로 생성시 7일, 최저 1-35일 가능
    • 백업 시, 스토리지 I/O의 일시적 중단 가능성이 있음
    • 최근 5분까지 특정 지점 복원 가능
  • Snapshot
    • 자동 백업과 마찬가지로 스냅샷도 자동생성 가능하며 수동생성도 가능하다
    • 자동 백업과 달리 스냅샷 생성지점으로만 복원 가능
    • 스냅샷 복원 시, DB인스턴스가 복원되는게 아닌, 개별 DB 인스턴스가 생성됨
    • 스냅샷의 복사, 공유, 마이그레이션 가능
  • Enhanced Monitoring
    • RDS의 지표를 실시간 모니터링하는 '강화된' 모니터링
    • 모니터링 로그는 CloudWatchs Logs에 30일간 저장됨
    • 일반 모니터링과의 차이점은 인스턴스 내 에이전트를 통해 지표수집, 일반 모니터링은 하이퍼바이저에서 수집
    • 초 단위로 수집 가능

💡 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 접근 가능

💡 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)
  • 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
profile

우주먼지

@o귤o

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그