수업 74일차

galoo·2023년 10월 20일
0

HelloVision Dx Data School

목록 보기
66/72

✔ AWS

개요

  • Cloud 컴퓨팅 서비스의 하나
  • 컴퓨팅, 스토리지, 데이터베이스, 분석, 네트워킹, 모바일, 개발자 도구, 관리 도구, IoT, 보안 등 다양한 서비스가 준비되어 있어서, 이를 조합해서 거의 모든 애플리케이션과 인프라를 구축하는 것이 가능한 서비스
  • IaaS, PaaS, SaaS 서비스를 모두 제공
  • 여러 서비스를 조합하는 것이 다른 클라우드에 비해서 쉬운 편
  • 최근에는 사내망과 연결하는 경우가 많음
  • 종량제
    - 사용하는 만큼 지불함
  • 사용이 쉬움
    - 기술을 잘 모르는 사람도 운영할 수 있도록 다양한 방법을 제공
    - 웹 브라우저 접속을 허용하기에, 인터넷이 가능한 곳이면 어디에서든지 조작 가능
  • 한국어를 지원하고 원화 결제 가능
  • 보안 기준을 준수
  • 글로벌 확장이 쉬움
    - 현재까지 등장한 모든 클라우드 중 region(지역)과 가용 영역(시설)이 가장 많음

대표적 서비스

  • EC2(Elastic Computer Cloud)
    - 컴퓨팅 용량을 제공하는 서비스 (IaaS)
    - 서버, OS, SW등을 세트로 사용 가능
    - 여러 사양이 준비되어 있고, 자유롭게 소프트웨어를 설치
    - 성능은 가변적이며, 일시 정지 중에는 언제든 성능을 높이거나 낮출 수 있음
  • S3(Simple Storage Service)
    - Object Storage Service
    - 데이터베이스 처럼 Key-Value 형태로 저장하기 때문에 (File Storage Service가 아닌 Object로 불림)
    - 파일 저장용으로 사용하지만, 정적인 웹 서비스를 배포하는데도 이용이 가능함
    - 파일 크기는 최대 5TB까지 가능하고, 무한 확장 가능
  • VPN
    - AWS 계정 전용의 가상 네트워크
    - 네트워크 및 서브넷의 범위나 라우팅 테이블 및 네트워크 게이트웨이 등을 설정하고, 가상 네트워크 환경을 구성합니다.
  • RDS
    - 관계형 데이터베이스 서비스
    - Aurora, Postgre SQL, MySQL, Maria DB, Oracle, MSSQLServer 서비스를 제공
  • Route 53
    - DNS 기능을 제공
    - Domain과 IP를 연결해주는 서비스
  • Elastic IP
    - 정적 공왼 IP주소를 제공
    - EC2와 ELB(로드밸런서)와 조합해서 사용
  • Managed Blockchain
    - 블록 체인 네트워크를 생성, 관리할 수 있는 도구
    - 데이터 위변조를 확인하는 기반으로 사용
  • SageMaker
    - 머신러닝 모델을 구축하고 트레이닝하고 배포
    - Jupyter Notebook 제공
  • Cloud9
    - 웹 브라우저로 조작이 가능한 통합 개발 도구
  • GameLift
    - 게임 호스팅 서비스
  • ECR
    - 프라이빗 도커 레포지토리
  • ECS - 도커 지원
    - 컨테이너 관리 서비스
    - 클러스터에서 컨테이너를 실행하고 중지하고 관리할 수 있음
  • EKS - 쿠버네티스 지원
    - 관리형 쿠버네티스 서비스

목적별 서비스

서버

  • EC2
  • ECS
  • LightSail
    - 가상 서버와 네트워크 세트의 시작과 관리
  • Batch
    - 배치 작업
  • VPC
    - 네트워크 환경
  • APIGateway
    - 웹 API 구축 서비스
  • CloudFront
    - 콘텐츠 캐시 서비스(CDN, Content Delivery Network)
    - 정적 웹 서비스를 배포할 때 이용함
  • Route53
  • Direct Connect
    - AWS 네트워크에 전용선으로 접속
  • Transit Gateway
    - VPC 간에 연결
  • Elastic Load Balancer
    - qngk qnstks wkdcl
  • Simple Email Service
  • GameLift
  • Amplify
    - 모바일 애플리케이션과 웹 애플리케이션의 구축과 배포

