TIL | AWS (Region, AZ, IAM, MFA, EC2, EBS, AMI ...)

·2023년 8월 2일

TIL # WIL

목록 보기
41/65
post-thumbnail

23.08.02

1. AWS 시작하기

1-1. AWS란,

AWS(Amazon Web Services) : 아마존닷컴이 제공하는 클라우드 컴퓨팅 플랫폼
AWS 링크

1-2. Region and Availability Zone

AWS 리전(Region) : 세계 각지에 있는 AWS 데이터 센터의 물리적인 위치를 의미

가용영역(Availability Zone, AZ) : 하나의 리전 안에는 여러가지 가용영역(AZ)으로 구성

=> 즉, 여기서 AZ는 쉽게 데이터 센터라고 생각하면 좋고 각 데이터 센터에는 각각의 전력이나 네트워크같은 인프라들이 별도로 존재하게 하면서 고가용성을 유지함

  • 리전 선택시, 우리가 한국에서 개발하더라도 사용자가 일본 사람들이면 리전을 일본으로 선택하여 서비스를 배포하는 것이 좋음
  • 리전마다 이용 가능한 서비스들이 다름

2. Identity and Access Management

2-1. IAM

IAM(Identity and Access Management) : Route53과 같이 글로벌 서비스

회원가입시 사용한 Root Account는 사용/공유되면 안됨

=> 왜 ? Root Account가 공개가 된다면 악용될 수 있기 때문에, 계정관리를 소중히 해줘야 함

그래서 Root Account를 사용하는 것이 아닌 User(실제 로그인하는 사람)와 Group(개발자 / 운영과 같이 유저 종류를 지정)을 만들어서 사용해야 함
(User는 Group에 속할 수도 속하지 않을 수도 있음)

이렇게 만들어진 Group과 User들은 Policy를 통해 AWS 리소스에 대한 액세스 권한을 지정
=> 이때, 권한은 최소한의 권한 원칙을 지켜야함 (필요 이상의 권한을 주면 안됨)

  • Provides full access to AWS services an : 모든 권한을 주는 관리자 권한

  • Account = Root Account = 컴퓨터

  • User = Account에 접근하기 위한 세부 User

Policy Structure
{
  "Version": "policy-version",
  "Statement": [
    {
      "Effect": "allow-or-deny",
      "Action": ["action-name"],
      "Resource": ["resource-arn"],
      "Condition": {
        "condition-operator": {
          "condition-key": "condition-value"
        }
      }
    }
  ]
}
  • Version: 정책의 버전
  • Statement: 정책의 규칙, 배열 형태로 여러 개의 규칙을 작성 가능
  • Effect: 규칙의 적용 여부, "allow" 또는 "deny" 중 하나를 선택
  • Action: 규칙이 적용되는 작업의 종류
  • Resource: 규칙이 적용되는 리소스의 ARN(Amazon Resource Name)
  • Condition: 규칙이 적용되는 조건, 필수는 아니며 필요한 경우 추가, 다양한 조건 연산자를 사용 가능

2-2. MFA

MFA(Multi-Factor Authentication) : 다중 인증 요소 인증 방식을 의미, 즉 일반적인 사용자 ID와 비밀번호 입력 외에 추가적인 인증 요소를 요구하여 보안을 강화하는 방법
(ex. 이메일과 비밀번호를 입력했을 때 다시 핸드폰으로 push 알림이 와서 추가적인 이중 인증을 하는 것)

=> 왜 ? 현대에서는 비밀번호로만 인증을 한다면 보안에 너무 취약하기 때문에


3. Elastic Compute Cloud

3-1. Billing (Dashboard)

AWS 계정 사용량과 비용을 모니터링하고, 요금 청구 정보를 제공하는 서비스

  • Bills : 사용한 내역들 확인 가능
  • Budgets (예산) : 예산이 넘어가면 알람이 오게끔 해주는 서비스

3-2. EC2 기초

EC2 (Elastic Compute Cloud) : 필요에 따라 탄력적으로(유연하게) 성능을 제공해주는 클라우드 컴퓨팅 서비스

클라우드 서비스의 종류

  • IaaS (Infrastructure as a Service) : 하드웨어 인프라를 인터넷을 통해 제공하는 서비스 => 즉, 서버를 제공해주는 클라우드 서비스 => 이를 사용하면 우리는 비싼 서버 컴퓨터를 구매할 필요가 없어짐 !
    ex. AWS EC2, Microsoft Azure, Google Compute Engine

  • PaaS (Platform as a Service) : 하드웨어 인프라를 기반으로 애플리케이션을 개발, 실행, 관리하기 위한 플랫폼(환경)을 인터넷을 통해 제공하는 서비스
    ex. AWS Elastic Beanstalk, Heroku, Google App Engine 등이 PaaS 서비스를 제공합니다.

  • SaaS (Software as a Service): SaaS는 사용자에게 완전한 애플리케이션을 제공하며, 이 애플리케이션은 클라우드 제공업체의 서버에서 실행되며 클라우드 제공업체가 모든 인프라, 운영 체제, 백엔드 애플리케이션 및 데이터 관리를 담당 => 즉, 사용자는 필요한 소프트웨어 서비스만 제공받음
    ex. 구글 드라이브, 마이크로소프트 오피스 365, Salesforce 등이 SaaS 서비스의 예입니다.

3-3. EC2 인스턴스

AWS EC2는 가상 서버 인스턴스를 제공해주는데 이에 따라 필요한 시간만큼 가상 서버를 생성하고 사용할 수 있으며, 필요에 따라 스케일 업 또는 스케일 다운할 수 있음

