Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 정보보안기사 실기
- AWS 쿠버네티스
- 보안
- TSK
- hacking case
- 쿠버네티스
- 실습
- 보안기사
- 해킹
- AWS Opensearch
- SMS-P 인증 기준 안내서 요약
- 정보보안기사
- ISMS
- kubernetes
- 포렌식
- forensic
- Autopsy
- iam
- The Sleuth Kit
- isms-p
- k8s
- AWS EKS Udemy
- AWS EKS
- AWS Elasticsearch
- 모의해킹
- AWS
- 정보보안
- artifacts
- CFReDS
- ISMS-P 인증심사원
Archives
- Today
- Total
Always-Try(정보보안 및 일상)
AWS DNA - 1주차 Peak Load Control with Serverless - 1/3 본문
본 포스팅은 AWS KOREA에서 제공해는 교육인 AWS DNA에서 진행한 Hands On Labs 를 요약한 내용입니다. 단, 서비스 소개에 대한 내용은 AWS 공식 docs를 참고해서 별도로 작성했습니다.
처음 사용해보는 서비스들도 많아서 하나의 Hands On Labs 세션 당 총 3편으로 나눠서 포스팅 할 예정입니다.
AWS DNA 첫번째 세션이 시작됐다. 첫 번째 Hands On Labs의 주제는 Peak Load Control with Serverless 이며 간략히 요약하면 다음과 같은 환경을 구성하는 것이 목표라고 할 수 있다.
- 실습 목표: 라이선스 또는 외부연동 등의 여러 요소로 인해 갑작스러운 트래픽 증가를 처리하기 어려운 Legacy 애플리케이션에 사이트에 도착하는 순서대로 번호표를 발급하고 사용자를 대기하도록 한 다음 순서대로 입장시킬 수 있는 환경을 구성한다.
본 포스팅에서는 소스 코드들에 대한 설명보다는 어떤 종류의 AWS 서비스를 이용해서 이러한 아키텍처를 구성할 수 있는지에 대한 서비스 소개 및 아키텍처 중심으로 설명을 진행한다. 실제로 이번 세션을 들으면서 처음 듣는 서비스들도 많았는데, AWS 서비스들을 효율적으로 활용하기 위한 아주 큰 도움이 될 것으로 생각된다.
2. 실습
먼저 확장 불가능한 레거시 시스템을 구성한다. 레거시 시스템 구성은 AWS DNA 팀에서 제공해준 코드를 통해 구성하는데 Cloud9을 통해 해당 코드를 배포한다.
1) Cloud9으로 레거시 환경을 구성
- Cloud9(https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html)
- 서비스 개요
- 브라우저만으로 코드를 작성, 실행 및 디버깅할 수 있는 클라우드 기반 IDE(통합 개발 환경)
- 코드 편집기, 디버거 및 터미널이 포함되어 있음
- 개발 환경을 팀과 신속하게 공유할 수 있으며, 프로그램을 연결하고 서로의 입력 값을 실시간 추적 가능
- 서버리스 개발에 필요한 모든 SDK, 라이브러리 및 플러그인으로 개발 환경을 사전에 구성
- AWS Lambda 함수를 로컬에서 테스트하고 디버깅할 수 있는 환경을 제공
- 보안 고려 사항
- 저장 데이터 보호
- 기본적으로 Cloud9 용 인스턴스의 EBS 볼륨은 암호화 되지 않음. 데이터 암호화를 위해서는 암호화 된 EBS 볼륨을 생성해서 연결 필요
- 코드를 Codecommit이나 별도의 원격 레파지토리에 저장
- 전송 데이터 암호화
- 아래의 브라우저에서는 기본적으로 HTTPS, WSS, Secure Shell 구간 암호화 지원
- 로깅
- 아래의 브라우저에서는 기본적으로 HTTPS, WSS, Secure Shell 구간 암호화 지원
- 저장 데이터 보호
- 실습 시 활용 방안
- 실습 환경에 대한 구성이 담겨 있는 코드를 배포
- 서비스 개요
2) Peak Load Control을 위해 ALB와 사용자 사이에 CloudFront와 Lambda@Edge가 위치하고 이를 이용하여 사용자의 요청을 중간에 제어
- CloudFront
- 서비스 개요
- Amazon CloudFront는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 빠르게 배포하는 웹 서비스
- 엣지 로케이션이라고 하는 전 세계 데이터 센터 네트워크를 통해 사용자가 콘텐츠를 요청하면 가장 짧은 지연 시간(시간 지연)을 제공하는 엣지 로케이션으로 요청이 라우팅되므로 콘텐츠가 빠르게 제공됨
- 보안 고려 사항
- 전송 중 데이터 암호화
- 전송 중 데이터를 암호화하려면 최종 사용자가 HTTPS를 사용하여 파일을 요청하도록 Amazon CloudFront를 구성합니다. 이렇게 하면 CloudFront가 최종 사용자와 통신할 때 연결이 암호화 됨
- 또한 CloudFront가 오리진의 파일을 받을 때 HTTPS를 사용하도록 구성할 수 있습니다. 이렇게 하면 CloudFront가 오리진과 통신할 때 연결이 암호화 됨
- 콘텐츠에 대한 액세스 제한
- 서명된 URL 또는 쿠키 사용
- Amazon S3 버킷의 콘텐츠에 대한 액세스 제한
- Application Load Balancer가 제공하는 콘텐츠에 대한 액세스 제한
- AWS WAF 웹 ACL 사용
- 지리적 제한 사용
- 로깅
- 전송 중 데이터 암호화
- 실습 시 활용 방안
- 사용자의 요청을 용도별로 제어하기 위해 CloudFront로 받아서 총 3개로 나눠서 전달한다.
- waiting/static/* 컨텐츠는 s3, waiting/api/* 는 API Gateway로 나머지 컨텐츠는 Legacy의 ALB로 처리
이 중 ALB로 처리된 요청은 Lambda@Edge 함수로 연결한다.
- waiting/static/* 컨텐츠는 s3, waiting/api/* 는 API Gateway로 나머지 컨텐츠는 Legacy의 ALB로 처리
- 사용자의 요청을 용도별로 제어하기 위해 CloudFront로 받아서 총 3개로 나눠서 전달한다.
- 서비스 개요
- Lambda@edge
- 서비스 개요
- CloudFront의 기능 중 하나로서 애플리케이션의 사용자에게 더 가까운 위치에서 코드를 실행하여 성능을 개선하고 지연 시간을 단축
- 서비스 이름에 Lambda@Edge 라는 것은 따로 없고, Lambda에서 생성한 함수의 트리거에 CloudFront를 연결하고 해당 트리거의 배포 방법에 Lambda를 선택해서 사용
- 보안 고려 사항
- 최소 권한 원칙 적용
- 퍼블릭 엔드포인트로 워크로드 보호
- Lambda 기반 애플리케이션에서 데이터 암호화
- 로깅
- 실습 시 활용 방안
- CloudFront의 맨 마지막 캡처에서 Origin request와 response가 나뉘어져 있는 것과 같이 Lambda@edge함수도 2개로 나눠서 구성한다.
- Origin에서 CloudFront로 응답할 때 호출되는 함수
- CloudFront에서 Origin으로 응답할 때 호출되는 함수
- 이 함수(reponse)는 브라우저에서 전달된 쿠키에 tokenId가 없으면 새로 발급하여 DynamoDB에 저장하고 사용량이 많은 경우 Origin으로의 요청을 제어하는 역할을 수행한다.
- 또한 발급된 tokenId를 브라우저가 유지할 수 있도록 Response 헤더에 쿠키값을 설정해주는 역할을 수행한다.
- CloudFront의 맨 마지막 캡처에서 Origin request와 response가 나뉘어져 있는 것과 같이 Lambda@edge함수도 2개로 나눠서 구성한다.
- 서비스 개요
이후 과정은 다음 포스팅에서 계속해서 진행한다.
2021.09.13 - [AWS] - AWS DNA - 1주차 Peak Load Control with Serverless - 2/3
'AWS' 카테고리의 다른 글
AWS DNA - 1주차 Peak Load Control with Serverless - 3/3 (0) | 2021.09.15 |
---|---|
AWS DNA - 1주차 Peak Load Control with Serverless - 2/3 (0) | 2021.09.13 |
AWS DNA 3기 합격 (Digital Native Architects) (0) | 2021.09.07 |
EKS Starter - 7. steteless sample app 배포하기 (0) | 2021.09.06 |
EKS Starter - 9. Fargate on EKS (0) | 2021.09.05 |
Comments