2024.07.04 AWS 교육 4일차 (DSC 공유대학) Architecting on AWS(2)

이나형·2024년 7월 4일
0

☀️외부활동

목록 보기
4/6
post-thumbnail

🛜AWS 이론교육1

버킷 및 객체

  • Amazon S3에는 데이터가 버킷 내에 객체로 저장.

  • 버킷과 버킷 내 객체에 대한 엑세스를 제어할 수 있다.

  • ex) https://my-bucket.s3.amazonaws.com/2024-07-04/cat.png

    (버킷, 접두부, 객체 키)


객체 보호

  • 기본적으로 Amazon S3 리소스들은 프라이빗으로 설정되어 리소스 소유자만 리소스에 접근 가능. 퍼블릭 엑세스 차단 기능이 포함되어 있어서 고객 데이터 노출을 방지하기 위한 보호 계층 역할을 한다.

  • Amazon S3 엑세스 포인트를 활용하면 Amazon S3의 공유 데이터 집합에서 데이터 엑세스를 대규모로 관리할 수 있다. GetObject, PutObject 등의 S3 객체 작업을 수행하는 데 사용할 수 있는 명명된 네트워크 엔드포인트이다.

객체 저장



공유 파일 시스템

  • S3 스토리지 클래스
    • S3 Standard : 자주 엑세스하는 일반적인 스토리지
    • S3 Standard Infrequent, S3 One Zone-IA : 장시간 사용하며 엑세스 빈도가 낮을 때 사용하기 좋은 데이터용 등급
    • S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval : 자주 엑세스 하지 않는 객체에 사용하기 좋은 낮은 비용의 스토리지 클래스이다.
    • S3 Glacier Deep Archive : 장기간 보관해야 하는 스ㅗ리지 아카이브와 디지털 콘텐츠 보존용 등급이다. 12시간 이내에 객체를 복원할 수 있다.



Amazon S3의 추가 기능

  • Amazon S3 멀티파트 업로드 : 이를 이용하면 대용량 객체를 관리 가능한 파트로 분할하여 일관되게 업로드 할 수 있다. 이는 업로드 시작/ 객체 파트 업로드/ 멀티파트 업로드 완료 총 세가지 단계를 수행한다. 멀티파트 업로드의 장점은 다음과 같다.

    • 멀티 파트 업로드를 사용하면 처리량 개선할 수 있다.
    • 시작한 멀티파트 업로드는 만료되지 않아, 객체 업로드 중 중지되어도 그 부분부터 다시 업로드를 시작한다.
    • 최종 객체 크기를 알기 전부터 업로드를 시작할 수 있어서, 객체를 생성하는 동안 업로드할 수 있다.
    • 콘솔을 사용하여 멀티파트 업로드를 수동으로 수행할 수는 없다.
  • Amazon S3 Transfer Acceleration : S3 버킷으로 데이터를 빠르고 쉽게 전송할 수 있다. 전 세계 고객이 중앙 버킷에 데이터를 업로드할 수 있다.



데이터베이스 서비스

© 2023 Amazon Web Services, Inc. or its affiliates. All rights reserved.

  • 관계형 데이터베이스 : 열과 행으로 이루어진 테이블 집합으로 구성되며, 스키마가 고정이다.
    ex) Amazon RDS, Aurora

  • 비관계형 데이터베이스 : 키, 값, 와이드 컬럼, 그래프, 문서 또는 기타 모델이며, 스키마가 동적이다.
    ex)DynamoDB, ElastiCache

© 2023 Amazon Web Services, Inc. or its affiliates. All rights reserved.

  • Amazon RDS
    • 클라우드에서 관계형 데이터베이스를 설치, 운영 및 크기 조정할 수 있게 해주는 웹서비스이다. Amazon RDS는 Amazon Aurora, PostgreSQL, Mysql, MariaDB, Oracle Database, Microsoft SQL Server 등 친숙한 데이터베이스 엔진을 제공하여 기존 데이터베이스에서 이미 사용하고 있는 코드, 애플리케이션 도구를 대부분 사용할 수 있다.
    • Amazon RDS 다중 AZ 배포는 DB의 인스턴스의 가용성 및 내구성을 높여주므로 프로덕션 DB 워크로드에 적합하다.
    • 읽기 전용 복제본 : 추가 읽기 용량으로 프라이머리 노드에 대한 부하 해소, 여러 AWS리전에서 데이터를 애플리케이션에 더 가까이 배치할 수 있다.

  • Amazon Aurora

    • 프라이머리 인스턴스를 제공한다 : 이는 읽기/ 쓰기 작업을 지원하고, 클러스터 볼륨의 모든 데이터 변경을 실행한다.
    • Aurora 복제본을 지원하는데, 이는 읽기 작업만 지원한다. Aurora 복제본은 별도의 가용 영역에 배치하여 가용성을 높일 수 있다.
    • 엔프라이즈급 관계형 데이터베이스이다.

