AWS

[AWS] 개요

0ㅑ채 2024. 4. 11. 17:35

1. AWS (Amazon Web Service)

- 시스템 운영에 관련된 다양한 서비스 제공하는 클라우드 기반 서비스

  • 컴퓨팅, 스토리지, 데이터베이스, 분석 툴, 네트워크, 모바일, 개발자 도구 등

- 서비스 조합이 쉽다.

- 요금이 종량제

  • 사용한만큼 지불
  • 특별한 경우 최소 요금이 설정되어 있다.
    일반적으로 사용자의 트래픽이 수시 변경되는 경우라면 퍼블릭 클라우드가 유리하지만
    일정한 트래픽이라면 On Premiss가 유리하다. 이런 경우는 고려할 사항 중 하나가 관리자의 인건비

- 사용이 쉽다.

- 글로벌 확장이 쉽다.

  • 현재 사용 가능한 Public Cloud 중 Region 과 AZ(가용 영역)이 가장 많음
  • 한국에는 서울 리전이 있고 4개의 가용 영역 운영 중

- 보안 기준: ISMS (한국 정보보호 관리체계) 인증 취득

 

 

 

2. 제공되는 서비스

- 165개 이상의 서비스 제공

- 목적에 따라 다양한 서비스

  • 서버 전체 및 관리에 필요한 기능을 제공
  • 분석 시스템
  • 가상 데스크톱
  • 머신 러닝 과 인공 지능, 블록체인 서비스도 제공

 

 

- 대표적 서비스

  • EC2: 컴퓨터(서버 - 24시간 서비스가 가능해야 하고 고정된 IP를 가져야 함)를 빌려주는 개념
  • S3: 파일 스토리지의 개념으로 최근에는 데이터 저장소의 역할을 하는 경우가 많음
    • 외부에서 수집된 데이터를 이 공간에 저장해두고 사용하기도 하고 정적 웹 페이지를 배포하는 용도 또는 백업용으로 사용
  • VPN: 가상 네트워크
  • Database
  • Route 53: 도메인 관련 작업
  • Elastic IP: 공인 IP 주소를 제공
  • SageMaker: 머신러닝 기능을 제공
  • QuickStart: 시각화 기능 제공
  • Managed BlockChain
  • Cloud9: 통합 개발 도구
  • GameLift: 게임 호스팅 서비스
  • ECR, ECS, EKS: 이미지 저장소, 도커 배포, 쿠버네티스 배포

 

- Free Tier 계정

  • EC2 인스턴스 1대,  RDS 1 대, S3 5GB 의 공간을 1년 동안 무료로 사용할 수 있도록 계정

- 관리 콘솔

  • Web에 접속해서 GUI로 AWS를 조작하는 화면

- Managed Service 

  • AWS가 관리하는 서비스
  • 가상 서버인 EC2는 Managed Service가 아니지만 스토리지 인 S3 와 데이터베이스 서버인 RDS는 Managed Service
  • Managed Service는 백업 및 업데이트가 자동으로 이루어지므로 사용자가 수동으로 관리할 필요가 없다.

- 보안 문제

  • 일반적으로는 On-Premiss 가 보안성이 우수하다.
  • On-Premiss는 기업에 보안에 대한 전문가 필요함.

- 도입 사례

  • 현대 건설 기계는 Amazon S3를 이용해서 빅데이터 플랫폼 과 데이터 레이크를 구축하고 
    Sage Maker를 이용해서 수요 예측 시스템을 구축해서 건설 장비에 대한 수요를 예측

 

 

 

3. 기본 개념

Region

- AWS의 모든 서비스가 위치하고 있는 물리적 장소. 그 안에 다시 여러 개의 가용 영역 (AZ - 데이터센터) 존재

- Region 별로 제공하는 서비스가 다르면 요금도 다름

- 클라이언트가 사용하는 앱을 배포하는 경우 Region을 반드시 확인

 

Edge Location

- AWS의 CDN 서비스인  CloudFront를 위한 Cache Server

- CDN(Content Delivery Network)은 콘텐츠를 사용자들이 빠르게 받아볼 수 있도록 전 세계 곳곳에 위치한 캐시 서버에 복제해주는 서비스

- CDN 서비스와 사용자가 만나는 지점을 Edge Location

 

 

 

 

 

4. IAM

- AWS에 회원 가입을 하면 모든 작업을 수행할 수 있는 루트 계정이 만들어 진 것

- 기업을 사용을 하다 보면 여러 다른 사람에게 서비스를 사용할 수 있도록 해주어야 하는 경우가 발생

- 사용자를 생성해주는 기능

 

Factor

- 사용자의 신원을 확인하는 방법

- 종류

  • 지식 기반: ID/PW 와 같이 알고있는 인증 정보를 이용하는 방식
  • 소유 기반: 사용자가 소유한 것을 이용하여 인증하는 방식 - 인증서, 휴대폰 인증
  • 속성 기반: 고유의 속성을 이용하는 것으로 지문, 홍채 인식 등

