aws整理2ec2, iam, elb, asg (한국어)
aws - 자격증
cloud computing
온디맨드로 제공
필요할 때 얻음.
종량제 요금을 이용도 가능.
Private Cloud :
- rackspace(제공업체) : 단일조직에서 사용하는 클라우드.
public Cloud
- aws
- google cloud
- ms azure
hybrid cloud
: private+public , 온프레미스도 유지하고 클라우드도 이용.
고르는 기준
- compliance 해당국가 법률
- proximity : 지연시간(reduced latency)
- abailable services : 리전에 따라 사용가능한 서비스가 다름.
- pricing
하나의 가용영역 안에 여러개의 데이터센터 있을 수도 있음.
전송 지점, 엣지 로케이션
:
IAM
—
클라우드 컴퓨팅 5가지 특징
- 완전한 온디맨드, 셀프 서비스, 리소스를 프로비저닝, 개입 x
- 광역 네트워크에 엑세스 가능.
- 멀티테넌시, 동일한 이프라와 어플리케이션도 상용가능한데 높은 보안가능.
- 빠른 탄력성과 확장성 제공. 필요할 때 자동으로 확장.
- 측정가능한 서비스.(온프레미스에서 바뀐점. )
클라우드 컴퓨팅 장점 6가지
- CAPEX랑 OPEX가 교환이 가능하다. (TCO절감가능. 하드웨어 구매x )
- 거대한 규모의 경제로부터 혜택을 얻을 수 있습니다. (많은 고객이 사용함에 따라 aws가격이 떨어진다. )
- 용량을 걱정할 필요가 없다. 사용한 만큼 확장이 가능핟.
- 민첩성이 증가한다. 바로 원하는 것을 사용가능.
- 설치할 필요가 없다. 데이터센터 관리 비용x
- 몇분 만에 세계적으로 확장될 aws 글로벌 인프라를 활용가능.
클라우드가 해결하는 문제
• 유연성: 필요에 따라 리소스 유형 변경
• 비용 효율성: 사용한 만큼 비용을 지불합니다
• 확장성: 하드웨어를 강화하거나 노드를 추가하여 더 큰 로드를 수용합니다
• 탄력성: 필요할 때 스케일아웃 및 스케일인 기능
• 고가용성 및 내결함성: 데이터 센터 전반에 걸쳐 구축
• 민첩성: 소프트웨어 애플리케이션을 신속하게 개발, 테스트 및 시작
클라우드 컴퓨팅 유형
- IaaS : 서비스형 인프라, 네트워킹, 컴퓨터, 데이터 스토리지 공간. 높은 유연성을 가짐. 기존의 온프레미스 IT에서 클라우드로 이동한 방법, 병렬방법?
- PaaS : 기본 인프라를 관리할 필요가 없다. 배포와 애플리케이션 관리에만 힘을 쏟으면 됨.
- SaaS : 서비스형 소프트웨어 서비스 제공업체가 완전히 제공하고 관리.
Regions
: cluster of data centers
IAM
권한을 그룹에 주어서 유저를 해당 그룹에 집어넣는 방식도 있음.
IAM Policies Structure
- Effect : 특정 API에 접근을 허용할지 거부할지에 대한 내용(Allow or Deny)
- Principal : 특정 정책이 적용될 사용자, 계정 역할로 구성(root)
- Action : Effect에 기반해 허용 및 거부되는 API 목록
- Resource : action의 리소스의 목록,
- Sid : 문장 ID로 문장의 식별자
- 비밀번호 정책
- MFA
= password you know + security device you own(token)
AWS에서의 MFA장치
: Virtual MFA device (Google Authenticator, Authy)
U2F Security Key
Hardware Key Fob MFA Device
Hardware Key Fob Device for AWS GovCloud
- CLI
- SDK
IAM Security Tools 보안도구
- IAM Credential Report(account-level) IAM 자격 증명 보고서
: 계정에 있는 사용자와 다양한 자격 증명의 상태를 나타냄
- IAM Access Adivisor IAM 엑세스 관리자
: 해당 서비스에 마지막으로 접근한 것을 확인가능.
역할을 만들고 부여해야한다. 가상 서버인 EC2 인스턴스를 포함해서
*중요
Shared Responsibility Model for IAM 공동책임
예산설정
budget
EC2
bootstraping
: 머신이 작동할 때 명령을 시작하는 것.
: 보통 스크립트는 처음 시작할 때 한 번만 실행되고 다시 실행되지 않습니다.
: 부팅 작업을 자동화 한다는 의미
: 업데이트, 소프트웨어 설치 등등
https 로 들어갔는데, 아직 안전한 http의 설정을 하지않았기에 오류가 뜰 수 있음.
ㅋ
인스턴스 유형
c 로 시작 : Compute Optimized
R으로 시작 :Memory(RAM) Optimized
I,G, H1:Storage Optimized
https://instances.vantage.sh 에서 인스턴스 비교가 가능.
Security Groups
방화벽
네트워크 보완의 핵심이 된다.
: 트래픽을 제어
입장 허용 규칙 지정. IP주소를 참조해 규칙을 만들 수 있다.
보안 그룹끼리 서로 참조할 수도 있다.
예) EC2 인스턴스에 액세스 하려고 할 때 이용
Deeper Dive
인증된 IP주소를 범위를 확인.
- 포트에 접근하고
2.IP4 IP6인지 확인
외부에서 인스턴스로 들어오는 인스턴스와 나가는 아웃바운드 네트워크도 통제한다.
port range : 트래픽이 인스턴스에서 통과하는 위치
보완그룹에서 알아야 하는 것.
세큐리티 그룹에서 알아야 하는 것
- 여러 인스턴스에 연결할 수 있으며(1:1관계가 아님)
- 리전과 vpc 결합으로 통제
- 보안그룹은 외부에있음, 그러므로 트래픽이 차단되면 ec2인스턴스는 확인 할 수 없음.
- ssh 엑세스를 위해 하나의 별도 보안 그룹을 유지하는 것이 좋습니다.
- 타임아웃으로 애플리케이션에 접근할 수 없으면 보안그룹 문제(+긴로딩)
- 연결 거부 오류가 발생하면 보안그룹은 실행 되었지만 트래픽or어플리케이션 문제
시험문제관련 포트
SSH : 시큐어셀
22 = SSH
22 = SSH (Secure Shell) - log into a Linux instance
21 = FTP (File Transfer Protocol) – upload files into a file share•
22 = SFTP (Secure File Transfer Protocol) – upload files using SSH• 80 =
HTTP – access unsecured websites• 443 = HTTPS – access secured websites• 3389 = RDP (Remote Desktop Protocol) – log into a Windows instance
SSH로 EC2 Instance에 연결하기.
ssh -i 암호키이름.pem 유저이름@ip주소
*중요 처음 다운받을 때에는 0644라는 권한이 생기는데 권한이 너무 열려 있어서 개인키가 유출될 수 있다.
ec2 인스턴스 옵션
- on-demand instance
:
- reserved : 1년 이상 사용할 경우. -데이터베에스 같은 장기 워크로드에 사용. - 전환형 예약인스턴스 - 정기예약 인스턴스(정기적으로 특정요일의 특정시간에 쓸 경우.)
- spot instance : 저렴한 단기 워크로드용 인스턴스이지만 손실가능성이 있으며 신뢰성이 낮다.
: 단발성 데이터 분석인 배치로드, 이미지 프로세싱()
- dedicated Host : 물리적 서버 전체를 예약하고 인스턴스제어함.
: 규정 준수 요건(Compliance requirements) 와 서버 결합 소프트웨어(server-bound software licenses)
EBS
EC2 인스턴스에 사용할 영구 블록 스토리지 볼륨을 제공, 각 EBS 볼륨은 가용 영역 내에 자동으로 복제되어 구성요소 장애로부터 보호해주고 고가용성 및 내구성을 제공한다.
AMAZON EBS 볼륨은 워크로드 실행에 필요한 지연시간이 짧고 일관된 성능을 제공합니다.
AMAZON EBS를 사용하면 단 몇 분 내에 사용량을 많게 또는 적게 확장할 수 있으며, 프로비저닝한 부분에 대해서만 저렴한 비용을 지불합니다.
EBS Volume?
인스턴스가 실행 중인 동안 연결가능한 네트워크 드라이브
Elastic Block Store Volume <---- usb 스틱처럼 한 컴퓨터에서 꺼내 달느 컴퓨터에 꼽는 형식
인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브
CCP level : 하나의 EBS는 하나의 EC2인스턴스에만 마운트 가능.
<--> 어소시에이트 레벨 : 일부 EBS 다중 연결
특정 가용영역에 속한다. (고정)
네트워크 드라이브 이므로 EC2 인스턴스에서 분리될 수도 있고 매우 빠르게 다른 인스턴스로 연결도 가능.
인스턴스 종료시 삭제를 할건지의 유무도 설정가능.
인스턴스와 ebs 볼륨이 서로 통신하기 위해서는 네트워크 필요
프로비전 용량에 따라 비용청구
인스턴스 하나에 두 개의 EBS 볼륨이 연결되는 건 문제없이 가능.
EBS Snapshots
EBS삭제 하더라도 스냅샷을 찍은 해당 시점에 대한 백업으로 복원할 수 있는 것.
글로벌 인프라 사용가능. 스냅샷을 이용해 다른 가용역역으로 ebs이동도 가능.
EBS Snapshots
: 아카이브 티어로 싸다. 24~72보관가능
Recycle Bin for EBS Snapshots
삭제한 스냅샷을 복구가능.
기간은 하루부터 일년
AMI = Amazon Machine Image
사용자 지정(커스텀) EC2인스턴스를 뜻한다.
여러 분의 EC2인스턴스에 설치하고자 하는 모든 소프트웨어 부팅이나 구성에 시간 단축을 위한 기능
대부분의 EC2거 AMI를 통해서 사전에 패키징
원하는 리전을 지정함으로써 AWS글로벌 인프라를 활용할 수 있음.
EC2 Image Builder
가상 머신이나 컨테이너 이미지를 자동으로 생성하는 데 사용
AMI를 자동으로 생성하고 유지하며 검증 및 테스트할 수 있어야한다.
AMI를 통해서 여러 리전으로 배포할 수 있어서 어플리케이션과 워크플로우를 전 세계를 배포할 수 있습니다.
무료 서비스
순서 : EC2 Image Builder에서 Builder EC2 Instance을 생성해서
-> EC2인스턴스에 필요한 어플리케이션 실행(코드실행)
-> AMI 생성
-> Test EC2 Instance 를 통해 AMI 테스트 (AMI가 작동하는지, 안전한지)
-> AMI 배포
AMI Storage비용만 냄
인스턴스 스토어(Instance Store)
EC2 인스턴스 중 하나로 해당하는 물리적 서버에 연결된 하드웨어 드라이브를 뜻함.
EC2 인스턴스는 가상머신 하드웨어 서버에 연결되어 있음. 물리적 디스크 공간을 가짐.
I/O 성능 향상을 위해 활용할 수 있다.(훌륭한 처리능력을 가지고 있음.)
종료시 해당 스토리지를 손실함.(그래서 임시 스토리지라고도 불림.)
더 나은 출입의 성능이 향상되지만 멈출 경우 해당 스토리지가 손실된다는 단점이 있다.
그러므로 버퍼 캐시 등을 보관하기에는 좋지만 장기적인 정보 저장에는 좋지 않다.(장기적일 경우에는 EBS가 적합)
필요에 따라 백업과 복제가 필요.
EFS
Elastic File System. 관리형 네트워크 파일 시스템
이 시스템을 한번에 수백개의 ec2인스턴스에 마운트 할 수 있다.
(그전에는 하나당 하나씩만가능).
네트워크 파일 시스템. 파일 공유 시스템. 즉 공유 NFS가 구축(Linux EC2에서만 가능.)
EFS-IA : 스토리지 클래스가 있음. 비용최적화 과정이 있음. standard보다 92%더 쌈. 자동으로 스탠다드에서 옮겨옴. 60일이 지나면.
중요
공동책임
aws 쪽
고객 쪽
FSx(시험나옴)
FSx for Windows File Server
: 2개의 가용영역 사용 신뢰성과 확장성이 높음. SMB protocol & WindowsNTFS 지원
온프레미스 인프라에서 직접 연결가능. 컴퓨팅 인스턴스에 직접연결. 벡엔드에서 이 데이터를 S3에 저장.
Amazon FSx for Lustre
완전 관리형이며 고성능이며 확장 가능한 파일 스토리지.HPC용 스토리지. 머신러닝, 재무 모델링, 초당 수백 수백기가의 데이터 교환, 지연 시간은 밀리초 미만으로함.
(linux+cluster)
EC2 Instance Storage -Summary
EBS 볼륨:
- 한 번에 하나의 EC2 인스턴스에 연결된 네트워크 드라이브
- 가용성 영역에 매핑됨
- AZ를 통해 EBS 볼륨을 백업/전송하는 데 EBS 스냅샷을 사용할 수 있습니다.
AMI: 맞춤형으로 바로 사용할 수 있는 EC2 인스턴스 생성
EC2 Image Builder: AMI를 자동으로 빌드, 테스트 및 배포
- EC2 인스턴스 저장소:
EC2 인스턴스에 연결된 고성능 하드웨어 디스크 • 인스턴스가 중지/종료되면 손실됨
- EFS: 네트워크 파일 시스템, 한 지역의 100대 인스턴스에 연결할 수 있음
amazon클라우드에서 파일 스토리지를 쉽게 설정, 확장 및 비용 최적화할 수 있는 완성 관리형 서비스입니다.
- • EFS-IA: 자주 액세스하지 않는 파일을 위한 비용 최적화 스토리지 클래스
- Windows용 FSx: Windows 서버용 네트워크 파일 시스템
- Lustre용 FSx: 고성능 컴퓨팅 리눅스 파일 시스템
ELB(Elastic Load Balancing & Auto scaling Groups Section)
scalability : 적응하여 더 큰 부하를 처리할 수 있다.
vertical Scalability
: 인스턴스의 크기 확장. 데이터베이스 확장. 하드웨어의 문제 때문에 확장제한이 있음.
ex) t2.micro -> t2.large
Horizontal Scalability
: 분산 시스템이어야 한다.수평확장.
ex) 인스턴스 갯수 증가.
가용성이 높다 : 사건이 발생해도 서비스 및 시스템을 이어갈 수 있다. 여러 가용 영역(AZ)에서 실행하는 것.
수직 확장성 : 인스턴스의 크기를 늘리는 것. 램, cpu등의 성능을 높이는 것.(scale up/down)
수평 확장성 : 인스턴스의 개수를 늘리는 것. (scale out/in) → auto Scaling, ELB
확장성 대 탄력성(대 민첩성)
- 확장성(Scalability): 하드웨어를 강화하거나(스케일업), 노드를 추가하여(스케일아웃) 더 큰 부하를 수용할 수 있는 기능
- 탄력성(Elasticity): 일단 시스템이 확장되면, 탄력성은 시스템이 부하에 따라 확장할 수 있도록 "자동 확장"이 있다는 것을 의미합니다.이는 "클라우드 환경 친화적"입니다. 사용량별 지불, 수요 일치, 비용 최적화
- 민첩성(Agility): (확장성 - 산만함과는 무관) 새로운 IT 리소스를 클릭 한 번으로 간편하게 사용할 수 있으므로 개발자가 리소스를 사용할 수 있는 시간이 몇 주에서 몇 분으로 단축됩니다.
LB
쓰는 이유
: 인터넷 트래픽을 다운스트림에 있는 여러 서버로 전달합니다. 여러 EC2인스턴스를 이용.
트래픽을 여러 인스턴스 중 하나로 보내고 응답받고, 다른 트래픽은 또 다른 인스턴스로 보내 응답받음. 로드분산.
백엔드 확산가능.
정기적으로 모니터링 하면서 상태가 양호한 애한테만 보냄.
SSL 제공
ELB
쓰는 이유 : AWS가 작동을 보증해줌. 업그레이드, 유지보수, 높은 가용성을 관리해줌
우리가 해야할 일을 ELB가 대신해줌.
- AWS에서 제공하는 3가지 종류의 로드 밸런서:
- 애플리케이션 로드 밸런서(HTTP/HTTPS만 해당) – 계층 7
- 네트워크 로드 밸런서(초고성능, TCP 허용) – 계층 4
- 기존 로드 밸런서(천천히 폐기) – 계층 4 및 7
ASG
• 실생활에서 웹사이트와 응용프로그램의 로드가 변경될 수 있습니다.
• 클라우드에서 서버를 매우 빠르게 생성하고 제거할 수 있습니다.
• ASG(자동 스케일링 그룹)의 목표는 다음과 같습니다.
• 증가된 로드에 맞게 스케일아웃(EC2 인스턴스 추가)
• 감소된 로드에 맞게 축소(EC2 인스턴스 제거)
• 최소 및 최대 수의 시스템이 실행 중인지 확인 • 로드 밸런서에 새 인스턴스 자동 등록
• 비정상적인 인스턴스 바꾸기
• 비용 절감: 최적의 용량에서만 실행(클라우드 원칙)
Auto Scaling 전략에는 수동 스케일링, 동적 스케일링(간단/단계별 스케일링, Target Tracking 스케일링, 스케줄 스케일링) 및 예측적 스케일링이 있습니다.
서버 자원 프로비저닝
서버의 CPU, Memory 등의 자원을 할당 또는 적절하게 배치하여 운영이 가능하도록 준비하는걸 서버 자원 프로비저닝이라고 합니다.
Auto Scaling Group
Dynamic Scaling : 요구량에 따라서 달라지도록 반응함.
1. Simple/Step Scaling
- CloudWatch에 설정해둔 것에 따라 Unit 2개 추가
- CloudWatch에 설정 해둔 것에 따라 하나를 제거
2. Target Tracking Scaling(추적) : 예를 들어 ASG CPU를 40%로 유지
3. Scheduled Scaling (예약)
- 사용자 패턴을 기반으로 예측하는 것.
- ex) 축구 경기 있는 날의 특정 시간에 용량 늘리기
4. Predictive Scaling
- 머신 러닝을 사용해서 트래픽을 미리 예측
- 과거 패턴을 이용해서 트래픽 예측
요약:
High Availability(고가용성) : 여러 AZ에서 전반적으로 가지는 것을 의미
vs
Scalability(탄력성) : 수직-인스턴스 크기, 수평 : 인스턴스 크기
vs
Elasticity(민첩성) : 수용에 따라 스케일 업, 스케일 다운.
vs
Agility in the Cloud : 리소르를 매우 빠르게 생성하고 삭제
ELB : 로드 밸런서, 백엔드인 EC2에 트래픽 분산, 여러 AZ설정도 가능 -> 고가용성 가능.
ASG : 탄력성과 관련, 수평 스케일, 여러 AZ에서 가능, 실제 수요에 따라 EC2 스케일링 가능, 비용 최적화, ELB와 통합.
Load Balancer를 쓰는 이유
1. 로드를 여러 다운스트림 인스턴스에 분산가능
2. 어플리케이션에 대한 단일 엑세스 지점(DNS) 를 노출시킬 수 있다.
3. 다운스트림 인스턴스의 실패를 원활하게 처리
4. 주기적으로 인스턴스를 체크(트래픽을 ec2인스턴스의 실패한 곳에 보내지 않음.)
ELB를 쓰는 이유
1. 서버를 프로비저닝할 필요가 없음.
2. 높은 가용성과 유지성, 업그레이를 관리해줌.