출처: AWS 공식홈피



🛜실습1 Amazon VPC 인프라에 데이터베이스 계층 생성

목표

  • Amazon Relational Database Service(Amazon RDS) 데이터베이스 생성
  • Application Load Balancer 생성
  • Application Load Balancer용 HTTP 리스너 생성
  • 대상 그룹 생성
  • 대상 그룹에 대상 등록
  • 로드 밸런서 테스트 및 데이터베이스와 애플리케이션의 커넥션 테스트
  • 콘솔을 통해 Amazon RDS DB 인스턴스 메타데이터 검토



과제 1: Amazon RDS 데이터베이스 생성



과제 2: Application Load Balancer 생성 및 구성

(퍼블릭 서브네에 ALB를 생성 -> 브라우저에서 애플리케이션에 엑세스한다.)

+로드 밸런서는 클라이언트에 대한 단일 접점 역할을 수행합니다. 클라이언트는 로드 밸런서에 요청을 전송하고, 로드 밸런서는 EC2 인스턴스와 같은 대상에 요청을 전송한다. 로드 밸런서를 구성하려면 대상 그룹을 생성한 다음 대상 그룹에 대상을 등록한다.

대상 그룹 생성

ALB 생성



과제 3: 콘솔을 통해 Amazon RDS DB 인스턴스 메타데이터 검토

콘솔을 통해 Amazon RDS DB 인스턴스 메타데이터 검토하기



과제 4: 애플리케이션의 데이터베이스 연결 테스트

데이터베이스 연결하기,
Endpoint : Databases 탭에서 이름이 aurora인 클러스터 링크를 선택해
Connectivity & security 탭에서 writer 인스턴스의 Endpoint name 값을 복사.



🛜AWS 이론교육2

모니터링

  • 모니터링을 하는 이유 :

    • 운영 상태: 운영 가시성 및 인사이트 확보.
    • 애플리케이션 상태: 성능 스택의 모든 계층에서 데이터를 수집
    • 리소스 사용률 : 리소스 최적호를 개선
    • 보안 감사 : 증거 수집, 보안 및 무결성을 자동으로 관리
  • Amazon CloudWatch : 실시간에 가까운 시스템 이벤트 스트림을 제공하는 AWS 서비스. AWS 관리 콘솔을 사용하여 게시한 지표의 통계 그래프를 확인할 수 있다.



  • 로그 유형

    • Amazon CloudWatch Logs : 로그 데이터, 저장소 및 엑세스 로그 파일을 사용하여 앱을 모니터링 한다.

    • AWS CloudTail : 사용자 활동 및 API 사용량을 추적합니다. 이러한 이벤트 기록은 보안 분석, 리소스 변경 추적 및 문제 해결을 간소화한다.

    • VPC 흐름 로그 : VPC의 네트워크 인터페이스에서 송수신되는 IP 트래픽에 대한 정보가 캡처된다.

    • 로드밸런싱 : 로드밸런서로 전송된 요청의 상세 정보를 캡처하는 엑세스 로그를 제공한다.

  • 로드 밸런싱

    • Elastic Load Balancing(ELB) : 네이티브 방식으로 사용자를 EC2 인스턴스, 컨테이너 배포 및 AWS Lambda 함수에 연결하는 AWS에서 제공하는 유일한 로드밸런서이다.
    • ALB: HTTP및 HTTPS 트래픽의 고급 로드 밸런싱에 이상적이며, 유연한 애플리케이션 관리에 유용하다.
    • NLB : TCP 트래픽의 로드 밸런싱에 적합하며, 전송계층인 4계층에서 작동한다.
    • GLB : 네트워크 계층인 3계층에서 작동하며, 서드 파티 가상 어플라이언스를 손쉽게 배포, 크기 조정 및 관리할 수 있다.



모니터링 및 자동 확장

  • Amazon EC2 Auto Scaling 구성 요소:

    © 2023 Amazon Web Services, Inc. or its affiliates. All rights reserved.