미디어 관련 서비스

  • Elastic Transcoder
    - 미디어 변환 서비스
  • Elemetal MediaLive
    - 라이브 비디오 콘텐츠 변환
  • Elemental MediaPackage
    - 미디어 배포

스토리지

  • S3
  • Transfer for SFTP
    - 파일 전송 서비스
  • EBS
    - EC2전용 스토리지
  • S3 Glacier
    - 장기 보존 서비스
  • Backup

DB

  • RDS
  • Aurora
  • DynamoDB
    - NoSQL, Amazon이 권장하는 DB
  • Document DB
    - MongoDB(둘이 조금 다르지만, 호환이 된다)
  • ElastiCache
    - In Memory DB

데이터 집계, 분석

  • Athena
    - S3에 보존한 데이터의 집계 서비스
  • Redshift
    - 대용량 데이터의 집계 서비스
  • Kinesis
    - 실시간 비디오 및 데이터 스트리밍 분석
  • Elasticsearch
    - 로그 및 모니터링, 보안 등의 분석 서비스

애플리케이션 연계

  • Step Function
    - 순차적으로 프로그램을 실행하는 기능
  • Simple Queue Service(SQS)
    - 애플리케이션 사이를 연동하는 대기열 서비스
  • Simple Notification Service(SNS)
    - 애플리케이션 간에 알림 메시지를 송신하는 서비스

대분분의 기업 애플리케이션에서 구현해야 하는 기능

  • redis나 kafka를 이용해서 구현

머신러닝

  • SageMaker
  • Lex
    - 음성 및 텍스트 챗봇
  • Polly
    - 텍스트를 음성으로 변환
  • Textract
    - 문서에서 텍스트나 데이터를 추출
  • Translate
    - 언어 번역
  • Transcribe
    - 음성 인식

클라이언트 서비스

  • WorkSpaces
    - 가상 데스크톱 환경
  • AppStream 2.0
    - 데스크톱 애플리케이션을 웹 브라우저로 스트리밍

DevOps

  • Cloud9
    - IDE
  • CodeBuild
    - 빌드 및 테스트 도구
  • CodeCommit
    - Private Git Repository 관리 도구
  • CodeDeploy
    - 배포 도구
  • CodePipeline
    - 개발한 애플리케이션을 빌드에서 배포까지 자동화해주는 도구
  • CodeStar
    - 빌드에서 배포까지 세트로 제공하는 도구
  • CLI
    - AWS 조작 명령줄 도구

비용

  • 서비스 별로 요금 체계가 다르므로 확인이 필요함
  • EC2
    - 사용량(가동한 시간 * 단가)+ EBS 요금
  • EBS
    - 용량 * 단가
  • S3
    - 보존 용량 * 전송량
  • RDS
    - 스토리지 요금 + DB 인스턴스 요금 + 백업 스토리지 요금 + 통신량
  • 종량제라서 이니셜 코스트(초기투자비용)이 들지 않는 대신, 러닝 코스트(운용 비용)이 드는 형태
    - 종량제지만, 최저 요금이 있고, 서비스 별로 요금이 발생하기도 하기 때문에 주의
  • 비용의 절감을 얘기할 때는 초기 비용과 운영 인건비의 절감과 확장과 축소가 쉽다는 부분
  • 그다지 변화가 없는 오랜 시간 동안 운영할 시스템의 경우는 클라우드가 별 다른 이득이 없음
  • AWS Billing And Cost Management에서 발생한 총액이나 서비스 별 요금 점유 비율 등을 메일로 받을 수 있고, 예산을 책정해두면, 예산을 초과하는 경우에 알림을 받을 수 있음
  • Free Tier 계정
    - 무료는 아님
    - 계정 생성하고 12개월 간 무료 서비스(월 기준)
    - SageMaker : 250 시간
    - api gateway : 백만건 호출
    - S3 : 5GB
    - RDS T2 Micro : 750 시간
    - EC2 T2 Micro : 750 시간
    - Quick Site : 1GB
  • 12개월 이후에도 무료 서비스(월 기준)
    - 클라우드 와치 : 10개의 지표 및 경보
    - SQS : 백만 호출
    - 람다(서버리스 서비스) : 백만 호출
    - 다이마노 DB : 25개의 읽고 쓰기 공간
    - SES : 62,000건

