본문 바로가기
클라우드 보안

클라우드 보안 [두 번째 정리]

by 할 수 있다 ! 2024. 3. 27.

안녕하세요 ! 

 

클라우드 보안 두 번째 정리를 시작하도록 하겠습니다. 

 

 

 

클라우드 보안 

 

 

* AMI 

 

AMI는 "Amazon Machine Image"의 약자로 아마존 웹 서비스에 사용되는 가상 머신 이미지를 의미합니다. 이 이미지는 EC2 인스턴스를 생성하기 위한 템플릿으로 사용됩니다. AMI 는 운영체제, 소프트웨어 구성, 데이터 등을 포함할 수 있습니다. 

 

1. 사용자 정의 가능 : 사용자는 자신의 요구에 맞게 AMI 를 생성하고 사용자 지정할 수 있습니다. 예를 들어, 필요한 소프트웨어를 포함하거나 미리 구성된 설정을 가진 AMI 를 생성할 수 있습니다. 

 

2. 백업 및 복제 : AMI를 사용하면 서버의 현재 상태를 이미지로 캡처하여 나중에 해당 상태로 쉽게 복원할 수 있습니다. 또한, AMI 를 다른 지역이나 계정으로 복제하여 백업을 만들 수도 있습니다. 

 

3. 빠른 배포 : AMI 를 사용하면 필요에 따라서 신속하게 인스턴스를 생성하고 배포할 수 있습니다. 이것은 확장성이 높은 애플리케이션 및 인프라의 관리에 매우 유용합니다. 

 

4. 보안 : AMI 는 AWS 에서 제공하는 다양한 보안 기능을 활용하여 안전하게 관리됩니다. 사용자는 AMI를 특정 계정에만 공유하거나 퍼블릭 AMI 를 사용할 수 있습니다. 

 

AMI 는 AWS 에서 클라우드 환경 가상 서버를 관리하는데 중요한 역할을 합니다. 사용자는 AMI 를 활용하여 신속하고 효율적으로 인프라를 구성하고 관리할 수 있습니다. 

 

AMI 는 루트 볼륨 템플릿입니다. 즉, AMI에서 같은 인스턴스를 생성할 수 있습니다. 삭제하기도 쉽겠죠 ? 

같은 설정의 서버를 복제할 수 있습니다. 

 

 

* 인스턴스 유형 

 

인스턴스 유형은 AWS (EC2) 에서 제공하는 가상 서버의 여러 구성 옵션을 의미합니다. 이것은 사용자가 애플리케이션의 요구 사항, 작업 부하 및 성능 요구 사항에 맞게 적절한 가상 서버 유형을 선택할 수 있도록 합니다. 각 인스턴스 유형은 특정 CPU , 메모리, 스토리지 및 네트워크 용량을 가지고 있으며, 다양한 용도에 맞게 최적화 되어 있습니다.

 

 

1. 가상 CPU 및 메모리 리소스 : 인스턴스 유형은 CPU 코어의 수, 각 코어당 쓰레드의 수, RAM의 양 등을 포함한 가상 CPU 및 메모리 리소스를 제공합니다. 이것은 애플리케이션의 계산 요구 사항에 따라서 선택이 됩니다. 

 

2. 스토리지 옵션 : 인스턴스 유형은 다양한 스토리지 옵션을 제공합니다. 이것은 인스턴스가 처리하는 데이터의 양과 종류에 따라서 선택이 됩니다. 예를 들어, 일반적인 하드디스크, SSD, 고성능 SSD 등이 있습니다. 

 

3. 네트워킹 성능 : 인스턴스 유형은 네트워크 처리량과 대역폭을 결정하는 다양한 네트워크 옵션을 제공합니다. 이것은 애플리케이션의 네트워크 요구 사항에 따라서 선택됩니다. 

 

4. GPU 및 특수 하드웨어 가속기 : 일부 인스턴스 유형은 그래픽 처리를 위한 GPU 또는 특수 하드웨어 가속기를 제공하여 고성능 계산 또는 머신 러닝 작업에 적합하다. 

 

 

* 인스턴스 유형의 선택 

 

t2.micro 를 예시로 들자면 t2 는 인스턴스 유형 (대략적인 용도) 이고 micro 는 인스턴스 크기 (CPU나 탑재 메모리의 용량 등의 성능) 입니다. 

 

 

