운좋게 아키텍처 관련 교육 기회를 얻었다. AWS 는 자체적으로 기술 교육 팀을 운영하면서 다양한 교육 세션을 제공하는데, 무료나 온라인 세션도 많기 때문에 Solution Associate Architect 등등 AWS 자격증에 관심이 있거나 실습을 곁들인 공부를 하고 싶다면 들어보는 걸 추천한다.
대상 교육: https://aws.amazon.com/ko/training/classroom/architecting-on-aws/
교육 순서: AWS 관리 콘솔 > IAM > 네트워크 > 컴퓨팅 > VPC > 스토리지 > 데이터베이스 > 모니터링 > VPC 고가용성 > 자동화 컨테이너 > 서버리스 > 엣지 서비스 > S3 + CloudFront > 백업/복구 > 멀티 티어 아키텍처 구축 실습
강의 커리큘럼은 위와 같은데 전반적인 기초 내용을 다루고 있어서 독학 할 때 참고하기에 유용해 보인다. 알고 있지만 제대로 모르는 AWS 이론을 한 바닥 정리하는 데 큰 도움이 될 듯하여 냉큼 신청했다.
세부 서비스가 200개에 달하기 때문에 AWS 통한 서버 구성에 자칫 어지러움을 느끼기 쉽다. 이 부분을 지원하기 위에서인지 에땁에스 측에서 정석 아키텍처의 기본 요소를 아래와 같이 소개했다.
- 보안 (IAM)
- 비용 최적화 (Auto Scaling)
- 신뢰성 (AZ, 복구 테스트)
- 성능 효율성 (Serverless, 지연 시간 감소)
- 운영 우수성 (CloudFormation, 템플릿화 통한 운영 속도 개선)
- 지속 가능성
이 여섯 가지 요소에 집중하고 인프라를 바라보면 보다 안전한 환경을 구성할 수 있기도 하고, SA를 준비 중이라면 실무 관점에서도 도움이 될 것 같다. 아래는 이번 강의 골자를 요약한 내용으로 위 여섯 가지 요소를 기억하며 정리하도록 하자.
보안 주체(User, Group, Role)와 정책(Policy, Permission) 관련 내용을 아래 도표로 정리했다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": "*"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddCannedAcl",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111122223333:root",
"arn:aws:iam::444455556666:root"
]
},
"Action": [
"s3:*",
],
"Resource": "*",
}
]
}
AWS 자격증 시험에 단골 등장하는 내용이라고 한다. NACL 과 Security Group(보안그룹)은 비교할 만한 내용이 많으므로 시험을 준비 중이라면 꼭 정리하고 넘어가 보도록 하자.
AMI: EC2 실행에 필요한 위한 세팅의 모음
서버리스(suverless)
Storage
Tenancy
앞서 정리한 내용을 바탕으로 간단한 아키테처 구현 실습을 진행했다.
(참고로, 정리된 내용은 인프라 구성에 필요한 모든 개념을 포함한 것이 아니며 실습과 관련된 강의 내용만을 발췌한 것이기 때문에 보다 심도 깊은 학습을 원한다면 추가 조사가 필요하다)
목표 아키텍처는 위 다이어그램과 같다. 구현할 VPC 안에는 Public과 Private Subnet 이 각각 존재한다. 생성한 EC2 Instance는 퍼블릭 액세스가 가능하고, 프라이빗 서브넷에 인스턴스 격리를 격리할 것이다.
먼저 Public Subnet 을 통해 외부 인터넷과 통신해야 하기 때문에 Internet Gateway 설정이 필요하다. 외부 인터넷 통신(이 실습에서는 IPv4)을 활성화하려면 해당 인스턴스의 프라이빗 IPv4 주소와 연결된 퍼블릭 IPv4 주소를 알아야 한다.
또한 외부 요청은 받지 않지만, 외부로 호출은 보내고 싶은 서비스를 위해 Private Subnet 을 구성해야 한다. 이때는 NAT Gateway 를 활용한다. 위 구조를 위해 크게는 VPC, Subnet, Instance 순서로 설정 및 생성해야 한다. 구체적인 절차는 아래와 같다.
기초적인 부분일지라도 정확한 개념을 알고 넘어가는 것이 중요하다. AWS 클라우드 서비스의 기본 컴포넌트와 탄생 배경을 알게 되어 유익한 시간이었다. IAM 과 Subnet 등의 네트워크 구성 부분에서 실습에서 다루지 못한 디테일한 내용이 많이 남아 있기 때문에 AWS 입문자라면 서비스 시나리오를 정해서 가상 인프라를 구성해 보면 좋을 것 같다.