goorm 25일차

박경현·2022년 9월 13일
0

컴퓨팅 서비스 - EC2

priavate subnet 상의 EC2 instance 관리 방법

프라이빗 서브넷에 위치한 AWS 리소스(EC2, RDS등)는 직접적인 인터넷 접속이 불가능!

인터넷 게이트웨이가 연결되지 않고 로컬 네트워크만 있다!

priavate subnet 안에 EC2같은 리소스가 인터넷에 접속하여 사용하기 위해서는 NAT Gateway를 사용해야 한다

NAT Gateway가 퍼블릭 라우팅테이블에 연결 후 외부랑 연결이 된다!

NAT Gateway 서비스

인터넷과 연결을 수행하는 서비스

인터넷과 단방향 통신만 수행 -> 이게 핵심!!

인터넷 게이트웨이는 양방향이지만 NAT Gateway는 단방향이다!!

통상 private subnet에 위치한 AWS리소스(EC2, RDS등)가 인터넷에 연결하여 사용할때 활용하는 서비스
일반 클라가 프라이빗 서브넷에 있는 AWS 리소스접근은 불가능 - 단방향 통신!

NAT Gateway 서비스는 퍼블릭 서브넷에 위치해야한다!
NAT Gateway 서비스는 EIP를 사용!!

Bastion server를 이용하여 프라이빗 서브넷에 있는 AWS 리소스에 접근 및 제어

Bastion server

  • 프라이빗 서브넷에 위치한 EC2 instance를 제어하는 목적으로 사용하는 EC2 인스턴스
    역할에 따라 부여된 명칭임 -> AWS에 따로 이름이 있지는 않음

EX) 만들때 SSH 접근 되게 보안을 사용해야 Bastion 서버 사용가능

서브넷 - 프라이빗 서브넷에 위치
퍼블릭 IP 할당 - 당연히 비활성화 => Putty 나 Xshell로 접근 불가능!

NAT 게이트웨이 생성

	1. EIP 먼저 만들기 - 태그 명을 NATGateway-EIP로 해줬음
	2. NAT 게이트웨이 인스턴스 생성
		VPC- NAT게이트웨이 메뉴로 들어가기
		생성 -> 태그 해주기 ->
		가장 중요한 public subnet에 위치시키기!!
		연결 유형 -> 단방향 통신이 목적이지만 인터넷 연결을 위해서 퍼블릭으로 설정
		탄력적 IP 할당하기
	
		
	3. 프라이빗 서브넷의 라우팅 테이블에 NAT 게이트웨이에 대한 라우팅 추가
		VPC - 라우팅테이블 메뉴 들어가기 -> 라우팅 들어가서 편집 누르기
		-> NAT 게이트웨이 추가
		-> 모든 대상(0.0.0.0/0) 대상 - NAT게이트웨이 클릭하면 끝

	4. 프라이빗 서브넷에 위치한 EC2 instance는 NAT Gateway는 인터넷 접속이 가능한 상태가 되었으나
		외부에서 인터넷을 통해 private subnet에 위치한 EC2 인스턴스에 직접 접속은 불가능하다!!
		(단방향 통신이어서!!)

	5. 관리자가 public 서버에 위치한 bastion server를 통해 private 서브넷에 위치한 EC2 instance를 제어한다 					bastion 서버에 프라이빗 서브넷의 EC2 instance에 접속하기 위해서는 keypair 파일이
		bastion 서버에 위치해야한다.!
		
		bastion 서버에 프라이빗 서브넷의 keypair 저장방법
			- VSC 원격 접속을 통하여 키페어 파일 업로드 
			일단 bastion server라는 인스턴스 만듬
			보안그룹을 -> 내 IP로 설정
			
	
			chmod 400 ~~.pem
			들어가지면 exit 하고나오기
			ssh - i gurum-aicore0942-20220906.pem ec2-user@10.0.5.220

네트워크 보안 -> 가장 핵심

네트워크 통신

    패킷단위로 통신 -> 송신자 수신자 IP 와 PORT가 포함되어있다

AWS 네트워크 보안 -> 리눅스가 아닌 AWS 자체 보안 설정임!

인스턴스 보안

보안그룹 - EC2 인스턴스 단위로 설정

인바운드 규칙과 아웃풋 규칙으로 구성
허용 규칙만 생성가능!
기본적으로 모든 보안 그룹의 아웃풋 바운드 규칙은 모든 트래픽을 허용
인풋 규칙은 모든 트래픽을 불허

각 EC2 인스턴스는 서로 다른 보안 그룹 할당 가능
설정된 EC2 인스턴스는 연결되어 있는 보안 그룹의 모든 룰을 적용 받는다

모든 보안 그룹은 statefull(상태 유지)을 갖는다

inbound 규칙을 통과하는 패킷은 outbound 규칙을 적용받지 않는다
상태 저장 후 한번 outbound를 통과하는 패킷은 inbound 규칙을 적용받지 않는다!!			

네트워크 보안

네트워크 ACL()

인바운드 규칙과 아웃바운드 규칙으로 나뉨
NACL은 여러 서브넷에 적용 가능
하지만 서브넷은 한 개의 NACL만 연결 가능

허용 규칙뿐만 아니라 거부 규칙 생성 가능

규칙번호는 숫자가 매겨져 가장 작은 숫자값을 지니는 규칙을 우선적으로 적용
-> (100과 101이 같은 유형과 프로토콜에대한 각각의 허용과 거부라면 더 낮은 번호꺼만 받음 )				

NACL의 인바운드, 아웃바운드 규칙은 최대 20개까지 지정가능