- AWS는 Multi Factor 인증 지원

 

사용자 생성

- 사용자를 생성하고 권한을 반드시 부여

- 권한 부여를 하지 않으면 아무일도 할 수 없다.

- 권한 설정 방법

  • 그룹에 권한을 부여한 후 사용자를 그룹에 포함시키는 방식
  • 기존 사용자의 권한을 복사하는 방법
  • 기존 정책을 연결하는 방법

 

 

 

 

5. Network

IP Address

- TCP/IP 라는 프로토콜을 사용하는 인터넷 망에서 컴퓨터를 구분하기 위한 숫자의 조합

- 인터넷 망에서 데이터를 송수신 할 때 Port 와 함께 사용

  • IP Address 는 컴퓨터를 구분하고 Port 컴퓨터 안에서 동작하는 Application을 구분
  • 실제 데이터의 송수신은 컴퓨터의 애플리케이션이 수행하기 때문
  • 인터넷 망에서 각 컴퓨터의 IP는 구별되어야 하고 하나의 컴퓨터에서 각각의 Application이 사용하는 Port는 구분되어야 함
  • 하나의 컴퓨터에서 여러 개의 Application을 동작할 때는 포트를 확인해봐야 함

- IPv4 와 IPv6

  • IPv4: 32비트 주소 체계로 8비트씩 나누어서 표현을 하는데 일반적으로 10진수로 변환해서 표현
    • 00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111
    • 0.0.0.0 ~ 255.255.255.255
  • IPv6: IPv4 의 주소 개수 한계로 등장한 주소 체계, 현재는 전부 IPv6를 사용하는데 IPv4로 설정하면 자동으로 변환을 수행. 128비트 주소 체계로 16비트씩 8개의 영역으로 구분을 하고 각 16비트는 16진수 4자리로 표현하고 중복되는 부분을 생략할 수 있도록 설계
    • 00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111
      .11111111.11111111.11111111.11111111.11111111.11111111.11111111.11111111.11111111.11111111.11111111.11111111
    • 0000:0000:0000:0000:0000:0000:0000:0000 ~ FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
  • Loopback(자기 자신)을 표현할 때 
    IPv4는 127.0.0.1로,  IPv6는 0:0:0:0:0:0:0:1 로 표현
    Windows7 이상에서는 로컬 호스트에서 자신의 웹 서버에게 접속하면 IPv6로 표현됨

- Private IP & Public IP

  • Public IP는 인터넷에서 외부 망에서 구별하기 위한 주소로 이 주소는 컴퓨터 마다 유일 무이해야 한다.
  • Private IP는 인터넷에서 내부 망에서 구별하기 위한 주소로 이 주소는 내부 망에서만 유일 무이하면 된다.
    • 10.0.0.0 ~ 10.255.255.255
    • 172.16.0.0 ~ 172.31.255.255
    • 192.168.0.0 ~ 192.168.255.255
    • 이 대역은 외부에서 사용할 수 없음
    • Docker에서 Network 만들 때, Kubernetes 에서 Pod를 생성할 때, 유동 IP를 사용하는 인터넷을 이용할 때 확인 가능

- 유동 IP 와 고정 IP

  • 유동 IP는 IP Address 가 계속해서 변하는 것
    • 전용선을 사용하지 않고 통신 회사의 라우터를 이용해서 인터넷을 사용하는 경우 통신 회사에서는 라우터에 몇 개의 IP만 할당하고 각 개인에게는 Port Forwarding 이라는 기술로 분배해서 사용하는 경우에 할당됩니다.
  • 고정 IP는 IP Address 가 고정되는 것
    • 전용선을 사용하는 환경에서 배정
    • 서버가 될려면 이 고정 IP를 사용해야 합니다.
  • Elastic IP(탄력적 IP)
    • AWS에서 클라우드 서버에게 배정하는 IP로 하나의 고정 IP를 부여하는 것
    • 컴퓨터를 임대해서 사용하는 EC2 서비스를 사용할 때 임대한 컴퓨터를 서버로 활용할려면 이 탄력적 IP를 부여받아서 사용해야 한다.
    • 최근에는 EC2 서비스의 인스턴스를 생성하면 Public IP가 부여된다.

 

Domain 과 DNS(Domain Name Service)

- IP Address 는 숫자로 된 주소이므로 사람이 기억하기가 어렵습니다.

- 숫자로 된 주소를 문자의 조합으로 사용할 수 있도록 만든 것 중 하나가 Domain 

  • 인터넷 망에서는 IP Address 를 이용해서 다른 컴퓨터에 요청을 할 수 있고 Domain을 이용해서 요청을 할 수 있음

- Domain을 입력했을 때 Domain을 해석해서 IP Address 로 변환해주는 서비스가 DNS

- AWS에서 DNS 서비스가 Route53

