확장성과 안정성 높은 서버 만들기

김성현·2021년 1월 14일
0

aws공부

목록 보기
1/10

서버

  • 특화된 어떤 임무를 수행하기 위해 설계된 컴퓨터
  • 특화된 임무를 수행하기 위해 일반 컴퓨터보다 고성능의 CPU,빠르고 고용량의 메모리, 대용량의 디스크를 요구한다.


하드디스크

  • 데이터를 저장, 검색, 삭제를 수행하여 영구적으로 저장하기 위해 사용되는 컴퓨터의 주요 장치
  • 스핀들 모터 방식의 기계식 하드 디스크와 플래시 메모리 기반의 전자식으로 동작하는 SSD(Solid-State Drive) 디스크가 있다.
  • 서버와 같이 고성능으로 대량의 데이터를 빠르게 처리하기 위해 디스크 어레이 컨트롤러(Disk Array Controller)와 RAID(Redundant Array of Independent Disks)와 같은 기술을 활용한다.


보안

  • 안전한 상태를 지키는 것
  • AWS에서는 사용자 액세스 및 암호화 키 관리 서비스 AWS IAM(Identity & Access Management), 관리형 위험탐지 서비스 Amazon GuardDuty, DDoS를 보호해주는 AWS Shield, 악성 웹 트래픽 필터링 서비스 AWS WAF등 다양한 보안 서비스를 제공한다.


방화벽

  • 인터넷과 같이 외부 네트워크에 연결되어 있는 내부 네트워크의 중요한 정보 자산에 대해 외부로부터 불법적인 침입을 방지하기 위한 시스템
  • AWS에서는 자체 방화벽 서비스 Security Group, NACL, AWS WAF(Web Application Firewall)을 통해 방화벽 서비스를 제공한다.


리전(Region)

  • 물리적으로 위치가 다른 나라들을 대상으로 동일 서버를 사용하게 하면 재해 또는 불가항력으로 서버가 정지되었을 때 대처할 수 없어서 서비스를 종료해야 하거나, 물리적 거리로 인해 빠른 속도를 낼 수 없어, 아마존은 전세계 주요 국가에 리전(Region)을 구축하여 해당 위치에서 가장 가까운 곳에서 클라우드 서비스를 이용할 수 있도록 서비스를 제공한다.


가용 영역(Availability Zone)

  • 데이터 센터(Internet Data Center, IDC)
  • AWS 하나의 리전에 다수의 가용 영역을 보유하고 있으며 가용 영역이 위치한 데이터 센터(IDC)는 같은 리전이라도 지리적으로 멀리 떨어져 있다. 이유는 재해, 정전, 테러, 화재 등의 다양한 이유로 작동불능이 되더라도 다른 가용 영역(AZ)에서 서비스를 재개할 수 있도록 하기 위함이다.


엣지 로케이션

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


Amazon EC2

  • Elastic Compute Cloud의 약자로 Amazon Web Services 상에서 안정적이며, 크기를 조정 가능한 컴퓨팅 파워를 제공하는 웹 서비스
  • 필요에 따라 한 개의 인스턴스(가상화 서버)에서 수천 개의 인스턴스로 손쉽게 컴퓨팅 파워를 확장할 수 있다.
  • 유형으로는 범용(M 시리즈), 컴퓨팅 최적화(C 시리즈), 스토리지 최적화(I 시리즈, D 시리즈), GPU 최적화(G 시리즈), 메모리 최적화(R 시리즈)로 나눠진다.

구매옵션

구분내용
온디맨드 인스턴스(On-Demand)필요할 때 바로 생성해서 사용하는 방식으로 인스턴스에 대해 초 단위 비용을 지불
예약 인스턴스(Reserved)1년 또는 3년의 기간에 대한 약정을 통해 온디맨드보다 최대 75% 저렴한 비용을 지불
스팟 인스턴스(Spot)경매 방식의 인스턴스로 스펙을 정해 비용을 입찰하여, 높은 가역을 입력한 사용자에게 인스턴스가 할당
전용 인스턴스(Dedicated)고객 전용의 하드웨어에서 인스턴스 서비스를 제공