stateless(상태 저장 X)이므로
한 번 inbound를 통과하는 패킷은 outbound 규칙을 적용 받는다	
outbound로 통과한 패킷도 inbound 규칙 적용 받음
		
	VPC메뉴에 ACL 있음
		네트워크 ACL 선택 
			-> 이 안에 서브넷 들아가서 연결 편집하기 누르기
			-> 인바운드 규칙과 아웃바운드 규칙설정하기
			-> 인바운드 들어가서 규칙번호 , 유형 , 프로토콜, 포트범위, 소스 지정하면 끝 -> 허용 거부까지!!
			
규칙번호는 중복 안됨!

스토리지 서비스 - EBS

데이터나 객체를 저장하기 위한 목적으로 사용하는 AWS 서비스

블록 형태 데이터 저장 스토리지 서비스 - EBS(Elastic Block Storage)-
		> 접근가능대샅은 같은 가용영역만!
		일반적인 데이터 저장 - 외장 하드 느낌
		외장 HDD/SSD 성격
		EC2 instance와 연결하여 사용

파일 형태 데이터 저장 스토리지 서비스 - EFS(Elastic File Storage)
		>네트워크를 이용한 파일 저장 및 공유 -> 특징!, 가용영역 큰 상관 X, 네트워크 연결만 되어있으면 됨
		NAS(하드디스크를 네트워크에 연결한거)성격, 
		데이터 공유, EC2 instance에서 사용 가능 - NFS 

객체 형태 데이터 저장 스토리지 서비스 - S3(Simple Storage Service)
		객체 단위로 저장
		serverless 방식 - 별도의 EC2 instance와 연결 안해도 사용가능!

EBS

EC2 인스턴스의 저장공간으로 사용하는 EBS

EC2 루트 불륨 의미 -> 우리가 instance 생성할 때 자동으로 EBS하나 생성함

EC2 연동하여 사용 -> 외장하드의 파티션처럼 mount 해주어야함

EC2 인스턴스 삭제시 같이 삭제 되므로 중요 정보 따로 보관하기

어플리케이션의 기본 스토리지로 사용하거나 시스템 스토리지로 사용하는데 적합
필요시 EC2 인스턴스에 마운트 하여 사용
같은 가용영역만 EBS를 공유할 수 있다.
중간에 크기 바꾸기 불가능!

사용목적
	데이터 보관 및 스냅샷 저장

EBS 공유 실습
	2개의 인스턴스 간에 EBS불륨을 이용한 데이터 공유 ->EC2 instance 한개씩 차례대로 설정해주기

	EC2메뉴 -> 불륨 생성 -> 크기 결정 -> 가용영역 선택 -> 태그명 지정
	
	연결 방법 -> EC2 instance와 EBS 불륨 연결
		EC2메뉴 -> 불륨 -> 작업메뉴 -> 불륨 연결
		인스턴스 선택하고 디바이스 이름확인!! => O/S에서 마운트할때 연결할 Device 이름이다!!

	연결된 불륨에 대하여 EC2 instance의 O/S 에서 mount 작업
		xSHELL 들어가서 lsblk 적기!
		lsblk -> 연결된 디바이스 정보 확인
		df -h => 디바이스 연결 상태확인
		sudo mkfs -t ext4 /dev/xvdf - 연결할 EBS 불륨에 대한 파일 시스템 생성
		sudo mount /dev/xvdf /mnt -> /dev/xvdf에 연결된 EBS불륨과 /mnt 디렉토리에 마운트
		sudo umount /mnt

	기존 EC2 연결 해제하고 다시 다른 인스턴스랑 연결해서 데이터 공유시키는거 !!
		다른 인스턴스와 연결 후 xSHELL에서 열기
		이때는 sudo mount /dev/xvdf /mnt 이것만 적으면 됨

네트워크 서비스 - ELB

scale out
	- 클라이언트 수에 따른 서버 분산 처리
	- EC2 instance를 복제하여 여러 개의 EC2 인스턴스를 생성하는 동작
	- 클라이언트 동시 접속 증가에 따라 Server 처리 능력을 높이기 위하여 같은 동작을 하는
	 Server를 여러개를 생성하여 동시접속 대한 처리 효율 높이는 방법

AWS Scale out 을 위한 서비스
	ELB(Elastic Load Balancing) 
		- 동시 클라 접속을 여러 서버에서 분산 처리 

	Auto Scailing
		- 서버 처리량에 따라 서버를 자동 증설 및 감소 시키는 서비스
		
ELB
	트래픽 분산 , 자동확장(Auto scailing), EC2인스턴스 상태를 자동 감지하여 오류 있는 시스템 제외
	사용자 세션을 톡정 instance에 고정가능
	SSL 암호화 지원
	SSL의 경유지로 ELB를 사용하는 경우에 SSL 처리에 따른 부하를 ELB가 수용
	IPV4,6를 지원
	Amazon CloudWatch를 통한 모니터링
	사용한 시간과 통과한 트래픽에 따른 종량제 과금
	
OSI 7 계층 네트워크 프로토콜에서 L4(transport) 계층과 L7(어플리케이션) 계층에 대한 서버 부하 분산 기능 제공

	L4 계층
		- 네트워크 로드 밸런서
	L7 계층
		- HTTP, HTTPS 등에 대한 처리 계층 - Application Load Balancer

Auto Scailing
	다중 서버를 운영할때 서버의 일정한 부하 임계치를 넘거나 줄었을 경우 -> 자동으로 서버 증가 및 감소
	
(EIP가 하나는 연결하면 과금이 안되는데 그 다음꺼부터는 연결이 되도 과금이 됨)
profile
SW로 문제를 해결하려는 열정만 있는 대학생

0개의 댓글