[AWS] AWS 기초

AWS의 기본 내용에 대해 알아본다.

목차

  1. AWS란?
  2. S3 & Cloudfront
  3. AWS 솔루션 실무 적용 사례
  4. AWS 클라우드 인프라의 구성 요소
  5. AWS 네트워크 구성 요소 설명: 캠퍼스 예시로 이해하기
  6. AWS 초기 설정 및 구성 시 주의점

AWS에 대한 기초 내용

AWS란?

  • Amazon Web Service
  • 클라우드 컴퓨팅 플랫폼
    • 인터넷을 통해 IT리소스(서버, 스토리지, 데이터베이스, 네트워킹 등)를 제공하고 관리하는 서비스
    • 특징
      1. 확장성 (Scalability)
        • 사용자가 필요에 따라 리소스를 쉽게 확장, 축소 가능
        • 블랙 프라이데이에는 몇 배의 트래픽이 몰림. 이때마다 하드웨어를 사용하는건 비효율적, 이때만 자원을 사용하고 끝나면 반납할 수 있음
      2. 유연성 (Flexibility)
        • 다양한 IT 환경에 맞춰 손쉽게 맞춤화 가능
        • 자바스크립트로 백엔드 많이 사용
      3. 비용 효율성 (Cost Efficiency)
        • 초기 자본 투자 없이, 사용한 만큼 지불하는 비용 구조
      4. 가용성
        • 높은 가용성과 자동 백업, 복구 기능으로 서비스 중간 최소화
        • 람다 서비스를 처음 띄울 때 서울 4개의 구역에 띄워놓을 수 있음. 한 개의 구역에 오류가 나도 다른 구역에서는 잘 쓸 수 있음.
  • AWS 계정 만들어보기
  • AWS Cloud Practitioner Essentials (Korean)
    • Cloud Practitioner 자격증 있음
      • 공부하는 것 추천함 (따는건 비쌈)
  • 큰 회사에서는 AWS 자격증이 크게 상관없겠지만, 작은 회사에서는 AWS역량이 필수적

S3 & Cloudfront

  • S3
    • Simple Storage Service
    • AWS 최초의 서비스
    • 클라우드 파일 저장소
    • AWS 사용하고 있는 회사라면 99%의 확률로 활용하고 있음
    • S3는 서버사이트 스크립팅(PHP, Python등)이 필요없는 정적 웹사이트에 최적
    • 기본 개념
      • 버킷 (Bucket)
        • S3에서 데이터를 저장하는 컨테이너
        • 모든 S3객체는 반드시 하나의 버킷에 속해 있음
        • S3 스토리지의 최상위 계층이며, 사용자가 데이터를 저장하고 관리할 수 있는 폴더와 비슷
          • 컴퓨터에서 C드라이브와 비슷한 느낌
        • 각 버킷은 고유한 이름을 가짐(전세걔 유일)
        • 데이터 저장 위치(region), 권한 설정, 버전 관리, 수명 주기 정책 등 관리 가능
      • Key
        • S3버킷 내 객체(파일)를 고유하게 식별하는 문자열
        • 버킷 내 키는 객체의 “경로”로 생각 가능
        • 디렉토리 구조를 흉내낼 수 있도록 설계됨
          • 그냥 전체가 하나의 키임
    • 사용 방법
      • AWS Console
      • AWS Cli
      • FTP 프로그램
        • file transfer protocol
        • 사이버덕, 파일질라
  • Cloudfront
    • AWS CDN 서비스
      • Contents Delivery Network
      • 인터넷 사용자에게 웹 콘텐츠를 빠르고 효율적으로 제공하기 위해 설계된 분산형 서버 네트워크
    • S3를 비롯한 AWS의 다른 서비스와 연동이 쉬움
    • AWS를 사용하는 회사라면 99% 사용
    • S3는 저장에 특화, Cloudfront는 전송에 특화
      • S3는 직접 접근으로 주로 내부 사용자나 제한된 사용자들에게 제공을 많이함
      • 하지만 Cloudfront는 CDN을 통해 접근하기때문에 속도도 빠르고 캐싱도 됨
    • S3 1GB당 약 0.117$, Cloudfront 1GB당 0.095$
    • CloudFront는 약정 계약이 가능