* 인스턴스 요금 옵션 

 

 1. 온디맨드 인스턴스 : 이 옵션은 사용자가 필요한 만큼의 용량을 신속하게 이용할 수 있도록 합니다. 시간 단위로 과금하여 예약 없이 사용할 수 있습니다. 유연하게 용량을 조정하고 필요에 따라서 인스턴스를 시작 및 중지할 수 있습니다. 가격은 사용한 시간에 따라서 다르게 됩니다. 

 

2. 예약 인스턴스 : 예약 인스턴스는 일정 기간 동안 특정 용량을 예약하는 것으로, 긴 기간 동안 사용할 예정인 경우에 가장 비용 효율적인 옵션입니다. 예약 인스턴스를 구매하면 특정 인스턴스 유형에 대해 할인된 요금을 받을 수 있습니다. 예약 인스턴스는 1년에서 3년 간의 약정 기간을 선택할 수 있으며, 약정 기간이 길수록 할인율이 높습니다. 

 

3. 스팟 인스턴스 : 스팟 인스턴스는 AWS의 사용자가 사용하지 않는 컴퓨팅 자원을 경매 방식으로 이용할 수 있는 옵션입니다. 이것은 예약 인스턴스나 온디맨드 인스턴스에 비해 훨씬 저렴한 가격으로 이용할 수 있지만, 가격이 변동하고 언제든지 인스턴스가 중지될 수 있습니다. 

 

 

* EBS 기능 

 

- EC2의 스토리지 

 

1. 고성능 : Amazon EBS 는 고성능 블록 수준 스토리지로써, 높은 IOPS(I/O 작업 수) 및 낮은 레이턴시를 제공하여 요구 사항에 따라서 다양한 성능 수준을 제공합니다. 

 

2. 영구적 데이터 저장 : Amazon EBS 볼륨에 저장된 데이터는 인스턴스를 중지하거나 종료하더라도 유지됩니다. 이것은 데이터의 영구적 보존과 데이터의 지속적인 이용을 가능하게 합니다. 

 

3. 스냅샷 및 복제 : Amazon EBS 는 스냅샷 기능을 제공하여 데이터를 백업하고, 스냅샷을 통해 복제하거나 복원할 수 있습니다. 이것을 통해 데이터의 안전한 보관 및 복제가 가능해집니다. 

 

4. 다양한 볼륨 타입 : Amazon EBS 는 다양한 종류의 볼륨 타입을 제공합니다. 

 

5. 유연한 용량 조정 : Amazon EBS 볼륨의 용량은 필요에 따라서 쉽게 조정할 수 있습니다.

 

Amazon EBS는 AWS 클라우드에서 데이터를 안전하게 저장하고 관리할 수 있는 중요한 서비스입니다. 사용자는 필요에 따라 Amazon EBS를 활용하여 안정적이고 성능이 우수한 스토리지 솔루션을 구축하고 운영할 수 있습니다.

 

EBS 의 유형 

 

- HDD 

 

읽기 쓰기 속도 -> 보통 

 

가격 - > 보통 

 

소비 전력 -> 조금 높다. 

 

내구성 -> 약하다. 

 

고장 -> 이중화되어 있다. 

 

- SDD

 

읽기 쓰기 속도 -> 빠르다.

 

가격 -> 높다. 

 

소비 전력 -> 보통이다. 

 

내구성 -> 강하다. 

 

고장 -> 이중화되어 있다. 

 

 

정리를 하자면 ! 

EC2 의 스토리는 크케 두 가지 유형으로 나뉜다. 

 

1. 인스턴스 스토어 

 

- 인스턴스 스토어는 EC2 호스트에 물리적으로 연결된 직접 연결 스토리지 입니다. 

 

- 이 스토리지는 인스턴스를 실행하는 동안에만 유지되며, 인스턴스를 중지하거나 종료하면 데이터가 손실됩니다. 

 

- 주로 일시적인 데이터나 캐시 등에 사용되며, 데이터의 영구적인 저장에는 적합하지 않습니다. 

 

- 고성능을 요구하는 응용 프로그램에 적합할 수 있지만, 데이터 손실에 대한 위험이 있으므로 중요한 데이터에는 저장이 되지 않습니다. 

 

2. Amazon EBS

 