- 도메인은 이름이기 때문에 호스트 또는 서비스 이름이 안들어가는데 실제 사용을 할 대는 호스트 이름 과 도메인을 합쳐서 사용을 해야 하는데(https://www.naver.com) 이것을 FQDN(Fully Qualified Domain Name) 

  • 맨 앞은 프로토콜을 의미하고 도메인 앞 부분이 호스트 이름
  • 가끔 http 나 https를 붙이지 않고 //로 시작하는 경우가 있는데 이는 필요에 따라 http 나 https로 접속

 

- URI(Uniform Resouce Identifier), URN(Name), URL(Locator)

  • URI: 자원 식별자로 가장 큰 개념으로 URN 과 URL이 하위 개념으로 존재
  • URL: 네트워크 상에서 자원이 어디에 위치해 잇는지 알려주기 위한 규칙
  • URN: 자원을 구별하기 위해서 붙이는 이름

- ARN: AWS 안에서 자원을 구별하기 위해서 붙이는 이름

 

 

 

 

 

 

6. VPN(Virtual Private Network)

- Private Network: 외부에서는 접근할 수 없는 네트워크

  • 최근에는 건물 내부 뿐 아니라 다른 건물 또는 외부에서 인터넷을 이용해서 Private Network를 사용해야 하는 경우가 많은데 이 때 내부 구성원을 제외한 사람들이 접근할 수 없도록 해야 하는데 이렇게 구축한 것을 VPN 이라고 한다.

- AWS에서는 이를 VPC 라는 개념으로 제공한다.

  • 최근에는 서비스를 만들면 데이터 - 애플리케이션 - API 형태로 만들어지는데 이 때 API는 외부로 노출이 되지만 데이터 와 애플리케이션은 외부로 노출되지 않도록 하는 것을 권장
  • 하나의 서비스를 만들 때 데이터 와 애플리케이션 그리고 API는 하나의 VPC로 구성해서 내부 통신이 가능하도록 하고 API 만 외부로 노출을 시켜서 클라이언트나 다른 API 와 통신을 할 수 있도록 만드는 것을 권장

- VPN 안에는 보안 그룹이나 ACL의 개념이 있어서 특정 네트워크 또는 컴퓨터나 접속할 수 있도록 설정을 할 수 있다.

- NAT(Network Address Translation)를 이용해서 내부에서는 사설 IP를 사용하고 외부로 나갈 때 Public IP로 변환해서 나가도록 한다.

 

 

 

 

 

 

7. Network 범위와 CIDR 표기

- 하나의 컴퓨터를 구별하기 위해서는 IP Address 를 사용하는데 여러 개의 컴퓨터 특히 연속된 IP 대역을 가진 컴퓨터를 표현하기 위한 방법이 CIDR 표기법

- IP주소/공통된 주소의 개수를 비트 단위로 입력

  • 공통된 주소 부분을 포함하는 모든 컴퓨터를 하나의 대역으로 표현 가능

192.168.0.0/16

  • 앞의 16개의 비트는 고정이고 나머지는 자유롭게 사용
  • 192.168.0.0 ~ 192.168.255.255 까지를 의미

192.168.1.0/24

  • 192.168.1.0 ~ 192.168.1.255 를 의미

0.0.0.0/0

  • 고정되어야 하는 것이 하나도 없음, 모든 IP를 의미

192.168.0.1/32

  • 모든 비트가 고정되어야 합니다. 하나의 IP를 의미
  • 이 방식은 지금은 거의 사용하지 않는데 데이터베이스에 애플리케이션 서버가 하나만 연결되는 경우 이런식으로 작성해서 다른 컴퓨터는 데이터베이스에 접속을 못하도록 하는 경우가 사용

 

 

 

 

8. 알려진 포트(well-known port)

- 포트 중에서 0 ~ 1023번까지는 대부분 정해져 있다.

http: 80
https: 443
SSH(원격 접속): 22
FTP(파일 전송): 20, 21
DNS: 53
Mail: 25, 110, 143

 

- 애플리케이션이 사용하는 포트

RDP(원격 데스크톱): 3389

DB:

  • 1433(SQL Server)
  • 1521(Oracle)
  • 3306(MySQL 이나 Maria DB)
  • 5432(Postgre SQL)
  • 27017(Mongo DB)
  • 6397(Redis)
  • zookiper(2181)
  • Kafka(9092)
  • logstash(5044)
  • elastic search(9200, 9300)
  • kibana(5601)

 

 

 

 

9. End Point

- 외부에서 접속하기 위한 접속점

- 외부에서 AWS 서비스에 접속을 할 때 IP가 부여되면 IP 주소를 이용해서 접속을 하면 되지만 IP를 부여하지 않는 경우에는 End Point를 이용해서 접속을 해야 한다.

  • EC2 같은 서비스는 IP도 부여되고 End Point도 부여되므로 2가지 모두로 외부에서 접속이 가능하지만 RDS 같은 데이터베이스 서비스는 IP를 알려주지 않고 End Point만 알려주므로 End Point를 이용해서 접속을 해야 합니다.