Module 1 : Archtecting 기본 사항
AWS 특징
- 종량제 : 쓴만큼 비용 청구, 초기 리소스에 구현에는 온프레미스 대비 비용절감이 확실하지만 점차 서비스를 구성해 나아가면 온프레미스와 거의 비용이 동일하다.
- tmi : AWS는 Hard Limit이 존재하지 않아서 모니터링으로 비용 관리가 필수적이다!
- 빠른 리소스 생성 : 민첩성이 증가하여 출시 시간 단축 및 원활한 크기 조정이 가능하다.
- 관리형 서비스 : 복잡성 및 위험 감소가 가능
- 공동 책임 모델 : AWS 글로벌 인프라 모델의 특징, AWS 클라우드 자체에 대한 보안은 AWS가 책임지고, AWS 클라우드 내부의 보안은 운영 기업에서 책임져야 한다.
AWS 글로벌 인프라
- 리전을 선택하는 case : 거버넌스, 지연 시간 요구 정도, 서비스 가용성(리전마다 제공하하는 서비스가 다름), 비용 요인 측면
- 리전 내의 가용영역의 경우 수십 km 거리를 둔다 → 장애 및 재난에 대응하기 위해서
- Local Zone : 최소한의 지연시간을 제공하기 위해서 기존 리전 영역 안에 있는 가용영역과 달리 핵심 인프라 서비스(EC2 , VPC ,EBS ,RDS ,etc.)만 따로 구성해둔 영역이다.
클라우드 운영 최적화 요소 모범 사례
- 보안 : 모든 계층, 최소 권한의 원칙,MFA(다중 인증)
- 성능 효율성 : 지연 시간 감소, 서버리스 아키텍처, 모니터링
- 비용 최적화 : 지출 분석, 비용 효율적인 리소스
- 운영 우수성 : 코드로 운영 수행, 예상 외의 이벤트 발생 시 대응 테스트
- 신뢰성 : 장애에서 복구, 복구 절차 테스트, 가용성 향상을 위한 스케일링
- 지속 가능성 : 영향 파악, 사용률 최대화
AWS 아키텍츠의 역할
계획
- 비즈니스 책임자와 함꼐 기술분야의 클라우드 전략을 수립 및 솔루션 분석
조사
- 클라우드 서비스 사양과 워크로드 요구사항을 조사
- 기존 워크로드 아키텍처를 검토 및 프로토타입 솔루션 설계
구축
- 마일 스톤, 작업 스트림 및 소유자가 포함된 전환 로드맵 설계
- 기술 도입 및 마이그레이션을 관리
Well-Architected Framework 을 이용해서 모범 사례 비교 가능
- Well-Architected Tool 6개월, 1년마다 지속적으로 검토 수행
Practice 1 : AWS 관리 콘솔 및 AWS CLI 살펴보기 및 사용
AWS 관리 콘솔을 사용하여 Amazon S3 버킷 생성

버킷 생성

생성 완료 모습

S3 콘솔을 사용하여 Amazon S3 버킷에 객체 업로드


AWS CLI를 사용하여 Amazon S3 버킷을 생성한 후 객체 업로드
-
EC2 인스턴스에 접속 후 터미널창에서 CLI 명령어를 통해 실습을 해본다.
-
AWS 에 존재하는 S3 bucket 리스트 확인 :aws s3 ls

-
버킷 추가 : aws s3 mb s3://<버킷 이름>

-
AWS 버킷에 객체 복사 수행 : aws s3 cp /home/ssm-user/HappyFace.jpg s3://<버킷 이름>

-
AWS 버킷 내부 파일 리스트 확인 : aws s3 ls s3://<버킷 이름>