AWS 사용 방법

  • 전문가의 도움 없이 쉽게 사용할 수 있기 때문에, AWS를 많이 사용
  • 관리 콘솔과 매니지드 서비스를 이용
  • 관리콘솔
    - 웹 브라우저의 GUI로 AWS를 조작하는 것
    - 서비스 별로 고유 화면이 있어서 서비스 설정 등을 쉽게 할 수 있음
  • Managed Service
    - AWS가 관리하는 서비스
    - EC2는 Managed Service가 아니지만, S3나 RDS는 Managed Service
    - S3나 RDS는 백업이나 업데이트를 직접 할 필요가 없음
    - 스토리지 용량이 자동으로 늘어나기 때문에, 직접 관리할 필요 없음
    - 백업, 알림, 모니터링, 패치 관리, 보안, 장애에 대비한 이중화 등을 수행
    - 보안 전문가가 없는 경우, 매우 유용한 서비스

도입 사례

  • 현대 건설
    - 베스핀 글로벌을 통해 Amazon S3를 빅데이터 플랫폼과 데이터 레이크로 구축을 하고 SageMaker로 수요 예측 시스템을 만들어서 운용
  • 게임회사
    - OnPremise와 AWS를 병행 사용
  • 삼성이나 LG같은 가전 회사
    - AWS를 이용해서 애플리케이션 배포

✔ 기본 개념

Region

  • AWS의 모든 서비스가 위치하고 있는 물리적인 장소
  • 한 번 설정하면 변경이 안됨
    - 거리의 개념과 백업의 개념을 알고 있어야 한다.
    - 가까운 곳에서 서비스를 받는 것이 좋고, 백업은 먼 곳에 하는게 좋다.

Availability Zone(가용 영역)

  • 데이터 센터의 개념으로, 하나의 Region 안에 1개 또는 여러 개의 가용 영역을 가짐
  • 동일한 서비스를 제공하는 EC2 가상 서버를 만들 때, 되도록이면 하나의 Region이더라도 여러 가용 영역에 생서하는 것을 권장
  • ELB(로드 밸런서)는 같은 Region안에 여러 가용 영역에 걸쳐 트래픽을 분배해 줄 수 있으므로, 이 방식을 권장
    - 하나의 가용 영역이 작동 불능이 되더라도 서버ㅣ스를 계속할 수 있게 됩니다.(가용성)

Edge Location

  • AWS의 CDN 서비스인 Cloud Front를 위한 캐시 서버
  • CDN(Content Delivery Network)
    - 콘텐츠를 사용자가 빠르게 받을 수 있도록 전 세계 여러 곳에 위치한 캐시 서버에 복제해주는 서비스
  • CDN 캐시 서버는 인터넷 트래픽을 효과적으로 처리할 수 있는 지역에 POP(Point-of-Presense)를 구축하는데, 이 곳이 CDN 서비스와 사용자가 직접 만나는 곳이라고 해서 Edge라고 합니다.

관리 콘솔

  • 웹 브라우저에서 AWS 서비스를 관리하는 화면
  • 각 관리 콘솔마다 별도의 대시보드 제공

AWS CLI

  • AWS 서비스를 빠르게 수행하기 위한 CLI

IAM 서비스

  • IAM(AWS Identity And Access Management)
    - AWS 권한을 관리하는 서비스
    - 처음 AWS 회원 가입을 하면, 모든 작업을 할 수 있는 Root 권한이 부여된 관리자 계정이 생성됨
    - IAM은 유저나 권한에 대한 서비스
    - MFA(Multi Factor Authentication)지원
    • Factor : 사용자의 신원을 확인하는 방법
  • Factor의 종류
    - 지식 기반 : ID/PW와 같이 알고 있는 인증 정보를 이용하는 방식
    - 소유 기반 : 사용자가 소유하고 있는 것을 이용하여 인증하는 방식
    - 속성 기반 : 고유의 속성을 이용하는 방식(지문, 홍채 등)
    - AWS 계정 인증이 지원하는 MFA는 2가지 이상의 Factor를 지원

✔ Network

LAN(Local Area Network)

  • 근거리 통신 망
  • 구성하는 기술

Router

  • 네트워크 출입구가 되는 부분에 설치하는 기기
  • 일방향으로 들어온 데이터의 목적지를 확인하고, 목적지에 가까운 다른 네트워크에 데이터를 전송

Hub

  • 네트워크의 배선을 분할하는 기기