AWS 솔루션 실무 적용 사례

  1. 이미지 리사이즈
    • 대역폭 및 비용 감소할 수 있음
    • 첫 번째 AWS 활용 포트폴리오
      1. S3에 이미지가 업로드 되면 자동적으로 원하는 크기로 리사이징하여 저장하는 방법
      2. 원하는 사이즈의 이미지를 실시간으로 생성하는 방법
        • 본인이 자신있는 프로그래밍 언어를 선택하여 AWS Lambda 기능을 활용해서 작성
        • ‘aws cloudfront 이미지 리사이징’ 구글 검색
  2. 보안
    • 민감정보 보호 방법
      • Signed URL
        • 특정 사용자에게만 접근 권한을 부여하기 위해 URL에 만료 시간과 암호화된 서명을 포함한 URL
      • Signed Cookie
        • 특정 조건을 만족하는 사용자만 CloudFront를 통해 콘텐츠에 접근할 수 있도록 설정하는 보안 메커니즘

AWS 클라우드 인프라의 구성 요소

  1. EC2 (Elastic Compute Cloud)
    • 개발자가 클라우드 컴퓨팅 작업을 할 수 있도록 설계된 서비스
    • 가상화된 서버를 하나의 인스턴스 형태로 제공하며, 컴퓨팅 요구사항에 맞게 용량 조절 가능
  2. IDC
    • Internet Data Center
    • 물리적 인프라를 제공하는 시설
  3. 리전 (Region)
    • 물리적으로 분리된 지리적 위치
    • 각 리전은 여러 개의 데이터 센터(Availability Zone, AZ)로 구성되어 있음
    • 리전 간 데이터 전송은 네트워크 지연 시간(latency)이 발생할 수 있음
    • 각 리전은 법적, 규제 요구 사항을 충족하도록 설계됨
  4. Availability Zone
    • 리전 내에서 독립적으로 운영되는 데이터 센터
    • 각 AZ는 하나 이상의 데이터 센터로 구성되어 있음
    • VPC (가상 사설 네트워크)
      • Virtual Private Cloud
      • 네트워크
        • 2개 이상의 컴퓨터나 장치가 서로 데이터를 주고 받을 수 있도록 연결된 시스템
      • 사설
        • 공개되지 않은, 외부와 분리되느 특정 사용자나 조직만 접근할 수 있는
      • 가상
        • 물리적인 하드웨어 장비나 네트워크 인프라 없이, 소프트웨어를 통해 논리적으로 격리

AWS 네트워크 구성 요소 설명: 캠퍼스 예시로 이해하기

  • 퍼블릭 서브넷
    • Public Subnet
      • public : 인터넷과 직접 연결되어있다.
      • subnet : sub + network, 하나의 네트워크를 더 작은 단위의 네트워크로 (부분 집합)
    • 중앙 운동장, 도서관, 기념품샵 등등
  • 프라이빗 서브넷
    • Private Subnet
      • 인터넷과 직접 연결되어있지 않다.
    • 교수 연구실, 실험실 (아무나 못들어가는)
  • 라우팅 / 라우팅 테이블
    • Routing Table
      • 라우팅 : 경로, 네트워크 내에서 데이터가 이동할 경로를 결정
    • 캠퍼스 내 길 / 길 안내 지도
  • 인터넷 게이트웨이
    • 학교 정문
  • NAT 게이트웨이
    • Network Address Translation
      • Network Address : IP주소 (Internet Protocol)
        • 네트워크 상에서 각 장치를 식별하기 위해 사용되는 고유한 숫자 주소
    • 내부 네트워크의 사설 IP 주소를 공용 IP주소로 변환
    • 경비실, 차량 차단기, 보안 검사대
  • 네트워크 ACL (Access Control List)
    • 전체 구역 통제 시스템
    • 서브넷 단위
    • Stateless, 상태 비기반, 독립적인 제어
      • 들어올 때도 검사하고 나갈때도 검사함
    • 우선순위가 있음
    • 차단기의 정책, 비행기 탈 때와 비슷
  • 보안 그룹 (Security Group)
    • 개별 사무실 출입 통제 시스템
    • 기본적으로 모든 트래픽은 차단하며 허용 규칙만 있음
    • stateful, 상태 기반 (신분증 제출하고 출입증 받아가는 느낌)
  • 라우팅 테이블에 인터넷 게이트웨이랑 퍼블릭 서브넷이 연결
    • 반대로 생각하면 퍼블릭 서브넷과 프라이빗 서브넷을 구분짓는 중요한 요소가 됨

AWS 초기 설정 및 구성 시 주의점

  • AWS에서 처음으로 제공해주는 VPC는 가급적으로 사용하지 말자
  • 람다를 private 서브에 올리고 nat를 사용하는 것을 추천
    • 람다는 실행할 때마다 ip가 바뀜, 문제가 될 수 있음