Architecting on AWS 1일차

Hyun·2025년 7월 2일

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 역할 : 임시 기간으로 인증 및 권한을 부여 받은 보안 주체

역할 수임

  1. 신뢰할 수 있는 엔티티(IAM 사용자, AWS 서비스, 페더레이션 사용자)에서 API 호출을 사용해 역할을 수임한다.API 호출은 AWS Security Token Service(AWS STS) 에 대해 수행한다.
  2. 프로덕션 계정(AWS STS)에서 액세스 키 ID,비밀 액세스 키 및 보안 토큰으로 구성된 임시 보안 자격 증명 집합을 반환한다.
  3. 임시 보안 자격 증명을 통해서 AWS 리소스에 액세스 한다.

IAM 정책 할당

  • IAM 사용자 그룹에게 IAM 정책을 연결하여 권한 부여 → IAM 사용자 그룹에 소속된 사용자는 권한을 상속받는다.

  • IAM 정책 : 하나 이상의 권한으로 이루어지는 JSON 형태의 문서

    AWS Organizations

  • 여러 AWS 계정을 하나의 계층화된 조직으로 구성

  • 하나 이상의 AWS 계정을 조직 단위(OU)로 그룹화 가능

  • 관리 계정(루트)가 전체 조직을 관리하며 통합 결제 처리

  • 다중 계정 구조를 생성하는 이유

    • 분류 및 검색을 위해 리소스를 그룹화
    • 논리적 경계를 통해 보안 태세를 개선
    • 무단 액세스가 발생할 경우 잠재적 영향을 제한
    • 다양한 환경에 대한 사용자 액세스를 간편하게 관리

AWS Organization 사용

  • 계정을 조직 단위(OU)단위로 그룹화 하여 계층을 생성
  • 서비스 제어 정책(SCP)을 적용하여 OU에 속한 모든 계정의 최대 권한을 제어한다.

SCP vs 권한 경계

  1. 조직용으로 구성되어있는 SCP를 통해 작업을 허용해야 한다.
  2. 자격 증명 기반 정책이 작업을 허용해야하며 명시적으로 거부하지 않아야 한다.
  3. 마지막으로, 적용되어 있는 권한 경계 작업 내의 작업이 포함되어야 한다.

명시적 허용 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 자동화 등 다양한 용도로 사용된다.
profile
DevSecOps & Cloud Engineer를 꿈꾸는 엔지니어

0개의 댓글