지구정복

[AWS] 2장 확장성과 안정성 높은 서버 만들기 본문

데이터 엔지니어링 정복/Cloud(AWS, Ncloud)

[AWS] 2장 확장성과 안정성 높은 서버 만들기

eeaarrtthh 2020. 12. 2. 23:14
728x90
반응형

1. 서버와 스토리지

1.1 서버(Server)

서버란, 특화된 어떤 임무를 수행하기 위해 설계된 컴퓨터이다.

이러한 임무를 위해 고성능의 CPU, 빠르고 고용량의 메모리, 대용량의 디스크를 필요로한다.

또한 서버용 OS가 설치되고 용도에 따라 UNIX, Linux 혹은 Window Server 등이 설치된다.

 

AWS는 EC2(Elastic Compute Cloud)라는 서비스를 이용해 가상의 서버를 구성하고 필요한 소프트웨어를 설치하여 사용할 수 있다.

 

1.2 하드디스크

컴퓨터의 영구저장장치이고 서버와 같이 고성능으로 대량의 데이터를 빠르게 처리하기 위해서

디스크 어레이 컨트롤러(Disk Array Controlloer)와 RAID(Redundant Array of Independent Disks)와 같은 기술을 활용하여 디스크 장애 발생 시에도 데이터를 보호하며, 보다 높은 성능을 제공할 수 있도록 구성한다.

AWS는 EBS(Elastic Block Storage) 서비스를 이용하여 EC2에 디스크를 추가하여 서비스를 사용할 수 있다.

 

 

2. 보안과 방화벽

2.1 보안(Security)

정보 보안은 각종 위험으로부터 정보 및 데이터를 안전한 상태로 유지하는 것을 말한다.

AWS는 리소스에 대한 사용자 액세스 및 암호화 키 관리 서비스인 AWS IAM(Identity & Access Management),

관리형 위험탐지 서비스 Amazon GuardDuty, DDoS 보호를 위한 AWS Shield, 악성 웹 트래픽 필터링을 위한 서비스인 

AWS WAF(Web Application Firewall) 등 다양한 보안 서비스를 제공한다.

 

2.2 방화벽(Firewall)

정보 시스템에서의 방화벽은 인터넷과 같이 외부 네트워크에 연결되어 있는 내부 네트워크의 중요한 정보 자산에 대해 외부로부터 불법적인 침입을 보호하기 위한 시스템을 말한다.

 

외부 사용자 또는 외부 시스템이 내부의 서버 및 자원에 접근하기 위해서는 반드시 방화벽을 거쳐야 한다.

AWS는 자체 방화벽 서비스인 Security Group, NACL, AWS WAF을 통해 방화벽 서비스를 제공하고 있다.

 

 

3. 클라우드 용어

AWS는 전 세계를 대상으로 클라우드 서비스를 제공하기 위해 전세계 주요 지역에 IDC(Internet Data Center)를 자체적으로 구축하여 운영하고 있다. 이러한 클라우드 서비스를 위한 인프라 환경을 크게 리전(Region), 가용영역(Availability Zone), 엣지 로케이션(Edge Location)으로 구분할 수 있다.

 

3.1 리전

아마존은 전세계 주요 국가에 리전을 구축하여 해당 위치에서 가장 가까운 곳에서 클라우드 서비스를 이용할 수 있도록 서비스를 제공한다.

 

3.2 가용영역

데이터센터(Internet Data Center, IDC)를 의미한다.

AWS 하나의 리전에 다수의 가용 영역을 보유, 또한 같은 리전이라도 가용영역들은 멀리 떨어져 있다.

그 이유는 하나의 가용영역에 재해, 정전, 테러, 화재 등의 이유로 작동불능이 되더라도 다른 가용영역에서 서비스를 재개할 수 있도록 하기 위함이다.

 

3.3 엣지 로케이션

아마존의 CDN서비스인 CloudFront를 위한 캐시 서버(Cache Server)들의 모음을 의미한다.