- Amazon EBS 는 네트워크를 통해서 제공되는 지속적인 블록 스토리지 서비스 입니다. 

 

- 데이터는 인스턴스를 중지하거나 종료해도 유지되며, 스냅샷을 통해 백업하거나 다른 지역으로 복제할 수 있습니다. 

 

- 다양한 종류의 스토리지 볼륨을 제공하며, IOPS 또는 처리량에 따라서 성능을 선택할 수 있습니다. 

 

- 안정적이고 지속적인 데이터 저장에 적합하며, 중요한 애플리케이션의 데이터에 사용되는 것을 권장합니다.

 

Amazon EC2 의 스토리지 선택은 사용 사례, 성능 요구 사항, 데이터 영구성 등을 고려해서 이루어져야 합니다. 

 

 

* SSH 로 접속하기 

 

- 서버 성능을 올리거나 내리거나 백업하는 등 서버의 전반적인 작업은 관리 콘솔에서 수행합니다. 하지만 서버에 설치한 소프트웨어를 조작하려면 SSH 방식을 사용해서 원격 접속으로 조작하는 것이 일반적 입니다. 

 

- 서버에 SSH 를 사용하기 위한 프로그램을 설치하지 않아도 OS 에 이미 설치되어서 동작하고 있습니다. 

 

- SSH로 서버에 접속할 때 인스턴스 쪽에서 키 페어에 포함되어 있는 '공개키'를 지정하고 클라이언트쪽 소프트웨어에는 내려받은 '키 페어 파일'을 '비밀키'로 설정하여 사용합니다. 

 

요약하자면 SSH 는 서버에 설치된 소프트웨어를 조작할 때 사용하는 방식입니다. 그리고 키 페어는 SSH 접속에 관한 접근 관리를 제공합니다. 

 

 

* Tagging

 

1) Tag 

 

- 리소스 구성의 위한 메타데이터 키페어 

 

- 리소스 이름, 별명, 팀 구분 등을 위해 사용

 

2) Tagging 의 장점 

 

- 관리 편의 

 

1) Tag 별 리소스 쿼리 가능

 

2) Tag 별 권한 제어 가능

 

3) 리소스 그룹 지정

 

- 비용 관리가 용이하다. 

 

 

* ELB ( Elastic Load Balancing )

 

AWS 의 관리형 로드 밸런서 서비스 입니다. 이 서비스는 여러 대의 EC2 인스턴스나 컨테이너, IP 주소 또는 Lambda 함수에게 트래픽을 분산시키는 역할을 합니다. ELB는 애플리케이션의 가용성과 신뢰성을 높이며, 로드 밸런싱 작업을 자동화하여서 애플리케이션의 확장성을 향상시킵니다. 

 

- ELB의 장점 

 

1. 고가용성 : ELB는 여러 가용 영역에 걸쳐 배포되어 있으며, 각 가용 영역에서 동작하는 로드 밸런서 인스턴스 사이의 부하를 분산시켜 가용성을 보장합니다. 이로 인해 장애 발생 시에도 서비스의 지속성을 유지할 수 있습니다. 

 

2. 자동 확장 : ELB는 트래픽 양에 따라서 자동으로 인스턴스를 확장하거나 축소하여 서비스의 성능을 최적화 합니다. 

 

3. 트래픽 분산 : ELB 는 들어오는 트래픽을 여러 대의 EC2 인스턴스나 컨테이너로 분산시키는 로드 밸런싱 기능을 제공합니다. 

 

4. 보안 및 SSL 종료 : ELB 는 SSL 종료를 지원하여 클라이언트와 인스턴스 사이의 트래픽을 암호화 하고 애플리케이션 서버에는 암호화 되지 않은 트래픽을 전달합니다. 

 

5. 유연성 : ELB 는 다양한 유형의 로드 밸런서를 제공하며, 각각의 유형은 특정한 사용 사례와 요구 사항을 충족시키기 위해 설계되었습니다. 

 

 

* ELB 의 종류 

 

- ALB 

 

L7 레이어의 애플리케이션 컨텐츠 기반 로드 분산

 

HHTP, HTTPS 기반

 

- NLB 

 

L4 레이어의 IP, Port 기반 로드 분산

 

TCP, UDP 기반 

 

 

* 오토 스케일링 

 

