본문 바로가기
AWS/AWS Cloud School

[AWS] Advanced Architecting on AWS - 1

by parkkingcar 2023. 11. 27.

 

홍혜선님이 진행하는 Advanced Architecting on AWS 과정을 기반으로 작성한 글 입니다. AWS서비스를 파악하고 복원력, 보안성, 가용성이 우수한 IT솔루션을 설계하기 위한 모범사례와 함께 설계능력을 습득합니다.

 

 

 

목차

1. 아키텍팅 개념 검토 

2. 단일 및 다중 계정 

3. 하이브리드 연결 

4. 전문 인프라 

5. 네트워크 연결 

6. 컨테이너 

7. 지속적 통합/지속적 전달(CI/CD) 

8. 고가용성 및 DDoS 

9. 데이터 보안 

10. 대규모 데이터 스토어 

11. 워크로드 마이그레이션 

12. 비용 최적화 

13. 엣지를 위한 아키텍팅 




1. 아키텍팅 개념 검토

아래 다이어그램과 같이 구축된 리소스 환경을 가정하고 기본적인 아키텍팅을 검토합니다.

 


(퍼블릭 서브넷에 배스천 호스트를 둬서 프라이빗 서브넷에 접근하지 않고, 세션매니저를 통해 ssm 앤드포인트를 발급하여 접근하고 프라이빗 서브넷에 있는 S3 앤드포인트 발급)

 

 

 

- 아키텍팅검토 -

 

1. 단일 VPC는 여러 리전에 걸쳐 구성된다 (거짓)

-> VPC는 리전 리소스입니다. VPC는 리전 사이에서 서로 피어링이 가능하지만 각  VPC는 계속해서 리전 한 곳에 구속됩니다.

글로벌 -> STS, WAF, Sheld, Cloudfront, Route53, S3버킷이름
리전단위 -> S3, VPC, 인터넷 게이트웨이, EFS
VPC단위 -> 보안 그룹
AZ단위 -> EBS, EC2, RDS, 서브넷, 라우팅 테이블

(vpc 안에 배치할지 / 밖에 배치할지 구별해야함)

 

 

2. 다음 중 NAT 게이트웨이의 기능은 무엇입니까?

-> 프라이빗 서브넷 인스턴스에서 시작된 인터넷 트래픽 허용

(NAT 게이트웨이는 리소스가 프라이빗 주소를 사용하면서 퍼블릭 인터넷에 액세스 할 수 있는 서비스 입니다. NAT 게이트웨이를 통해 프라이빗 서브넷의 인스턴스가 프라이빗 주소를 사용하여 인터넷에 액세스 할 수 있습니다.)

 

 

3. Application Load Balancer의 유효한 대상은 무엇입니까? 

-> Amazon Elastic Container Service(Amazon ECS) 컨테이너, AWS Lambda 함수, IP 주소 

 

 

4. 다음 중 새로운 인스턴스에 추가적인 애플리케이션을 설치하기 위한 자동 크기 조정을 재구성 시 모범 사례는 무엇입니까?

-> 시작템플릿을 생성한 후 템플릿을 사용 할 Auto Scaling 그룹을 구성합니다. 

 

 

5. 다음 중 캐싱에 사용되는 AWS 도구 또는 서비스는 무엇입니까? 

-> Amazon CloudFront, Amazon DynamoDB Accelerator(DAX), Amazon ElastiCache 

 

 

6. 다음 중 데이터베이스 클러스터에서 기본 인스턴스에 실패가 발생 할 경우 Amazon Aurora가 고가용성을 유지하기 위해 수행하는 조치는 무엇입니까?

-> 리더 인스턴스 중 하나를 새로운 라이터 인스턴스로 자동 승격 

(rds는 프라이머리 인스턴스 실패시 자동 승격은 안되고 수동으로 가능, 오로라는 자동으로 승격)

 

 

7. 다음 중 데이터 스토리지 티어를 자동으로 변경하는 Amazon Simple Storage Service(Amazon S3) 기능은 무엇입니까?

-> 수명 주기 구성 

 

 

8. 다음 중 서브넷을 퍼블릭으로 만드는 요소는 무엇입니까?