CDN서비스는 Content Delivery Network의 약자로, 콘텐츠(HTML, 이미지, 동영상, 기타파일)를 서버와 물리적으로 사용자들이 빠르게 받을 수 있도록 전세계 곳곳에 위치한 캐시 서버에 복제해주는 서비스이다.

 

콘텐츠를 받기 위해 물리적으로 멀리 떨어진 서버에서 다운로드하는 것보다, 가까운 서버에 접속하여 다운로드받는 것이 속도가 훨씬 빠르기 때문에 CDN 서비스는 전세계 주요 도시에 캐시 서버를 구축해 놓는다.

 

 

4. Amazon EC2(Elastic Compute Cloud)

4.1 Amazon EC2

AWS 상에서 안정적이며, 크기를 조정 가능한 컴퓨팅 파워를 제공하는 웹 서비스를 의미한다.

가상화 서버를 인스턴스라 부르며, 필요에 따라 한 개의 인스턴스에서 수천 개의 인스턴스로 손쉽게 컴퓨팅 파워를 확장할 수 있다.

 

물리서버도입 : 벤더선택 > 하드웨어선택 > 내부품의 > 장비배송 > 장비입고 > OS설치및구성 (약 1달 소요)

AWS 도입 : AWS 회원가입 > 서버타입 및 사양선택 > EC2 생성 및 구성 (약 1시간 소요)

 

4.2 EC2의 주요 특징

- EC2인스턴스 유형

범용

컴퓨팅 최적화

스토리지 최적화

GPU 최적화

메모리 최적화

 

-EC2 인스턴스 구매 옵션

온디맨드 인스턴스 : 초 단위 비용 지불 / 빈번한 서버 생성 및 삭제하는 환경에 적합

예약 인스턴스 : 1~3년간 사용하는 환경에 적합 온디맨드보다 최대 75% 저렴한 비용

스팟 인스턴스 : 단기적으로 병렬 컴퓨팅 파워를 사용하는 서비스에 적합 / 입찰방식

전용 인스턴스 : 고객의 전용 하드웨어 사용을 통해 보다 보안성 높고 안정적인 환경에 적합

 

4.3 EBS(Elastic Block Storage)

서버에 장착하는 서버용 하드디스크

 

4.4 EBS의 주요 특징

-EBS 볼륨 유형

범용 SSD : 다양한 트랜잭션 워크로드 처리 / 보통 범용성이 높고, 가성비가 뛰어나 많이 사용

프로비저닝된 IOPS : 지연 시간에 민감한 고성능 처리

처리량 최적화 HDD : 자주 액세스 하며 처리량 집약적 HDD

콜드 HDD : 액세스 빈도 낮은 저비용 HDD

마그네틱 : 빈도가 낮으며 성능 낮은 HDD

 

-EBS 스냅샷 활용

EBS 볼륨의 데이터를 스냅샷으로 만들어 Amazon S3에 백업 및 보관할 수 있는 기능.

컴퓨터의 하드디스크를 통째로 백업할 수 있는 기능이라고 생각하면 된다.

이렇게 백업받은 스냅샷으로 다시 EBS볼륨을 생성하거나, 다른 EC2로 연결하여 데이터를 복원하는 작업을 수행할 수 있다.

 

스냅샷은 4가지 특징을 가지고 있다.

1. EBS나 EC2의 서비스 중단없이 기존 서비스를 즉시 사용 가능하다.

2. EBS 볼륨의 크기 조정에 사용될 수 있다.

3. 스냅샷의 공유 기능을 활용하여 권한이 있는 다른 사용자에게 공유할 수 있으며, 이렇게 공유된 스냅샷으로 새로운 

   EBS를 생성할 수 있다.

4. 다른 리전으로 복사가 가능하다.

 

-EBS 성능과 보안성 높이기

EBS는 이를 위해 다양한 옵션과 기능을 보유하고 있다.

1. 프로비저닝된 IOPS이다. EBS 생성 시 EBS유형에서 선택 사능한 옵션으로 EBS의 성능을 높이기 위해 Disk의 IOPS의 성능을 지정할 수 있는 기능

