AWS Cloud/solution architect

EC2 기초 (2)

Yonggyu 2023. 10. 19. 15:31
반응형

 

 

SSH(Secure Shell) 개요

SSH는 클라우드에서 실행 시 까다로운 부분 중 하나는 유지보수나 조치를 취하기 위해 서버 내부와 연결하는 것이다.
터미널이나 명령줄을 이용해서 원격 머신이나 서버를 제어할 수 있게 해준다.
Linux 서버에서는 SSH를 서버에 사용한다.
SSH는 명령줄 인터페이스 도구로, 운영체제에 따라 Mac, Linux, Window버전10이상부터도 사용이 가능하다.
Putty는 SSH와 동일한것으로 모든 버전의 Window에서 사용가능하다.
SSH와 Putty는 SSH 프로토콜을 사용해 EC2 인스턴스에 연결한다.
마지막으로 EC2 Instance Connect는 웹 브라우저로 EC2 인스턴스에 연결합니다 좋은 점은 Mac과 Linux 그리고 Window의 모든 버전에서 사용 가능하다.


SSH 트러블 슈팅

1) 연결 시간 초과가 발생하는 경우
보안 그룹또는 방화벽에 문제가 생긴 경우 발생
보안 그룹의 Source의 범위나 포트번호 등 잘 확인해야하고, EC2인스턴스에 올바르게 할당되었는지 확인해야 한다.

2) 연결 시간 초과 문제가 계속해서 발생할 경우
위와 같이 보안 그룹이 올바르게 설정되었으나 여전히 연결 시간 초과 문제가 발생하는 경우, 회사 방화벽 또는 개인 방화벽이 연결을 차단한다는 뜻입니다. EC2 Instance Connect를 사용하해야한다

3)SSH가 Windows에서 동작하지 않을 경우
ssh command not found라고 뜨면 PuTTY를 사용해야 합니다.아니면 EC2 Instance Connect를 사용하면 된다.

4) 연결이 거부될 경우
이는 인스턴스에는 도달할 수 있지만 해당 인스턴스에서 SSH 유틸리티가 실행되고 있지 않다는 뜻이다. 인스턴스를 재시작하면 된다. 여전히 동작하지 않는다면, 인스턴스를 종료하고 새 인스턴스를 만들어라. 반드시 Amazon Linux 2를 사용해라.

5) 권한 거부(publickey,gssapi-keyex,gssapi-with-mic)
보안 키가 틀렸거나 보안 키를 사용하지 않는 경우이다. EC2 인스턴스 구성을 확인하여 올바른 키를 할당했는지 확인해야한다.
잘못된 사용자를 사용할 경우에도 발생한다. Amazon Linux 2 EC2 인스턴스에서 실행했다면 ec2-user 사용자를 사용하고 있는지 확인해라. 

6) 어제는 연결이 가능했는데 오늘은 되지 않습니다.
EC2 인스턴스를 중단했다가 오늘 다시 시작했을 경우, 이런 일이 발생할 수 있다. 이 경우, EC2 인스턴스의 퍼블릭 IP가 변경된다. 따라서 명령어 또는 PuTTY 구성에서 새 퍼블릭 IP로 업데이트하여 저장하면 된다.

 


EC2 구매 옵션

EC2 온디맨드

온디맨드(On-demand) : 필요한 만큼 사용하고 비용을 지불
Linux or Window는 1분 이후 초단위로 청구가 이루어지고, 다른 모든 운영체계의 경우에는 1시간 단위로 청구가 이루어진다.
비용이 가장 많이 들지만 바로 지불할 금액은 없고, 장기적인 약정도 필요없다. 그렇기 때문에 단기적이고 중단 없는 워크로드가 필요할때, 또는 애플리케이션의 거동을 예측할 수 없을때 사용하기 적합하다.
온디맨드 EC2 인스턴스는 단기적인 워크로드에 사용하기 좋았다. 비용예측도 가능하고 초 단위로 요금을 지불하면 되었다.

예약 인스턴스 (Reserved Instances)
장기간의 워크로드에서는 예약 인스턴스를 사용할 수 있다. 오랫동안 데이터베이스를 실행할 계획이라면 예약 인스턴스가 좋다.
예약 인스턴스는 온디맨드엥 비해 72%할인을 제공한다. 그리고 특정한 인스턴스 속성을 예약한다. 예를 들어 인스턴스 타입, 리전, 테넌시, OS 등을 예약하게 된다.
기간을 1년 또는 3년으로 지정해서 할인을 더 받을 수 있고 선결제, 부분 선결제 또는 후불 중에 선택할 수 있다.
특정 리전이나 존으로 할 수 있다 즉, 특정한 AZ에 있는 예약된 용량을 의미
데이터 베이스와 같은 사용량이 일정한 애플리케이션에 예약 인스턴스를 사용하는것이 좋다 
예약 인스턴스를 마켓플레이스에서 살 수 있고, 더 이상 필요가 없어지먄 팔 수도 있습니다