Module 2 : 액세스 관리
- AWS 계정 루트 사용자
- 단일 계정 내 모든 AWS 서비스에 대한 제한 없는 액세스 권한 보유
- 일반적인 업무에는 사용하는 것은 비추천
- MFA 적용을 통한 인증 강화
- AWS IAM(Identity and Access Managemnet) 서비스의 정의
- AWS 계정 내의 인증과 권한 부여를 다루는 보안 서비스
- AWS IAM에서 다루는 보안 주체
- IAM 사용자 : AWS 계정 내의 사용자
- 페더레이션 사용자 : AWS 외부에서 인증을 받은 사용자 ex) 온프레미스에서 인증받은 사용자를 AWS에 연계용자를 AWS에 연계
- 애플리케이션 : AWS 리소스에 접근하고자 하는 애플리케이션
- IAM 역할 : 임시 기간으로 인증 및 권한을 부여 받은 보안 주체
역할 수임
- 신뢰할 수 있는 엔티티(IAM 사용자, AWS 서비스, 페더레이션 사용자)에서 API 호출을 사용해 역할을 수임한다.API 호출은 AWS Security Token Service(AWS STS) 에 대해 수행한다.
- 프로덕션 계정(AWS STS)에서 액세스 키 ID,비밀 액세스 키 및 보안 토큰으로 구성된 임시 보안 자격 증명 집합을 반환한다.
- 임시 보안 자격 증명을 통해서 AWS 리소스에 액세스 한다.
IAM 정책 할당
-
IAM 사용자 그룹에게 IAM 정책을 연결하여 권한 부여 → IAM 사용자 그룹에 소속된 사용자는 권한을 상속받는다.
-
IAM 정책 : 하나 이상의 권한으로 이루어지는 JSON 형태의 문서
AWS Organizations
-
여러 AWS 계정을 하나의 계층화된 조직으로 구성
-
하나 이상의 AWS 계정을 조직 단위(OU)로 그룹화 가능
-
관리 계정(루트)가 전체 조직을 관리하며 통합 결제 처리
-
다중 계정 구조를 생성하는 이유
- 분류 및 검색을 위해 리소스를 그룹화
- 논리적 경계를 통해 보안 태세를 개선
- 무단 액세스가 발생할 경우 잠재적 영향을 제한
- 다양한 환경에 대한 사용자 액세스를 간편하게 관리
AWS Organization 사용
- 계정을 조직 단위(OU)단위로 그룹화 하여 계층을 생성
- 서비스 제어 정책(SCP)을 적용하여 OU에 속한 모든 계정의 최대 권한을 제어한다.
SCP vs 권한 경계
- 조직용으로 구성되어있는 SCP를 통해 작업을 허용해야 한다.
- 자격 증명 기반 정책이 작업을 허용해야하며 명시적으로 거부하지 않아야 한다.
- 마지막으로, 적용되어 있는 권한 경계 작업 내의 작업이 포함되어야 한다.
명시적 허용 vs 명시적 거부
- IAM 정책에서는 명시적 허용 또는 명시적 거부 작업이 포함되어야한다.
Module 3 네트워킹
VPC 설계를 위한 구성요소
IP 주소
- CIDR 블록을 통해서 IP 범위를 지정한다.
- VPC에서 지원하는 CIDR 블록(/16~/28)
VPC
- 클라우드 네트워크 환경
- 사용자가 정의한 가상 네트워크 안에 AWS 리소스를 프로비저닝 할 수 있다.
- 리전 내 어떤 가용 영역에서나 리소스를 호스트 할 수 있다.
서브넷
- VPC 내의 IP 주소 범위이다.
- 인터넷에 연결되어야 하는 리소스는 퍼블릭 서브넷에 사용하고, 인터넷에 연결되지 않은 리소스는 프라입시 서브넷을 사용한다.
- 각 서브넷 CIDR 블록에 처음 4개(네트워크 주소, VPC 라우터용, DNS 서버, 추후 사용을 위한 예약), 마지막 주소(브로드 캐스트 주소)는 사용할 수 없다.
인터넷 게이트웨이
- VPC 내 인스턴스와 외부 인터넷과의 트래픽 허용한다.
- VPC 내의 인터넷 게이트웨이를 사용하는 목적
- 인터넷 라우팅이 가능한 트래픽에 대한 라우팅 테이블의 대상을 제공
- NAT를 수행하여 네트워크의 IP 주소를 보호
라우팅 테이블
- VPC가 네트워크 트래픽이 전달되는 위치를 결정하는데 사용되는 규칙을 포함한다.
- VPC 내의 각 서브넷은 라우팅 테이블과 연결되어야 한다.
NAT 게이트 웨이
- 프라이빗 주소가 퍼블릭 IP 주소에 매핑되므로 NAT를 사용하면 프라이빗 IP 주소의 인터넷 연결을 허용할 수 있다.
네트워크 ACL
- 하나 이상의 서브넷에 송수신되는 트래픽을 제어하는 방화벽 역할을 하는 가상 방화벽이다.
- 기본적으로 사용자 정의 네트워크 ACL은 규칙을 추가하기 전에는 모든 인바운드 및 아웃바운드 트래픽을 거부한다.
보안 그룹
- 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 한다.
- 보안 그룹은 서브넷 수준이 아닌 인스턴스 수준에서 작동하며 허용 규칙만 지원한다.
Module 4. 컴퓨팅
Amazon EC2 (Elastic Compute Cloud)
- Nitro 시스템 하이퍼바이저 기반 가성 서버를 제공하는 컴퓨팅 서비스
- 온프레미스 서버처럼 다양한 애플리케이션 실행에 사용된다.
EC2 인스턴스 시작시 고려사항
- 이름 및 태그
- 애플리케이션 및 OS 이미지
- 인스턴스 유형 및 크기
- 키 페어
- 네트워크 및 보안
- 스토리지
- 배치 및 테넌시
- 스크립트 및 메타 데이터
AWS 리소스 태그
- 생성한 AWS 리소스에 이름 및 기타 태그를 할당해준다.
- 리소스를 관리하거나 검색 및 필터링 하는데 사용된다.
- 태그는 키와 값으로 구성되며, 구성 요소 모두 대소문자 구분이다.
- 태그는 AWS 사전 정의 태그와 고객 태그로 구분될 수 있다.
- AWS 사전 정의 태그 예시 : aws:ec2spot:fleet-request-id = sfr-1111222-3333-444-555-6666 (스팟 인스턴스 요청을 식별)
- 고객 태그 예시 : example-corp:cost-center = 4000 (내부 비용 코드를 식별)
Amazon Machine Image (AMI)
- 인스턴스 볼륨의 템플릿, 시작 권한 및 블록 디바이스 매핑 포함
- AMI 자체가 백업 이미지이며, 여러 동일 인스턴스 배포 및 장애 복구용으로 사용
인스턴스 유형 이름
-
EC2 인스턴스의 Spec으로 컴퓨팅, 메모리, 네트워크 및 내장 스토리지 용량을 정의한다.
-
인스턴스 패밀리, 세대, 추가 속성 및 인스턴스 크기로 구성된다.