Firewall(방화벽)

  • 들어오고(인바운드) 나가는(아웃바운드) 데이터를 확인하고 통신 여부를 조정하는 장치

프록시 서버

  • 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리키는데, 서버와 클라이언트 사이에 중계기이다.

DMZ

  • 인터넷과 같이 외부 네트워크와 내부 네트워크의 중간에 설치하는 네트워크

DHCP

  • 접속되어 있는 단말기에 자동으로 IP를 분배하는 장치

subnet

  • 하나의 네트워크를 작게 분할한 네트워크

IP Address

  • 인터넷 상에서 단말기를 구별하기 위한 주소
  • IPv4와 IPv6 또는 Private IP, Public IP 또는 Static IP, Dynamic IP
  • IPv4는 32비트 주소 체계로 8비트씩 나누어서 10진수로 . 함께 표현
    - 0.0.0.0 ~ 255.255.255.255 가능
    - 클래스별로 나누어서 사용
    - 첫 비트 0 : A
    - 첫 비트 1 두번째 비트 1이면 B
    - 1,2비트가 1 3이 0이면 C
    - 지금도 이 표현법을 사용하지만, 실제로는 주소 개수 부족해서 IPv6사용
  • IPv6는 4비트씩 4개로 끊아서 ::로 구분해서 8개의 영역으로 표기함
  • Private IP는 내부 망에서 서로를 구분하기 위한 IP
    - 10으로 시작하거나, 17.16이거나, 192.168로 시작한다
  • Public IP는 모든 망에서 서로를 구분할 수 있는 유일한 IP
    - 내부 망 이외에서 접속을 하려면 Public IP가 할당되어 있어야 합니다.
  • Static IP는 변경되지 않은 IP
    - 서비스를 제공하는 경우는 일반적으로 Public IP와 Static IP 의 성격을 갖는 IP가 있어야 합니다.
  • Dynamic IP는 수시로 변경되는 IP
  • Elastic IP는 AWS에서 서비스 별로 Static IP 형태로 탄력적으로 부여하는 IP

Domain Name과 DNS

  • IP는 숫자로 되어 있고, 숫자는 사람이 기억하기 어려움
  • 숫자로 된 IP에 의미있는 이름을 부여할 수 있다.
    - 이것이 Domain이다.
  • Domain Name을 IP와 mapping 시켜주는 서비스를 DNS라고 한다.
  • Route 53 서비스가 AWS에서 DNS 역할을 수행함

VPN(Virtual Private Network)

  • 공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 외부에 들어내지 않고 통신할 목적으로 사용하는 사설 통신망

  • 최근의 대기업 업무망은 대부분 VPN으로 구성되어 있습니다.

  • 업무 때문이 아니라 차단된 사이트에 접근하기 위한 목적으로 VPN을 사용하기도 합니다.

  • Amazone에서는 VPC라는 서비스로 제공
    - 하나의 VPC로 묶으면 하나의 네트워크로 묶인 효과가 발생하게 됩니다.
    - DB서비스 생성하고 EC2와 같은 OS Service를 선택한 상태에서 EC2에서 DB에 접속하려면, 하나의 VPC로 묶던가 아니면 DB를 public에서 접속할 수 있도록 설정해야 한다.

  • VPC 기능
    - CIDR 블록
    - 서브넷을 의미하는데, 네트워크를 나눈 범위로 VPC를 생성할 때, 네트워크 범위를 CIDR로 정하고 이를 더 작은 서브넷으로 나누어 사용
    - AWS를 이용하다 보면, 기본적으로 인바운드가 막혀 있는데, 이 때 인바운드 규칙을 설정할 때 CIDR을 이용함

  • 0.0.0.0/0
    - 모든 IP를 허용
    - 맨 뒤에 0은 이 만큼은 일치하는 것만 허용한다라는 의미
    - 하나도 일치하지 않아도 되기에 모든 IP가 됩니다.

  • 0.0.0.0/1
    - 맨 앞의 첫 비트는 같아야 한다
    - 0.0.0.0 ~ 127.255.255.255 는 허용

  • Subnet Mask
    - 동일한 네트워크 크기를 계산하기 위한 값
    - IPv4/비트수 형태로 작성하는데, 비트 수 만큼이 같으면 동일한 네트워크로 간주
    - 192.168.0.0/24 비트수 만큼이 같으면 동일한 네트워크로 간주

  • 가용 영역
    - 서브넷이 구축된 물리적 장소

  • 인터넷 게이트웨이
    - 인터넷에 접속하기 위한 출입구

  • 보안 그룹
    - AWS가 제공하는 가상의 방화벽으로, 인스턴스 단위로 설정하고, 유입되는 데이터는 기본적으로 거부
    - 유입되는 데이터를 받고자 하면, 보안 그룹에 CIDR 형태로 블록을 추가해서 허용을 하는 인바운드 규칙을 만들어야 함

  • 네트워크 ACL(Access Control List)
    - AWS가 제공하는 가상의 방화벽으로 서브넷 단위로 설정