Amazon EBS(Elastic Block Storage)

  • Elastic Block Storage의 약자로 EC2에 연결되는 Block Level의 스토리지 서비스로 서버에 장착하는 서버용 하드디스크 같은 존재


  • Amazon EBS의 스냅샷 기능은 EBS 볼륨의 데이터를 스냅샷(Snapshot)으로 만들어 Amazon S3에 백업 및 보관할 수 있는 기능으로 특징은 4가지가 있다.
    첫째, EBS 스냅샷은 스냅샷 진행 과정 중에도 EBS나 EC2의 서비스 중단 없이 기존 서비스를 즉시 사용 가능하다.
    둘째, EBS 볼륨의 크기 조정에 사용될 수 있다
    셋째, 스냅 샷의 공유 기능은 활용하여 권한이 있는 다른 사용자에게 공유할 수 있으며, 이렇게 공유된 스냅샷으로 새로운 EBS를 생성할 수 있으며 기존 스냅샷에 어떠한 영향도 주지 않는다.
    넷째, 다른 리전(Resion)으로 복사가 가능하다.


  • Amazon EBS는 EC2의 Disk 성능 향상과 보안성을 높이기 위한 다양한 옵션과 기능을 보유하고 있다.
    첫째, 프로비저닝된 IOPS(Provisioned IOPS)로 Amazon EBS 생성 시 EBS 유형에서 선택 가능한 옵션으로 EBS의 성능을 높이기 위해 Disk의 IOPS의 성능을 지정할 수 있는 기능
    둘째, EBS 최적화된 인스턴스(EBS-Optimized Instance)로 Amazon EBS의 Disk 서비스를 위한 전용 네트워크의 대역폭을 사용하도록 구성하여, Disk 성능을 최적화하는 기능으로 EC2의 인스턴트 타입 중 C 시리즈, M 시리즈, R 시리즈에서 추가 비용 없이 사용 가능하며 Provisioned IOPS와 함께 사용하여 IO의 최대 성능을 끌어낼 수 있다.
    셋째, EBS 암호화 기능으로 Amazon EBS를 암호화 알고리즘 중 하나인 AES-256으로 암호화하여 EBS 내부의 데이터를 보호할 수 있는 기능으로, 암호화 키는 AWS의 KMS에서 직접 생성하거나 기본키를 사용할 수 있고 암호화된 EBS 스냅샷은 공유 및 타 AWS 계정에 공유 되도 사용할 수 없다.


볼륨 유형

볼륨 유형범용 SSD프로비저닝된 IOPS처리량 최적화 HDD콜드 HDD마그네틱
설명다양한 트랜잭션 워크로드 처리지연 시간에 민감한 고성능 처리자주 액세스 하며 처리량 집약적 HDD액세스 빈도 낮은 저비용 HDD빈도가 낮으며 성능 낮은 HDD
사례부트 볼륨I/O 집약적인 NoSQL, RDBMS빅데이터, 로그처리일별 스캔 횟수 작업 데이터드문 데이터 액세스
API 이름gp2io1st1sc1standard
볼륨 크기1GB~16TB4GB~16TB500GB~16TB500GB~16TB1GB~1TB
최대 IOPS10,00032,000500250200
최대 처리량160MB/초500MB/초500MB/초250MB/초4~90MB/초



Amazon 보안 그룹

  • 보안 그룹(Security Group)은 인스턴스에 대한 인바운드(Inbound), 아웃바운드(Outbound)의 네트워크 트래픽을 제어하는 가상의 방화벽 역할을 수행한다.
  • EC2 인스턴스를 시작할 때 각 인스턴스당 최대 5개의 보안 그룹을 할당할 수 있으며 온프라미스(On-Premise)에서 사용되고 있는 방화벽의 정책과 유사한 기능이다

  • Amazon 보안 그룹의 특징으로
    첫째, 보안그룹(Security Group)은 생성 가능한 보안 그룹의 숫자와 규칙에 제한이 있다.
    하나의 VPC당 생성할 수 있는 보안 그룹의 개수는 기본 한도 500개로 각 보안 그룹당 추가할 수 있는 규칙(Rull)의 개수는 50개로 제한되어 있으며, 네트워크 인터페이스당 5개의 보안 그룹을 적용할 수 있다. 더 필요한 경우 AWS Support를 통해 한도 증가 요청을 할 수 있다.
    둘째, 네트워크 트래픽을 위한 허용(Allow) 정책은 있으나 차단(Deny) 정책은 없다.
    차단 정책을 적용하기 위해서는 VPC(Virtual Private Cloud)의 기능인 네트워크 ACL(Network ACL) 기능을 이용해야 한다.
    셋째, 인바운드(Inbound)트래픽과 아웃바운드(Outbound) 트래픽을 별도로 제어할 수 있다.
    넷째, 초기 보안 그룹 설정에는 인바운드 보안 규칙이 없으므로 처음 EC2를 생성하고 다른 EC2와 통신하기를 원한다면, 해당 EC2와의 통신을 위한 인바운드 규칙을 추가해야 통신이 가능하다.