전환형 예약 인스턴스 (Convertible Reserved Instance)
인스턴스 타입, family, OS, 범위, 테넌시 를 변경할 수 있다.
유연성이 크기 때문에 할인률을 약간 적다. (최대 66%)

절약플랜 (Saving Plans)
기간 1 또는 3년
특정 유형의 인스턴스를 약정하는 게 아니라 달러 단위로 특정한 사용량을 약정하는 것이기 때문에 좀더 현대적인 방식이다. 장기 워크로드에 위한 인스턴스이다.
장기간 사용하면 할인을 받을 수 있다. 예약 인스턴스와 마찬가지로 70%할인을 받을 수 있는데 1~3년 동안 시간당 10달러로 약정을 하게 되고, 용량이 한도를 넘어서면 절약 플랜은 온디맨드 가격으로 청구하게 된다.
절약 플랜을 이용하면 특정한 인스턴스와 패밀리, 리전으로 고정되게 된다

 

스폿 인스턴스 (Spot instance)
아주 짧은 워크로드를 위한 것이라 아주 저렴하다. 하지만 언제라도 그 인스턴스들이 손실될 수 있어서 신뢰성이 낮다
할인 폭이 제일 커서 온디맨드에 비해 최대 90%까지 할인이 된다
하지만 스폿 인스턴스에 대해 지불하려는 최대 가격을 정의하고 만일 스폿 가격이 그 가격을 넘게 되면 인스턴스가 손실되기 때문에 언제라도 인스턴스가 손실될 수 있다 그래서 스폿 인스턴스는 AWS에서 가장 비효율적인 인스턴스이다. 분산형 워크로드 또는 시작 시간과 종료 시간이 유연한 워크로드 (아주 중요한 작업이나 데이터베이스에는 적절하지 않다)
인스턴스가 고장에 대한 회복력이 있다면 아주 유용하다 그 예시는 배치 작업이나 데이터 분석, 이미지 처리, 모든 종류의

전용 호스트 (Dedicated Hosts)
전용 호스트인 경우는 사용자는 온디맨드로 초당 비용을 지불하거나 1년 또는 3년 동안 예약할 수 있다. 실제로 물리적 서버를 예약하기 때문에 AWS에서 가장 비싼 옵션이다.
활용 사례로 자주 사용되는 EC2 인스턴스 용량이 있는 실제 물리적 서버를 받게 되고, 법규 준수 요건이 있는 활용 사례나 소켓, 코어, VM 소프트웨어 라이선스를 기준으로 청구되는 기존의 서버에 연결된 소프트웨어 라이선스가 있는 경우가 있을 수 있다 그런 경우가 바로 여러분이 물리적 서버에 접근하고 전용 호스트를 갖춰야 하는 활용 사례입니다
다시말해, 라이선싱 모델과 함께 제공되는 소프트웨어인 경우 즉, 흔히 BYOL인 경우 또는 규정이나 법규를 반드시 준수 해야하는 회사인 경우가 있다.

전용 인스턴스 (Dedicated Instances)
전용 인스턴스란 사용자의 전용 하드웨어에서 실행되는 인스턴스이다.
물리적 서버와는 다른 개념이다 하지만 같은 계정에서 다른 인스턴스와 함께 하드웨어를 공유할 수 있고, 인스턴스 배치에 대한 통제권은 없다.
다시말해 전용 인스턴스는 여러분이 자신만의 인스턴스를 자신만의 하드웨어에 갖는다는 것인 반면에, 전용 호스트는 여러분이 물리적 서버 자체에 대한 접근권을 갖고 낮은 수준의 하드웨어에 대한 가시성을 제공해 준다는 점이다.

용량 예약 (Capacity Reservations)
원하는 기간 동안 특정한 AZ에서 온디맨드 인스턴스를 예약할 수 있다, 그리고 필요할 때마다 그 용량에 접근할 수 있다
기간 약정은 없기 때문에 언제라도 예약하고 취소가 가능하다.
인스턴스를 실행하지 않는 경우에도 요금이 부과되기 때문에 특정한 AZ에 있어야 하는 단기적이고 중단 없는 워크로드에 아주 적합합니다.

 

이해하기 쉽게 리조트로 비유

온디맨드 : 원할때 리조트를 이용하고 그만큼 가격을 지불
예약 : 장기적인 투숙을 위해 미리 계획하고 예약한다 오래 체류하기때문에 할인률이 높다
절약플랜 : 리조트에 일정 기간 동안 시간당 특정 금액을 지불하고 객실의 타입도 변경 가능하다.
스폿 인스턴스 : 빈 객실이 남아 그것을 팔기위해 할인률을 높이고 경매시키는것이다 하지만 다른사람이 나보다 더 많이내면 쫒겨 나갈 수 있다.
전용 호스트 : 마치 리조트 건물 전체를 예약하려는것과 같다. 자신만의 리조트(하드웨어)를 받게된다.
용량예약 : 객실을 특정 기간 동안 예약해놓지만 내가 이용할 수도 있고 안할 수도있다 하지만 비용은 전부 내야한다.

 

 

 
스팟 인스턴스 및 스팟 집합