-
EC2 인스턴스 패밀리
- 범용
- 메모리 최적화
- 스토리지 최적화
- 컴퓨팅 최적화
- 가속 컴퓨팅
네트워크 및 보안
-
EC2를 배치할 VPC 그리고 서브넷을 지정해야 한다.
-
인스턴스 수준의 가상 방화벽인 보안 그룹을 지정한다.
테넌시와 배치 그룹
-
공유 테넌시, 전용 인스턴스, 전용 호스트
-
클러스터 배치그룹, 분산형 배치그룹(물리적으로 떯어트린다.) , 파티션 배치그룹
사용자 데이터
- EC2 인스턴스 생성시 실행되는 bash 및 powershell 스크립트
- 인스턴스를 구성 또는 관리하는데 사용하는 인스턴스 메타데이터를 사용자 데이터에 포함
- EC2 인스턴스를 부트스트래핑하는데 활용
- bootstraping : ec2 인스턴스가 시작될 떄마다 애플리케이션, 종속성 또는 사용자 지정을 설치하는 것
- 장점 : 항상 최선 버전 구성이 가능
- 단점 : user data 스크립트에 시간이 오래걸린다.
- baking : 애플리케이션 아티팩트의 상당 부분을 AMI 내에 임베딩하는 프로세스
- 장점 : 빠르게 App 배포 할 수 있다.
- 단점 AMI를 지속적으로 업데이트해야한다.
Amazon EBS (Elastic Block Store)
- 서버에 Mount 해서 사용하는 블록 스토리지
- EC2의 파일 시스템으로서 운영 체제와 애플리케이션 작동 및 데이터를 영구 저장한다.
- Amazon EBS 볼륨을 생성할 떄 고려할 부분
- 어떤 가용영역을 사용할 것인지
- SSD, HDD 선택 여부
- 스냅샷을 통해 볼륨 백업이 가능하다.
AWS Lambda
- 서버리스, 상태 비저장 컴퓨팅 서비스이다.
- 애플리케잇녀 코드와 종속성 요소를 함수로 패키징 할 수 있다.
- 다른 AWS 서비스 및 HTTPs Endpoint에 의한 이벤트 트리거가 필요하다.
- 웹 애플리케이션, 백엔드, 데이터 처리, IT 자동화 등 다양한 용도로 사용된다.