그렇다면 여기서 인스턴스란 ? 가상화된 컴퓨터 환경을 의미 => 이 환경은 실제로는 하드웨어 리소스를 가상화하여 사용하고 있기 때문에, 하드웨어 상에서 실행 중인 물리적인 서버와는 다름 =>따라서, 이러한 가상화된 컴퓨터 환경을 "인스턴스(instance)" 라고 부름 => 각 인스턴스는 독립적으로 실행되고 관리

EC2 용도

  • 웹 애플리케이션 호스팅
  • 데이터베이스 호스팅
  • 컴퓨팅 작업 (예: 데이터 분석, 머신 러닝)
  • 애플리케이션 테스트 및 개발

EC2의 옵션들

  1. 인스턴스 유형 (Instance Types) - 인스턴스 유형은 서버에 할당되는 CPU, 메모리, 스토리지 및 네트워크 리소스와 같은 기본 성능 특성을 결정합니다. 예를 들어, 일부 인스턴스 유형은 컴퓨팅 작업에 적합하고, 다른 유형은 메모리 집약적인 작업에 적합합니다.

    인스턴스 유형 타입
    인스턴스 유형 타입

t2.nano micro small medium large large 2xlarge … 등
=> t2. 다음은 인스턴트 사이즈

  1. 운영 체제 (Operating System) - EC2 인스턴스는 다양한 운영 체제를 지원 (ex. Amazon Linux, Ubuntu, Windows 등)
  2. 스토리지 옵션 (Storage Options)
  3. 보안 그룹 (Security Groups)
  4. 키 페어 (Key Pair)
  5. 탄력적 IP 주소 (Elastic IP Address)
  6. 사용 가능한 영역 (Availability Zones)

Ubuntu : 서버용으로 많이 사용하는 Linux의 한 종류

RSA : key pair을 만드는 것은 우리의 컴퓨터에서 해당 인스턴스에 접속할 때 데이터들을 암호화해주는 알고리즘을 지정해주는 것 ???

3-4. 보안규칙

보안규칙

  • 여러 인스턴스에 할당 가능
  • 하나의 인스턴스에 여러 보안규칙 할당 가능
  • time out → 보안규칙 이슈
  • connection refuse → ec2 내부 이슈
  • 모든 inbound는 디폴트로 막혀있음 => 열어줘야함
  • 모든 outbound는 디폴트로 열려있음 => 다른 조치를 취하려면 변경을 해야함

포트

  • 22 = ssh(secure shell)로 인스턴스에 원격 접속
  • 21 = FTP 파일전송 프로토콜 => 파일 다운로드
  • 80 = http 웹 접속 => 현대에 와서는 https로 사용, http로 접속하면 보안 문제 알림 뜨는 경우 많음
  • 443 = https 안전한 http 접속, 현재의 스탠다드

3-5. SSH 연결

인스턴스 커넥트에서 접근하는 것이 아닌 터미널에서 접근하면 됨

3-6. EBS

EBS (Elastic Block Store) : Amazon EC2 인스턴스에 연결할 수 있는 블록 수준 스토리지 볼륨

EBS 볼륨은 네트워크를 통해 Amazon EC2 인스턴스에 연결되므로 데이터 지속성, 스냅샷 백업 및 다른 인스턴스에서 쉽게 사용할 수 있음
EBS 볼륨은 데이터의 지속성을 보장하기 위해 AWS 내에서 복제 및 백업되므로 안정적이고 내결함성이 높은 스토리지 옵션
(시기별 백업 용도로 사용하기위해 EBS Snapshot을 만듦)

EBS 특징

  • 특정 AZ에 한정됩니다.
  • 인스턴스의 usb 메모리라고 생각할 수 있습니다.
  • 하나의 인스턴스에서 떼어서 다른 인스턴스에 꽂을 수 있습니다.
  • 하나의 EBS는 하나의 인스턴스에만 연결될 수 있지만 하나의 인스턴스에는 여러개의 EBS가 연결될 수 있습니다.

+) Elastic Bean Sotck도 EBS라 불리므로 상황에 맞게 의미를 잘 생각해야함

3-7. EBS snapshot

EBS(Elastic Block Store) 스냅샷(Snapshot) : EBS 볼륨의 데이터를 백업하는 데 사용되는 Amazon Web Services(AWS)의 기능

스냅샷은 EBS 볼륨의 데이터를 인스턴스 내에서 복제하고, 이를 S3에 저장
스냅샷은 EBS 볼륨의 모든 데이터를 포함하므로, 데이터를 백업하고 나중에 이전 상태로 복원

EBS 스냅샷 용도

  • 데이터 (시기별) 백업 및 복원
  • 볼륨 확장
  • 데이터 마이그레이션

3-8. AMI

AMI(Amazon Machine Image)

AMI 특징

  • EC2 인스턴스를 생성할 때 사용되며 운영 체제와 애플리케이션, 라이브러리 등이 포함되어 있음 => 특정한 인스턴스를 만들 때 사용
  • 이러한 이미지를 사용하면 개발자는 아예 처음부터 새롭게 구성해야하는 것이 아닌 이미 구성된 환경을 더 쉽게 설정할 수 있음
  • AMI는 Amazon에서 제공하는 것뿐만 아니라 개발자가 직접 생성할 수도 있음
  • 개발자는 자신이 구성한 인스턴스를 이미지로 만들어서 사용할 수 있으며, 이를 다른 사람과 공유할 수도 있음

EBS와 AMI의 차이
Amazon Elastic Block Store (EBS)와 Amazon Machine Image (AMI)는 Amazon Web Services (AWS)에서 사용되는 서비스

  • AMI : AMI는 EC2를 시작하기 위해서 사용하는 설치 CD와 같은 처음 시작할 때 사용되는 이미지
  • EBS : EBS는 사용하고 있는 EC2의 데이터를 백업하기 위한 스토리지 볼륨

0개의 댓글