Peering

  • VPC와 VPC끼리 연결하는데 사용하는 기술
  • 처음에는 Public Access를 주로 이용

기본 VPC

  • AWS에서는 기본적으로 VPC를 제공함
  • 네트워크 범위는 172.31.0.0/16으로 제공
    - 즉, 172.31 로 시작만 하면 모두 동일한 네트워크로 간주함

IP Masquerade

  • LAN 내부의 P에는 전부 사설 IP 주소를 할당하고, 외부로 나갈 때는 사설 IP주소를 공인 IP주소로 변환해서 사용
    - 이 때 주소 변환을 담당하는 것을 IP Masquerade라고 함(NAT)

알려진 포트

  • 메일 : 25, 110, 143
  • 웹 : 80, 443
  • SSH : 22
  • FTP : 20, 21
  • DNS : 53
  • 원격 데스크탑 : 3389
  • DB
    - SQL SERVER(1433)
    - ORACLE(1521)
    - MySQL,MariaDB(3306)
    - Postgre SQL(5432)
    - MongoDB(27017)
    - Redis(6379)
    기타
    - 여러 애플리케이션이 8080
    - Spark(7077)

End Point

  • VPC 내부에서 외부로 접속하기 위한 연결점
  • 외부에서 AWS 인스턴스에 접속하기 위해서는 AWS 인스턴스의 End Point를 알아야 합니다.

✔ EC2

개요

  • 운영체제가 설치된 컴퓨터를 생성하는 IaaS

생성

  • 기본 region 확인
    - region은 설정되면 변경이 안됨
  • EC2관리 콘솔에서 인스턴스 시작을 선택
  • 이름 설정
  • AMI 선택 : 운영체제
  • 인스턴스 유형 : 하드웨어
  • 키페어
    - EC2인스턴스에 외부에서 접근할 수 있는 인증 파일을 생성
    - 한 번 다운로드 되면 다시는 다운로드 불가
    - windows는 ppk 파일을 사용하는데, puttygen을 이용하면 pem 파일을 ppk로 변환
  • 네트워크 설정
    - ssh허용은 필수로 하고 http는 선택
  • 스토리지 설정
  • windows에서 접속
    - puttygen을 이용해서 pem파일을 가져옴
    - generate를 하게 된다면 ppk파일을 만들어줌

EBS(Elastic Block Store)

  • 영구적인 블록 스토리지 볼륨
  • 기능
    - 탄력적 볼륨 - 크ㅜ기를 쉽게 변경 가능
    - 스냅샷 - 통째로 복사
    - 암호화

ELB(로드 밸런서)

  • ELB에서 발생하는 에러
    - 504에러 발생하면 ELB에서 발생하는 오류
    - 서버 레이어나 데이터베이스 레이어에 접속하려고 할 때 접속 시간 초과 오류
    - 로드 밸런서에서 최대 접속 시간 제한을 늘리거나, 애플리케이션에서 응답시간을 줄여줘야 합니다.

SanpShot

  • 어떤 시점의 서버 디스크 상태를 그대로 보존한 파일이나 디스크의 집합

Auto Scailing

  • 서버의 엑세스 상태에 따라 서버 대수를 늘리거나 줄이는 기능
  • Auto Scailing 그룹을 생성하고, 그룹에 인스턴스의 최소 대수와 최대 대수를 설정하면, 이 범위 안에서 자동으로 인스턴스 개수가 증감함
  • 설정 옵션
    - EC2인스턴스가 정지된 경우 이를 분리하고 새로 시작
    - 일정에 맞춰 스케일링 하는 방법
    - 리소스의 임계값을 설정해서 임계값을 넘을 때, 인스턴스 수를 자동적으로 증감시키는 방법
profile
밀가루 귀여워요

0개의 댓글