EC2와 EBS를 이용해서 나만의 서버 만들기(프리티어만 사용)

  1. 로그인 후에 좌측 상단 [서비스] -> [컴퓨팅]에서 [EC2]를 클릭한다.



  2. 좌측에서 [인스턴스]를 클릭 후에 중앙에 인스턴스 시작을 누른다.



  3. Amazon Machine Image(AMI) 선택 페이지에서 "Microsoft Windows Server 2019 Base" 서버로 [선택] 한다.



  4. [인스턴스 유형 선택] 페이지에서 유형 "t2.micro" 선택 후 [다음:인스턴스 세부 정보 구성]을 누른다.



  5. [인스턴스 세부 정보 구성] 페이지에서 [다음: 스토리지 추가]를 누른다.



  6. [스토리지 추가] 페이지에서 내용을 확인하고 [다음:태그 추가]를 누른다.



  7. [태그 추가] 페이지에서 [키]는 "EC2", [값]은 "Window2019"으로 태그를 추가하고 [다음:보안 그룹 구성]을 누른다.



  8. [보안 그룹 구성] 페이지에서 정보 확인 후 [검토 및 시작]을 누른다.



  9. [인스턴스 시작 검토] 페이지에서 지금까지 구성한 정보를 확인하고 수정 사항이 없다면 [시작하기]를 누른다.



  10. [기존 키 페어 선택 또는 새 키 페어 생성]에서 "새 키 페어 생성"으로 선택하고 이름은 "AWS_Study_Key"로 입력해주고 [키 페어 다운로드]를 눌러서 PC에 저장한다.(분실하면 이 키 페어로 설정된 EC2를 사용 못한다.) 저장 후에 [인스턴스 시작]을 눌러준다.



  11. 인스턴스가 생성됨을 확인할 수 있다.



생성한 인스턴스에 접속하기

  1. 생성한 인스턴스에 접속하기 위해 우클릭해서 연결을 클릭한다.



  2. [암호 가져오기]를 누른다.



  3. [파일 선택]을 통해서 인스턴스 생성 때 지정한 키 페어를 선택한다. 그 후에 [암호 해독]을 누른다.



  4. [원격 데스크톱 파일 다운로드]를 누른다.




    5.다운 받은 파일을 원격 데스크톱 프로그램으로 실행 시켜서 해독한 암호를 입력한다.



  5. 생성한 서버의 접속 화면



Window 서버 시작, 정지, 종료하기

  1. 생성한 인스턴스를 정지(Stop)하기 위해선 서버에 접속한 후 정지(Shut down)시키거나, [인스턴스] 페이지에서 해당 인스턴스에 우클릭해서 [인스턴스 상태]에서 정지 클릭으로 정지 시킬 수 있다.




  2. 정지된 인스턴스를 시작하는 방법은 해당 인스턴스에 우클릭해서 [인스턴스 상태]에서 시작을 선택한다.



  3. 생성한 인스턴스의 영구 삭제를 원할 때는 해당 인스턴스를 우클릭하여 [인스턴스 상태]에서 종료를 클릭한다.



Linux 서버 만들기

생성 과정은 Window 서버 생성 과정과 일치하다.


여기서 [검토 및 시작]을 눌러서 다 건너뛴다.

키 페어는 기존에 생성한 키 페어를 사용한다.

생성됨을 확인



Linux 인스턴스 접속하기

  1. SSH 접속용 프로그램인 Putty부터 다운 받는다.
    https://www.putty.org/



  2. 본인 PC의 OS와 bit종류에 맞쳐서 다운 받는다.



  3. Putty를 설치 후 설치 한 경로에 들어가서 "puttygen.exe"를 실행한다.



  4. 실행 후에 [Conversions] -> [Import Key]를 선택해서 Linux 인스턴스 생성 할 때 선택한 기존 키 페어를 선택한다.


  5. [Save Private Key]를 선택하고 뜨는 창에서 예를 누른다.
    그다음 뜨는 창에서 저장할 때 이름은 "AWS_Study_Key.ppk"로한다.



  6. Putty.exe 파일을 실행하여 [Connection] -> [SSH] -> [Auth] 메뉴에서 Private key file for authentication:에서 방금 저장한 파일을 지정한다.



  7. 접속할 Linux 인스턴스의 IPv4 퍼블릭 IP를 확인해서 Putty로 접속을 시도하고 뜨는 창에서 예를 누른다.





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

  1. AWS에서 생성한 Linux 인스턴스 접속할 때 사용하는 IP 정보를 확인하기 위해 본인의 PC의 IP정보를 확인한다. https://www.whatismyip.com/



  2. Linux 인스턴스에 설정된 보안 그룹을 눌러서 이동한다.



  3. 인바운드 규칙에서 편집을 눌러 기존에 있던 내용을 지운다.



  4. 이 상태에서 접속을 시도하면 접속이 안된다.



  5. 다시 보안 그룹으로 돌아와서 인바운드 규칙 편집에서 규칙의 내용을 채워주고 저장한다.



  6. 그러고나서 다시 접속을 시도하면 접속됨을 볼 수 있다.

0개의 댓글