2. EBS 최적화된 인스턴스이다. EBS의 Disk 서비스를 위한 전용 네트워크의 대역폭을 사용하도록 구성하여 Disk 성능을 최적화한다.

3. EBS 암호화 기능이다. EBS를 암호화 알고리즘 중 하나인 AES-256으로 암호화하여 EBS내부의 데이터를 보호할 수 있는 기능이다.

 

 

 

5. 보안 그룹(Security Group)

5.1 보안 그룹

보안 그룹은 인스턴스에 대한 인바운드(Inbound), 아웃바운드(Outbound)의 네트워크 트래픽을 제어하는 가상의 방화벽 역할을 수행한다.

EC2 인스턴스를 시작할 때 각 인스턴스당 최대 5개의 보안 그룹을 할당할 수 있다.

다만 네트워크 트래픽에 대한 '허용'만 가능하고 '차단'은 불가능하다.

 

5.2 보안 그룹의 특징

1. 보안 그룹은 생성 가능한 보안 그룹의 숫자와 규칙에 제한이 있다. 

하나의 VPC(Virtual Private Cloud) 당 생성할 수 있는 보안 그룹의 개수는 기본 한도 50개이다. 가 보안 그룹당 추가할 수 있는 규칙의 개수를 50개이며, 네트워크 인터페이스당 5개의 보안 그룹을 적용할 수 있다.

 

2. 네트워크 트래픽을 위한 '허용'정책은 있으나 '차단'정책은 없다.

일반적인 방화벽에서는 네트워크 흐름을 제어하기 위한 정책으로 허용과 차단 정책이 모두 있지만 보안 그룹에서는 차단 정책은 없다.

만약 차단 정책을 적용하기 위해선 VPC의 기능인 네트워크 ACL(Network ACL) 기능을 이용해야 한다.

 

3. 인바운드 트래픽와 아웃바운드 트래픽을 별도로 제어할 수 있다.

 

4. 초기 보안 그룹 설정에는 인바운드 보안 규칙이 없다. 따라서 초기 EC2를 생성하고 다른 EC2와 통신하기를 원한다면

해당 EC2와의 통신을 위한 인바운드 규칙을 추가하여야만 가능하다.

 

 

 

6. 실습: EC2와 EBS를 이용해서 나만의 서버 만들기

6.1 Windows 서버용 EC2 인스턴스 만들기

aws.amazon.com/ko/

 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

Larry는 Amazon Connect, Amazon WorkSpaces, Amazon Honeycode, Amazon Pinpoint, Amazon SES, Amazon Chime 등 다수의 비즈니스 애플리케이션을 담당하고 있습니다. 아메리카 12월 3일 1 오전 11:15~오후 12:15(PST) 아시아 태평양

aws.amazon.com

1. 접속한 다음 로그인 하기

 

2. 빨간원 부분 AWS 리전을 '아시아 태평양(서울)'으로 선택

 

3. [서비스] -> [컴퓨팅] -> EC2로 이동

 

4. [인스턴스] 클릭하여 [인스턴스 시작] 누르기

 

5. 밑으로 내려서 "Microsoft Windows Server 2019 Base' 서버를 찾은 후 [선택] 클릭

 

6. "t2.micro" 선택 후 [다음: 인스턴스 세부 정보 구성] 클릭

 

7. 기본값 그대로 놔두고 [다음: 스토리지 추가] 클릭

 

8. 스토리지 정보 확인후 [다음: 태그 추가] 클릭

9. [태그 추가]를 클릭한 뒤 [키]: EC2, [값]: Window 2020을 입력 후

[다음: 보안 그룹 구성] 클릭

 

10. 보안 그룹 설정 정보 확인 후 [검토 및 시작] 버튼 클릭

 

11. 지금까지 구성한 정보 확인후 수정사항 없으니 [시작] 클릭

12. [기존 키 페어 선택 또는 새 키페어 생성] 에서 "새 키 페어 생성"을 선택후에