최대 스팟 가격
스팟 인스턴스에 대해 내가 지불할 수 있는 최대 스팟 가격을 정의한다.
그리고 현재 스팟 인스턴스 가격이 지불하고자 하는 나의 최대 가격 보다 낮다면 인스턴스를 유지한다.

현재 스팟 가격이 정의된 최대 가격을 초과하면, 두 가지를 선택지가 있다. 
첫번째는 인스턴스를 중지하는 것이다. 즉 하던 작업을 모두 중지하고 인스턴스를 중지하는 거다 어느날 스팟 가격이 최대 가격 아래로 내라가면, 인스턴스를 다시 사작하고 중단 했던 곳부터 재개하는 거다. 
두번째는 EC2 인스턴스에서 상태가 필요하지 않다면 그냥 인스턴스를 종료해 버리는 것이다. 그러면 언제든 작업을 다시 시작할 때 새로운 EC2 인스턴스로 시작할 수 있다
이 두 가지 옵션에는 2분의 유예 기간이 있다 2분의 유예기간은 작업을 수행할 수 있는 시간을 약간 주는 것이다.
근데 만약 스팟 인스턴스를 회수하는 것을 원하지 않는다면, 스팟 블록을 사용할 수 있다.
스팟 블록은 지정된 기간 동안 스팟 인스턴스를 차단하는 것이다.
1~6시간까지 가능하고 그동안 중단 없이 해당 블록을 사용할 수 있다고 규정이 되어 있다.

스팟 요청 (Spot Requests)
스팟 요청에서는 원하는 인스턴스 수, 최대 가격 및 시작 사양 등을 정의한다. 요청에는 스팟 인스턴스 일회성 요청을 하거나, 영구 인스턴스 요청을 할 수 있다.
일회성 요청은 스팟 요청이 완료되는 즉시 인스턴스가 시작된다. 그러면 스팟 요청은 사라진다 일회성 요청 이기 때문.
영구 요청 유형인 경우 스팟 요청이 유효한 기간 동안은 이 인스턴스 수도 유효하다는 뜻이다. 즉, 인스턴스가 어떤 이유로든 중지되거나 스팟 가격을 기준으로 중단되는 경우 스팟 요청이 다시 실행되고, 유효성이 확인되면 스팟 인스턴스가 다시 시작된다.

스팟 인스턴스 종료
스팟 인스턴스를 종료하려면 먼저 스팟요청을 취소하고, 그 다음에 인스턴스를 종료해야한다. 스팟 인스턴스를 먼저 종료해버리면 AWS에서 스팟 요청으로 다시 돌아가 그 요청대로 인스턴스를 시작해버리기 때문이다.


스팟 플릿 (Spot Fleets)
비용을 절감하는 궁극적인 방법
 = 스팟 인스턴스 세트 + (옵션) 온디맨드 인스턴스 세트

스팟 플릿은 사용자가 정의한 가격 제한을 기반으로 목표 용량을 충족하기 위해 최선을 다한다. 가능한 런치 풀에서 시작하고 다양한 인스턴스 유형, OS 및 다양한 가용성 영역을 가질 수 있다.
그러면 플릿이 가장 적합한 런치 풀을 선택한다. 그리고 스팟 플릿이 예산에 도달하거나 원하는 용량에 도달하면 인스턴스 시작을 중지한다. 따라서 스팟 플릿에 스팟 인스턴스 할당하는 전략이 중요하다.

 


전략

최저 가격은 스팟 플릿이 가장 낮은 가격인 풀에서 인스턴스를 시작하기 떄문에 비용이 최적화 된다. 워크로드가 매우 짧은 경우에서 좋다 

다양한 방법으로 스팟 인스턴스를 실행할 수 있어 스팟 인스턴스가 모든 풀에 분산이된다.(가용성 향상, 긴 작업에 적합)

용량 최적화는 원하는 인스턴스 수에 맞는 최적의 용량을 가진 풀을 갖게 된다. 
 
가격 용량 최적화는, 먼저 사용 가능한 용량이 가장 큰 풀을 선택하고 그 중 가격이 가장 낮은 풀을 선택하는 전략이다. 대부분의 워크로드에 가장 적합한 선택이죠

 


요약하자면
스팟 플릿을 사용하면 여러 개의 런치 풀과 여러 인스턴스 유형을 정의할 수 있다. 전략인 최저가 할인 또는 최저가 전략을 사용하면 스팟 플릿이 자동으로 가장 낮은 가격의 스팟 인스턴스를 자동으로 요청한다.

 

 

 

 

 

728x90
반응형