image

현대 비즈니스 환경에서 클라우드 컴퓨팅(Cloud Computing)은 필수로 자리 잡게되었다. 특히 Amazon Web Services(AWS)는 이러한 변화의 선두주자로서, 기업들이 IT 인프라에 대한 고민을 덜고 비즈니스에만 집중할 수 있도록 돕는다. 다음은 AWS가 무엇인지, 그리고 클라우드 컴퓨팅이 업무 방식을 어떻게 변화시키고 있는지에 대한 내용이다.

클라우드 컴퓨팅이란?

IT 리소스를 온디맨드(On-Demand)로 제공하고 사용 요금은 종량제로 청구하는 서비스를 뜻한다. 쉽게 말해, 필요한 만큼만 컴퓨팅 자원을 사용하고, 사용한 만큼만 비용을 지불하는 방식이다. 전기나 수돗세를 내는 것과 유사하다.

클라우드 컴퓨팅을 사용하면 개발자와 IT 부서가 하드웨어 조달, 유지 관리, 용량 계획과 같은 번거로운 작업을 피하고 가장 중요한 비즈니스 문제에만 집중할 수 있다.

클라우드 컴퓨팅의 3가지 배포 모델

image

1. 온프레미스 (On-Premises)

서버, 스토리지, 네트워크 등 IT 인프라를 기업 내부에 직접 설치하고 운영하는 방식이다. 과거의 기업들은 자체 데이터 센터에서 모든 하드웨어를 직접 관리하며 이 방식을 사용했다.
하지만 인터넷 사용이 점차 확산됨에 따라 컴퓨팅, 스토리지 및 네트워킹 장비에 대한 수요가 증가했다. 일부 기업 및 조직의 경우 대규모 물리적 인프라를 유지 관리하는 데 드는 비용을 계속 감당하기가 어려웠고, 이 문제를 해결하기 위해 등장한 것이 클라우드 컴퓨팅이다.

2. 클라우드 (Cloud)

클라우드 컴퓨팅은 종량제 요금으로 인터넷을 통해 IT 리소스를 온디맨드로 제공하는 방식이다. 자체 하드웨어 및 데이터 센터의 관리가 불필요해지고, AWS 같은 전문 업체가 인프라를 관리해주어 안정적인 운영이 가능해진다.

3. 하이브리드 (Hybrid)

하이브리드 방식은 클라우드 기반 리소스와 온프레미스 리소스를 연결하는 방식이다. 클라우드 리소스를 내부 시스템에 연결하여 조직의 인프라를 클라우드로 확장하고 확대한다. 클라우드와 온프레미스 인프라의 장점을 모두 활용할 수 있다.

클라우드 컴퓨팅 6가지 이점

1. 종량제(Pay-as-you-go)

리소스 실사용량에 대한 비용만 지불하면 된다.

2. 규모의 경제(Economies of Scale)

AWS 같은 클라우드 제공자는 수십만 고객의 수요를 집계하여 대규모 인프라를 운영한다. 서버, 스토리지, 네트워크 장비 등을 대량으로 구매하여 단가가 절감되어 사용자는 더 낮은 종량제 요금을 지불하여 사용할 수 있게 된다.

3. 용량 추정 불필요

사전에 리소스 용량을 추정하지 않아도 된다. "몇 대의 서버가 필요할까?"와 같은 고민이 필요 없게 된다. 필요한 만큼 쓰고, 부족하면 바로 늘릴 수 있다.

4. 속도 및 민첩성 향상

몇 번의 클릭으로 IT 자원을 확보할 수 있다. 개발 환경 구축 시간이 단축된다.

5. 비용 절감

데이터 센터 운영, 전력, 하드웨어 유지 관리와 같은 귀찮은 일은 클라우드가 대신하여 고객은 비즈니스에만 집중하면 된다.

6. 글로벌 배포 용이성

몇 분 만에 전 세계 리전에 애플리케이션을 배포할 수 있다. 글로벌 비즈니스를 저비용 고효율로 실현할 수 있다.

AWS 인프라 계층