AWS의 장점 중 하나는 유연성이 높다는 것이다. 인스턴스를 쉽게 늘리거나 줄일 수 있습니다. 

 

오토 스케일링이란 서버의 액세스 상태에 따라서 서버 대수를 늘리거나 줄이는 기능입니다. 

 

액세스 상태에 따라서 서버를 증감합니다. 

 

- 액세스가 적어질 때 

 

서버를 줄여서 비용을 감소합니다.

 

- 액세스가 많아질 때 

 

서버를 늘려서 액세스에 대응합니다. 

 

- 오토 스케일링의 요금은 무료입니다. 

 

 

* Amazon VPC 

 

웹 서버나 데이터베이스 서버와 같은 서버들은 네트워크에 연결되어 있어야 합니다. 이러한 네트워크 구축하기 위해 Amazon Virtual Private Cloud 입니다. Amazon VPC 는 AWS 에서 제공하는 리소스만 설치할 수 있습니다. 특히 EC2, RDS 의 경우 VPC를 선택하지 않으면 서버를 생성할 수 없기 때문에 리소스를 사용하기 위해서는 반드시 필요한 서비스 입니다. 

 

 

* VPC 의 기능 

 

VPC 는 네트워크와 서브넷 범위, 라우팅 테이블, 네트워크 게이트웨이 등과 같은 가상 네트워킹 환경을 설정할 수 있다. 

 

VPC 는 물리적인 라우터가 아닌 소프트웨어가 라우터 역할을 하며 라우팅을 수행합니다. 

 

- 소프트웨어가 라우팅 합니다. 라우터는 IP 주소를 갖지 않는다. 

 

- 라우팅 테이블 한 개에 서브넷 여러 개를 설정할 수 있습니다. 

 

- VPC 한 개에 인터넷 게이트웨이는 한 개만 설정할 수 있고, IP 주소를 갖지 않습니다. 

 

- 서브넷 사이의 통신은 라우터 없이 직접 통신할 수 있습니다. 

 

 

* 라우팅 

 

회사처럼 PC 가 여러 대 있는 환경에서 PC를 일대일로 연결하려면 선이 굉장히 많아질 것이며, 현실적으로 구축할 수 없습니다. 그래서 데이터를 라우터로 보내고, 라우터가 목적지로 보내는 방식이 필요한데 이것을 라우팅이라고 합니다. 

 

 

* 게이트웨이

 

라우터는 네트워크의 관문에 위치해 있기 때문에 관문이라는 의미로 게이트웨이라고 합니다. 게이트웨이 중에 '자신 이외의 접속되어 있는 모든 것' 을 기본 게이트웨이라고 합니다.  

 

 

요약하자면 !!

 

- 라우팅은 라우터에서 목적지까지 데이터를 송신하는 방법입니다.

 

- IP 주소는 목적지 입니다. 

 

- LAN 내부의 출입구가 되는 것이 게이트웨이 입니다.

 

- IP 마스커레이드는 일대다이며 공인 IP 주소와 사설 IP 주소를 변환합니다. 

 

- NAT은 다대다이며 공인 IP 주소와 사설 IP 주소를 변환합니다.

 

- IP 마스커레이드는 포트를 변환할 수 있지만 NAT 는 할 수 없습니다. 

 

 

* 인터넷 게이트웨이 

 

- 인터넷 게이트웨이는 인터넷 연결을 담당합니다. EC2 인스턴스에 웹 사이트를 설치했을 때 웹 사이트에 접속하는 사람은 그 페이지에 접속하고 싶다는 요청을 보냅니다. 해당 요청은 DNS 에서 변환되어 목적지인 공인 IP 주소로 전달됩니다.

하지만 EC2 인스턴스는 사설 IP 주소밖에 설정할 수 없기 때문에 요청된 EC2 인스턴스의 연결 정보를 가지고 있는 인터넷 게이트웨이가 공인 IP 주소를 사설 IP 주소로 변환하여 해당 EC2 인스턴스에 요청을 보냅니다. 

 

* NAT 게이트웨이 

 

NAT 게이트웨이는 프라이빗 서브넷 내의 인스턴스가 인터넷과 통신할 수 있도록 해주는 AWS 의 관리형 서비스 입니다. NAT 게이트웨이는 프라이빗 서브넷 내의 인스턴스가 외부로 나가는 트래픽을 관리하고, 인터넷으로부터 들어오는 응답 트래픽을 프라이빗 서브넷으로 다시 라우팅 합니다. 

 