-> 라우팅 테이블이 비로컬트래픽을 인터넷 게이트웨이로 유도합니다.

 

 

9. 다음 중  EC2 인스턴스에 직접 연결할 수 있는 솔루션은 무엇입니까? 

-> 원격 데스크톱 프로토콜(RDP), AWS Systems Manager의 기능인 Session Manage, Secure Shell(SSH) 

 

 

10. 다음 중 Amazon CloudFront 배포의 오리진이 될 수 있는 것은 무엇입니까? 

-> Application Load Balancer, 온프레미스 서버, Amazon EC2 인스턴스

 

 

11. 다음 중 Amazon Elastic File System(Amazon EFS) 파일 공유에 액세스 할 수 없는 AWS 서비스는 무엇입니까?

-> Amazon DynamoDB 

(DB제외 모든 컴퓨팅 리소스는 액세스 가능 -> EC2, ECS, EKS, Lambda, SageMaker)

 

 

12. 다음 중 Amazon Route 53의 기능은 무엇입니까?

-> 가중치 기반 라우팅 ,  도메인 등록, 별칭 레코드

 

 

13. 다음 중 프라이빗 서브넷 인스턴스가 인터넷 게이트웨이 없이 Amazon S3 버킷에 액세스 할 수 있는 방법은 무엇입니까?

-> VPC 게이트웨이 엔드포인트, VPC 인터페이스 엔드포인트

(S3, DynamoDB는 게이트웨이 엔드포인트를 사용합니다. 나머지 서비스는 인터페이스 엔드포인트를 사용합니다.)

 

 

 

 

2. 단일 및 다중 계정

다중 계정 액세스 솔루션

iam 유저를 관리하는 계정을 만들고 아래 iam 사용자를 구성합니다. 이때 그룹을 생성하고 역할을 부여하여 그룹에 iam유저를 추가하는데 교차 계정 방식을 사용하여 불편을 해소할 수 있습니다.

 

한 계정의 리소스를 다른 계정의 사용자와 공유합니다.

 

 

 

 

AWS IAM Identity Center

로그인 포털과 같은 역할을 하며 아래와 같은 구성요소를 가집니다. Active Directory, AWS 및 기타 비즈니스 애플리케이션에 대한 인증을 간소화합니다.

 

• AWS 계정 및 클라우드 애플리케이션에 대한 SSO 액세스 

• IAM Identity Center에서 사용자 및 그룹을 생성하고 관리하는 기능 

• 기존의 회사 자격증명을 사용하는 기능 

• 일반적으로 사용하는 클라우드 애플리케이션과의 호환성 

• 간소화된 설정 및 사용 모니터링 

• 기존 IAM 사용자, 역할 및 정책과 공존 

• 추가 비용없이 자격 증명 관리

 

 

 

 

서비스 제어 정책(SCP) 

 

 

 

 

AWS Control Tower 

Control Tower 를 통해 거버넌스 및 규정준수를 위한 보안조치를 자동화 합니다. AWS Organizations, SCP 등을 포함하여 추가적인 기능을 제공하여 컨트롤 타워를 구성합니다.

 

 

AWS Control Tower  VS AWS Organizations

Control Tower는 자동화의 역할이 크지만, Organizations에 비해 제약이 많고, 커스텀하기 어렵습니다.

 

 

 

5. 네트워크 연결 모듈

온프레미스에서 VPC로의 VPN 연결은 1:1 관계입니다. VPC 피어링도 1:1 관계입니다. 복잡한 구성에서 VPC 6개를 피어링하면 15개의 독립적인 피어링연결이 생성됩니다.

 

전송VPC 솔루션이라고 하는것을 생성하여 네트워크 구성을 단순화 할 수 있습니다. 기본적으로 전송 VPC는 Amazon  Elastic Compute Cloud(Amazon EC2) 인스턴스에서 라우팅 소프트웨어를 실행하는 VPC입니다.

 

 

 

AWS Transit Gateway

VPC와 온프레미스 네트워크를 상호 연결하는데 사용 할 수 있는 네트워크 전송허브의 역할을 합니다.

Transit Gateway 연결은 패킷의 원본이자 대상입니다. 아래 리소스를 Transit Gateway에 연결 할 수 있습니다.

• 하나 이상의 VPC