AWS_Study_Key 를 입력하고 [키 페어 다운로드] 클릭하여 AWS_Study_Key.pem 파일을 컴퓨터에 저장한다.

이 파일을 분실하는 경우 해당 EC2에 접근할 수 없으니 잘 보관해야 한다.

그리고 [인스턴스 시작] 클릭

 

13. 이제 인스턴스가 시작되었고 [인스턴스 보기] 클릭하면 인스턴스가 생성되어 있는 것을 확인할 수 있다.

 

 

6.2 Windows 인스턴스 접속하기

1. 생성된 windows 서버에 접속하기 위해 [인스턴스] 페이지에서 [연결] 클릭하거나 인스턴스 선택후 마우스 오른쪽 버튼 클릭 후 [연결]을 클릭한다.

 

2. [RDP 클라이언트] 클릭후 [암호 가져오기] 클릭, 그리고 컴퓨터에 저장된 pem 파일을 불러온다.

그리고 [암호 해독]을 누른다.

 

3.해독된 암호를 사용해서 확인 후 상단의 [원격 데스크톱 파일 다운로드] 클릭하고 접속 프로그램 다운 받는다.

 

4. 해당 프로그램 실행 후 [사용자 자격 증명 입력]에서 확인된 암호를 입력한다.

그리고 [확인]을 누른다.

 

5. 새로 생성된 Windows 서버에 접속을 완료한다.

 

6.3 Windows 서버 시작, 정지, 종료하기

1. 생성된 인스턴스를 정지시키기 위해 서버에 접속 후 정지를 수행하거나, [인스턴스] 페이지에서 인스턴스 선택 후 마우스 오른쪽 버튼 클릭 후 [인스턴스 상태] -> [정지]를 클릭해서 인스턴스를 정지할 수 있다.

 

2. 2~3분 뒤 [인스턴스] 페이지에서 정지된 인스턴스 상태를 확인할 수 있다.

 

3. 정지된 인스턴스를 시작하는 방법은 [인스턴스] 페이지에서 시작할 인스턴스 선택 후 마우스 오른쪽 버튼 클릭 후 

[인스턴스 시작]을 선택한다.

 

4. 생성된 인스턴스를 영구 삭제하려면 [인스턴스] 페이지에서 삭제원하는 인스턴스 선택 후 마우스 오른쪽 버튼 클릭후

[인스턴스 종료]를 누른다.

[종료] 버튼 누르면 "인스턴스 종료시 루트 EBS 볼륨이 영구 삭제된다"는 안내가 나오게되며 [종료]를 누른다.

 

5. 3~5분 후 [인스턴스] 페이지에서 해당 인스턴스가 Terminated되어있음을 확인할 수 있고,

더이상 보이지 않게된다.

 

6.4 Linux 서버 만들기

1. 윈도우 서버 생성 절차와 동일하다. [인스턴스] 페이지에서 [인스턴스 시작] 버튼을 클릭한다.

2. Linux인 "Amazon Linux 2 AMI"를 선택 후 [선택] 클릭한다.

3. [인스턴스 유형 선택] 페이지에서 "t2.micro" 선택 후 [검토 및 시작] 클릭한다.

4. [인스턴스 시작 검토] 페이지에서 기본적인 정보를 확인후 [시작] 버튼을 클릭한다.

5. [기존 키 페어 선택] 누른 뒤 "AWS_Study_Key.pem"을 클릭한다. 

그리고 "이 파일이 없으면 내 인스턴스에 로그인할 수 없습니다."를 체크한 뒤 [인스턴스 시작] 을 클릭한다.

6. 몇 분 내로 신규로 생성된 Linux 인스턴스를 확인할 수 있다.

 

6.5 Linux 인스턴스 접속하기

1. 먼저 Linux 인스턴스 접속을 위해 일반적인 SSH 접속용 프로그램이 필요하며, Putty라는 SSH툴을 다운로드 받기 위해