회사 내부에서만 사용하는 서버의 경우에도 소프트웨어를 업데이트 하려면 인터넷에 연결해야 할 때가 있습니다. 이럴 때 NAT 게이트웨이를 사용합니다. NAT 게이트웨이는 서브넷에서 인터넷으로 접속할 수 있지만 인터넷에서 서브넷으로는 접속하지 못합니다. 

 

* ENI ( Elastic Network Interface )

 

- ENI 는 가상 네트워크 카드로 EC2 인스턴스에 연결되어 네트워크 트래픽을 관리합니다. 

 

- 각 EC2 인스턴스는 하나 이상의 ENI를 가질 수 있으며 ENI 를 통해 인스턴스 간의 통신, 인터넷 연결, VPC 연결 등이 가능합니다. 

 

- EIP 연결도 가능합니다. 

 

- 보안 그룹 부여 가능합니다. 

 

* EIP ( Elastic IP ) 

 

- EIP 는 EC2 인스턴스 또는 다른 AWS 리소스에 할당되는 정적인 고정된 공인 IP 주소입니다. 

 

- EIP 는 인스턴스가 재시작되거나 중지되더라도 IP 주소가 유지되므로, 인스턴스의 고유한 식별자로 사용될 수 있습니다. 

 

요약하자면 ENI를 사용하여 인스턴스의 네트워크 환경을 구성하고, EIP를 사용하여 고정된 공인 IP 주소를 할당하여 네트워크 연결을 안정화할 수 있습니다.

 

 

실습 )

 

1. VPC-Subnet-IGW-NATGW-Routing Table 생성 및 연결

 

 

 

VPC에 들어갑니다.

 

 

 

VPC 를 생성합니다. IPv4 CIDR에는 10.0.0.0/16 를 지정합니다.

 

 

 

 

MyVPC 2가 생성된 것을 볼 수 있습니다. 

 

 

 

퍼블릭 서브넷을 생성합니다. IPv4 CIDR 블록은 10.0.1.0/24 로 지정합니다.

 

 

 

 

 

 

똑같은 방식으로 프라이빗 서브넷까지 생성합니다. 가용영역은 2a 2c 를 서로 설정 합니다. 

 

 

 

 

그리고 퍼블릭 라우팅 테이블을 생성합니다.

 

 

 

 

퍼블릭 라우팅 편집을 합니다. 인터넷 게이트웨이로 설정합니다.

 

 

 

 

 

똑같은 방식으로 프라이빗 라우팅 테이블까지 생성했을 때 프라이빗 라우팅 테이블에는 인터넷 게이트웨이가 아닌 NAT 게이트웨이를 설정해줍니다. 그러면 완성이 됩니다. 

 

 

 

 

2.NAT삭제랑 EIP릴리스

 

 

 

NOT 게이트웨이를 삭제합니다. 

 

 

 

그리고 탄력적 IP 주소를 릴리스 합니다.

 

 

3. EC2배포 및 웹서버 확인

 

 

인스턴스 시작

 

 

 

웹 서버 2를 지정합니다.

 

 

AWS 지정합니다.

 

 

 

서브넷은 퍼블릭으로 바꿉니다. 그리고 퍼블릭 IP 자동 할당을 활성화 합니다.

 

HTTP 소스 유형은 위치 무관으로 합니다.

 

 

HTTPS 도 똑같이 소스 유형은 위치 무관으로 합니다.

그리고 고급 설정에 사용자 데이터 쪽에다가 bin.-sh 내용을 넣습니다.

 

 

인스턴스 시작을 하고 모든 인스턴스 보기로 들어갑니다.

 

IP 주소를 기입하면 내용이 뜹니다.

 

 

 

4. AMI생성 및 인스턴스 삭제

 

그리고 AMI 이미지를 생성합니다.

 

 

AMI 쪽으로 들어가면 생성된 것을 확인할 수 있습니다.

 

 

 

생성된 것을 확인하고 나면 인스턴스를 종료합니다.

 

참고로 생성 도중에 프라이빗 서브넷으로 설정해서 헤메다가 퍼블릭 서브넷으로 바꿔서 하니까 되었습니다.