• 하나 이상의 VPN 연결

• 하나 이상의 Direct Connect 게이트웨이

• 하나 이상의 Transit Gateway 피어링 연결

 

 

 

Transit Gateway는 해당 서브넷의 IP 주소 하나를 사용하여 해당 서브넷에 네트워크 인터페이스를 배치합니다. VPC를 Transit Gateway에 연결 할 때, Transit Gateway를 통해 라우팅 할 트래픽에 대한 경로를 서브넷 라우팅 테이블에 추가해야 합니다.  동일한 Transit Gateway 라우팅 테이블을 여러 VPC와 공유 할 수 있습니다

개발 VPC를 한 라우팅 테이블과 연결하고 프로덕션 VPC를 다른 라우팅 테이블과 연결 할 수 있습니다. 기존 네트워크에서 가상라우팅 및 전달(VRF)과 유사한 Transit Gateway 내부의 격리된 네트워크를 생성 할 수 있습니다.

 

 

사설 IP를 이용하여 서로 다른 리전에 프라이빗한 통신을 가능하도록 합니다.

 

아래는 Transit Gateway 사용 사례입니다.

 

 

아래는 VPC 격리를 공유서비스 VPC와 결합하는 예시입니다.

1. VPC 라우팅 테이블은 비로컬 트래픽을 Transit Gateway로 보냅니다. 

2. 10.x가 아닌 비로컬 트래픽은 아웃바운드 VPC로 라우팅됩니다. 

3. 블랙홀 경로는 VPC A와 VPC B가 서로 통신 할 수 없도록 합니다. 

4. 아웃바운드 VPC에 대한 프라이빗 서브넷 라우팅 테이블은 트래픽을 NAT 게이트웨이로 라우팅합니다.

5. NAT 게이트웨이는 트래픽을 인터넷 게이트웨이로 라우팅합니다. 

6. 10.1 및 10.2 주소용 Transit Gateway로 들어오는 트래픽은 적절한 서브넷으로 직접 라우팅됩니다.

 

 

 

AWS Resource Access Manager

기본적으로 VPC와 Transit Gateway 가 동일 계정이 아니라면 연결 할 수 없습니다. 하지만 계정에서 소유하지 않은 타 계정의 Transit Gateway 리소스를 RAM을 통해 공유 할 수 있습니다.

 

 

AWS PrivateLink

AWS PrivateLink은(는) VPC를 서비스에 비공개로 연결하여 서비스를 VPC에 있는 것처럼 이용할 수 있는 가용성과 확장성이 뛰어난 기술입니다. 인터넷 게이트웨이, NAT 디바이스, 퍼블릭 IP 주소, AWS Direct Connect 연결 또는 AWS Site-to-Site VPN 연결을 사용할 필요 없이 프라이빗 서브넷에서 서비스와 통신할 수 있습니다. 따라서 VPC에서 연결할 수 있는 특정 API 엔드포인트, 사이트 및 서비스를 제어할 수 있습니다.

 

 

1. AWS 관리콘솔로 이동합니다. 

2. VPC에서 애플리케이션에 대한 Network Load Balancer를 생성하고 서비스를 제공해야 하는 각 서브넷(가용영역)에 대해 구성합니다. 로드밸런서는 서비스 소비자로부터 요청을 수신하여 서비스로 라우팅합니다. 리전내의 모든 가용영역에서 서비스를 구성하는 것이 좋습니다.

3. VPC 엔드포인트 서비스 구성을 생성합니다. 

4. Network Load Balancer를 지정합니다. 

5. 특정 서비스 소비자(AWS 계정, IAM 사용자 및 IAM 역할)에게 권한을 부여하여 엔드포인트 서비스에 대한 연결을 생성합니다.

6. 서비스 소비자는 필요에 따라 서비스를 구성한 각 가용영역에서 서비스에 대한 인터페이스 엔드포인트를 생성합니다.

7. 연결을 활성화하려면 인터페이스 엔드포인트 연결요청을 수락합니다. 기본적으로 연결 요청은 수동으로 수락해야 합니다. 그러나 모든 연결요청을 자동으로 수락하도록 엔드포인트 서비스에 대한 수락설정을 구성 할 수 있습니다.

댓글