자동화

  • 코드형 인프라(IaC) : Iac를 사용하면 AWS의 리소스를 간편하게 배포할 수 있다.
    빠른 속도와 높은 안정성, 재사용성, 문서 및 버전 제어, 유효성 검사가 가능하다.

    © 2023 Amazon Web Services, Inc. or its affiliates. All rights reserved.
    인프라를 코드형으로 구축하는 경우, 환경을 구축하면서 반복성과 재사용성의 이점을 활용할 수 있다.

© 2023 Amazon Web Services, Inc. or its affiliates. All rights reserved.
이 기능을 사용하면 리소스를 일관된 방식으로 더 간편하게 유지 관리할 수 있으며, 작업을 병렬 처리할 수 있다.


- CloudFormation

© 2023 Amazon Web Services, Inc. or its affiliates. All rights reserved.
CloudFormation은 이러한 API를 사용한다. AWS관리 콘솔에서와 같이, CloudFormation 템플릿에서 정의하는 리소스가 AWS 서비스로 전송되는 API 호출로 변환된다.


  • 인프라 관리 도구

    © 2023 Amazon Web Services, Inc. or its affiliates. All rights reserved

    • AWS Elastic Beanstalk : 개발자 도구와 통합되며 애플리케이션 수명 주기를 한 곳에서 관리할 수 있는 환경을 제공한다.
    • AWS Solutions Library : 광범위한 산업 및 기술 사용 사례를 위해 AWS와 AWS Partner이 구축한 솔루션을 제공한다.
    • AWS CDK : 일반적인 프로그래밍 언어를 사용하여 애플리케이션 리소스를 모델링 및 프로비저닝 할 수 있다.
    • AWS CloudFormation : 모든 리소스와 해당 구성을 정의할 수 있으며, 인프라의 모든 구성 요소를 세부적으로 제어할 수 있다.



🛜실습2 Amazon VPC에서 고가용성 구성

목표

  • Amazon EC2 Auto Scaling 그룹을 생성하여 여러 가용 영역에 걸친 Application Load Balancer에 등록
  • 가용성이 뛰어난 Amazon Aurora 데이터베이스(DB) 클러스터 생성
  • 고가용성을 갖추도록 Aurora DB 클러스터 수정
  • 중복 NAT 게이트웨이를 사용하여 고가용성을 갖추도록 Amazon Virtual Private Cloud(Amazon VPC) 구성 수정
  • 읽기 전용 복제본 인스턴스에 대한 장애 조치를 수행하는 데이터베이스 기능 확인



과제 1: 기존 실습 환경 검사

과제 2: 시작 템플릿 생성

+Auto Scaling 그룹을 생성하려면 먼저 AMI의 ID 및 인스턴스 유형 등 EC2 인스턴스를 시작하는 데 필요한 파라미터가 포함된 시작 템플릿을 생성해야 한다.

유저 데이터의 경우, ec2 인스턴스의 Instance Settings/Edit user data 페이지에서 복사하여 사용.



과제 3: Auto Scaling 그룹 생성

(프라이빗 서브넷에 EC2 인스턴스를 배포하는 Auto Scaling 그룹을 생성. 프라이빗 서브넷의 인스턴스는 인터넷에 엑세스 x, 애플리케이션을 배포할 떄는 밑이 모범사례)

Auto Scaling 그룹 생성
EC2 인스턴스의 Desired capacity, Min desired capacity, Max desired capacity의 값을 2개로 설정하여 항상 2개의 인스턴스를 유지.



과제 4: 애플리케이션 테스트

인스턴스 ID와 가용영역 확인

과제 5: 애플리케이션 티어의 고가용성 테스트

인스턴스 하나를 Terminate 한 후, 장애복구 되는지 테스트

장애 복구 확인



과제 6: 데이터베이스 티어의 고가용성 구성

Aurora 복제본을 생성하여 데이터베이스의 고가용성을 높임



과제 7: NAT 게이트웨이가 고가용성을 제공하도록 설정

다른 가용 영역에 NAT 게이트웨이를 생성

새 라우팅 테이블 생성 및 구성

Private Subnet 2의 인터넷 바운드 트래픽을 동일한 가용 영역에 있는 NAT 게이트웨이로 보내도록 구성

과제 8: Aurora 데이터베이스 장애 조치 적용

데이터베이스를 failover하고 장애조치 되었는지 로그 확인.

이 게시글은 2024년 7월 1일부터 5일까지 진행하는
DSC 공유대학 AWS 클라우드 양성 캠프 프로그램에서 들은 수업 내용으로 작성하였습니다.

profile
정도를 걷는 개발자

0개의 댓글