구성요소 설명
데이터 센터 실제 서버가 위치한 물리 공간 (가장 작은 단위)
AZ (가용 영역) 하나 이상의 데이터 센터 클러스터. 중복 전력/네트워크로 연결됨. 장애 대비됨
리전(Region) 여러 AZ로 구성. 전 세계 지리적 위치 단위 (e.g. 서울, 오레곤, 런던 등)
엣지 로케이션 최종 사용자 근처에 콘텐츠를 캐시하는 글로벌 CDN 위치 (e.g. CloudFront에서 사용)

리전 선택 기준 4가지

리전 선택 기준을 우선순위로 나타내면 다음과 같다.

  1. 규정 준수: 법적으로 특정 국가에 데이터가 있어야 하는 경우(e.g. GDRP, 국내법 등)
  2. 지연 시간: 사용자와 가까운 리전을 선택하면 빠른 응답이 가능
  3. 요금: 리전별로 가격 차이가 존재함
  4. 서비스 가용성: 모든 서비스가 모든 리전에 제공되지 않음

범위별 서비스 분류

  1. 가용 영역 수준 서비스
    • 사용자가 특정 AZ 지정 필요
    • 고가용성은 사용자가 직접 구현
    • e.g. EC2 인스턴스
  2. 리전 수준 서비스
    • AWS가 자동으로 여러 AZ에 걸쳐 중복성 제공
    • 내구성과 가용성이 내장됨
    • 사용자는 리전만 선택하면 됨
  3. 글로벌 서비스
    • 특정 리전 선택 불필요
    • 전 세계적으로 동일하게 작동

CloudFront와 엣지 로케이션

image

엣지 로케이션(edge location)는 콘텐츠가 캐시되는 위치를 의미한다.

CloudFront는 전 세계 400개 이상의 엣지 로케이션을 통해 콘텐츠를 캐시하여 가장 가까운 엣지에서 콘텐츠를 제공하는 방식으로 지연 시간을 최소화하는 서비스다.

e.g. 시드니 사용자가 런던의 비디오를 요청하면, 시드니 근처 엣지에서 전달

AWS 접근방법 3가지

  1. AWS Management Console: 웹 브라우저에서 사용하는 GUI 인터페이스
  2. AWS CLI: 명령줄에서 API 호출을 직접 실행할 수 있음
  3. AWS SDK: 코드로 API 호출할 수 있게 해주는 라이브러리 모음

AWS 공동 책임 모델(Shared Responsibility Model)

image

AWS에서 보안은 AWS와 고객 모두의 책임으로 나뉜다.

  1. AWS의 책임: 클라우드 자체를 안전하게 유지해야 함

    • 데이터 센터, 서버, 물리적 건물의 보안
    • 하드웨어, 호스트 OS, 하이퍼바이저 등 인프라 관리
    • AWS 글로벌 네트워크 보호
    • EC2 등 가상화 기반 서비스의 물리적 인프라 수준 보안
  2. 고객의 책임: 클라우드 안에서 무엇을 하느냐에 대한 책임

    • OS 패치 관리 (EC2 등 IaaS에서는 고객이 직접 관리)
    • IAM 설정
    • 데이터 암호화, 백업 정책 설정
    • 방화벽 및 보안 그룹 구성
    • 리전 선택, 서비스 설정, 보안 설정 등

루트 사용자(Root User)

image

루트 사용자란, AWS 계정을 처음 만들 때 등록한 이메일과 비밀번호로 로그인하는 계정을 의미한다. 모든 AWS 리소스와 설정에 대한 무제한 권한을 가진다. 강력하지만 보안상 매우 민감한 계정이다.

루트 계정이 해킹되면 다음과 같은 일들이 일어날 수 있다.

  1. 계정 전체 삭제
  2. S3 버킷 삭제
  3. EC2 서버에 암호화폐 채굴기 심기
  4. AWS 요금 폭탄

따라서 다음의 모범 사례를 지킬 것을 권장한다.

  • 강력한 비밀번호 사용
  • MFA 활성화
  • 공유 금지
  • 루트 액세스 키 비활성화 / 삭제
  • IAM 사용자 로그인해 사용하기

MFA(Multi-Factor Authentication)이란?

두 가지 이상의 인증 정보를 사용해 로그인하는 보안 방식이다.