http://putty.org 에서 다운로드를 받는다.

 

Download PuTTY - a free SSH and telnet client for Windows

Is Bitvise affiliated with PuTTY? Bitvise is not affiliated with PuTTY. We develop our SSH Server for Windows, which is compatible with PuTTY. Many PuTTY users are therefore our users as well. From time to time, they need to find the PuTTY download link. W

putty.org

"You can download Putty here"을 눌러서 다운로드 받는다.

 

2. [다운로드] 페이지에서 본인 PC의 OS버전과 bit 종류에 맞게 설치한다.

3. 설치파일을 실행후에 설치 폴더지정한다.

설치가 완료되었으면 키 페어 파일을 Putty프로그램과 연결하기 위해 Putty 프로그램이 설치된 경로로 이동후

"puttygen.exe"를 실행한다.

 

4. [conversions] -> [import key]를 클릭

 

5. Linux 인스턴스 생성시 선택한 기존에 생성한 키 페어 파일(AWS_Study_Key.pem)을 선택 후 

[열기] 버튼을 클릭한다.

 

6. PuTTY로 import할 private key의 생성을 위해 [save private key]를 클릭 후

다음 항목에서 [without passphrase to protext] 에서 [예]를 클릭한다.

7. "AWS_Study_Key.ppk"의 이름으로 로컬 pc에 저장한다.

그리고 창을 닫은 다음 다시 PuTTY설치 폴더로 가서 "putty.exe"파일을 실행한다.

8. 여기서 [connection] -> [SSH] -> [auth] 메뉴의 [private key file for authentication]항목에서 바로 전에 생성한

ppk 파일을 선택한다.

9. 접속할 Linux 인스턴스 정보를 확인하기 위해 AWS console에 접속하여 인스턴스를 선택후

IPv4 퍼블릭 IP정보를 확인한다.

10. [session]항목에서 [hostname] 에 인스턴스 IP를 입력하고 [connection type]을 'SSH'를 선택하고,

[saved sessions]에 "Linux Server"라고 입력 후 [save] 버튼을 클릭한다. 그리고 하단의 [open] 버튼을 클릭한다.

11. 다음 항목에서 [예]를 눌러준다.

12. "ec2-user"라고 입력해본다.

아래와 같이 뜨면 접속이 완료된 것이다.

Linux 인스턴스의 시작, 정지, 종료 또한 Windows 인스턴스와 동일하다.

 

 

7. 보안 그룹(Security Group)을 활용하여 보안 강화하기

7.1 PC의 IP 주소 확인하기

본인의 로컬 PC에서 AWS에 생성된 Linux 인스턴스 접속을 위해 사용하는 IP 정보를 확인해야 한다.

네이버 검색 창에 '내아이피'를 검색하면 자신의 ip를 확인할 수 있다.

 7.2 기존 보안 그룹 삭제

1. 기존에 설정된 보안 그룹을 삭제하기 위해 Linux [인스턴스]에서 설정된 보안 그룹을 확인하여 해당 보안 그룹을 클릭한다.

 

2. [보안그룹]의 "인바운드 규칙" 탭에서 [인바운드 규칙 편집] 버튼을 클릭한다.

 

3. 기존에 설정된 규칙을 삭제합니다. 그리고 규칙 저장합니다.

4. 이제 PuTTY로 Linux 인스턴스에 접속을 시도하면 보안그룹을 삭제하였기 때문에 다음과 같이 접속 오류가 발생한다.

 

7.3 신규 보안 생성

1. 보안그룹의 [인바운드 규칙 편집] 페이지에서 [규칙 추가] 버튼을 클릭하고 [유형]에서 'SSH'를 선택하고 

[소스 유형]에 이전에 확인한 본인 로컬 pc ip 정보를 입력하거나, 소스에서 [내ip]를 선택하여 자신의 접속 ip정보를 입력후 [규칙 저장] 버튼을 클릭한다.

 

 

 

 

출처

아마존 웹 서비스 - 권영환

728x90
반응형
Comments