인증 요소는 3가지로 나뉜다.

  1. 비밀번호, PIN 등 알고 있는 정보
  2. OTP 앱, 하드웨어 키 등 가지고 있는 정보
  3. 지문, 얼굴 인식 등 신원 정보

AWS는 1 + 2번 조합을 사용한다.

AWS가 지원하는 MFA 기기

설명 예시 앱/기기
가상 MFA 스마트폰 앱에서 OTP 생성 Google Authenticator, Authy 등
하드웨어 TOTP 키 포브 등 실물 장치에서 코드 생성 Gemalto, Symantec VIP 등
FIDO 보안 키 USB로 연결되는 보안 키 Yubico 키 등

IAM(Identity and Access Management)

보안 시스템은 다음 두 가지로 나뉜다.

  1. 인증(Authentication)
    • 당신이 누구인지 확인하는 절차
    • e.g. 로그인(ID + 패스워드), MFA 등
    • 자격 증명을 사용해 사용자를 식별
  2. 권한 부여(Authorization)
    • 당신이 무엇을 할 수 있는지 결정하는 절차
    • e.g. EC2 인스턴스 생성 권한, S3 버킷 접근 권한 등
    • IAM 정책을 통해 작업 범위를 결정

IAM 구성 요소

  1. IAM 사용자 (User)
    • AWS 리소스에 접근하는 개별 사용자 또는 서비스
    • 영구적인 자격 증명 부여
    • 두 가지 접근 방식
      1. AWS 콘솔: 사용자 이름 + 패스워드
      2. CLI/API: 액세스 키 ID + 시크릿 키
  2. IAM 그룹 (Group)
    • IAM 사용자들의 집합
    • 그룹에 연결된 정책은 모든 구성원이 상속 받음
  3. IAM 정책 (Policy)
    • JSON 형식으로 작성되는 권한 문서
    • 허용(Allow) 또는 거부(Deny) 작업을 정의
  4. IAM 역할 (Role)
    • 임시 자격 증명을 제공하는 자격 증명
    • 사용자 이름 / 패스워드 없음
    • 자격 증명이 자동으로 교체됨
      - 주요 사용 사례:
      • EC2 → S3 같은 서비스 간 액세스
      • 사내 Active Directory → AWS SSO(패더레이션) 연동
      • 다른 계정 간 리소스 접근(크로스 계정 액세스)

IAM 역할 생성

image

신뢰할 수 있는 엔터티

신뢰할 수 있는 엔터티 유형이란?
→ 이 역할(Role)을 누가 사용할 수 있는지(수임할 수 있는지) 지정하는 단계다

선택할 수 있는 엔터티 유형은 다음과 같다.

  • AWS 서비스: EC2, Lambda 등 AWS 서비스가 이 역할을 사용할 수 있도록 허용하는 것
  • AWS 계정: 다른 계정(AWS Organization 또는 외부 계정)의 엔터티가 역할을 수임할 수 있도록 허용하는 것
  • 웹 자격 증명(OIDC): Cognito 또는 Google, Github 같은 외부 ID 공급자의 사용자 인증
  • SAML 2.0 패더레이션: 사내 Active Directory(SAML 기반) 사용자 인증과 연계
  • 사용자 지정 신뢰 정책: 위에 없는 특수 상황을 위한 맞춤형 수임 정책을 구성

IAM 모범 사례

  • 루트 사용자 잠금
    • MFA 즉시 활성화
    • 일상 작업에 사용 금지
    • 관리자 권한 IAM 사용자 생성 후 전환
  • 최소 권한 원칙
    • 필요한 최소한의 권한만 부여
    • 와일드카드(*) 사용 최소화
  • 그룹 활용
    • 개별 사용자보다 그룹 단위 권한 관리
    • 직무별 그룹 구성 (개발자, 보안, 관리자 등)
  • 역할 우선 사용
    • 서비스 간 통신에는 역할 사용
    • 장기 자격 증명보다 임시 자격 증명 선호
  • 정기적 검토
    • 사용하지 않는 자격 증명 제거
    • 마지막 액세스 정보 활용

이 글은 AWS Skill Builder의 Introduction to AWS Lambda (한국어) 강의를 토대로 공부한 내용을 정리한 것입니다.