AWS SAA를 위한 EC2 공부하기 (2)

인스턴스 유형 기본사항 7가지가 있다

네이밍 컨벤션

m5.2xlarge

시험과 관련되서 알아야할 것

사용 가능한 인스턴스를 확인할 수 있다.

Amazon EC2 Instance Comparison

보안 그룹 및 클래식 포트

보안그룹은 EC2의 방화벽

//인바운드 트래픽
인터넷 --> EC2
인터넷 <-- EC2
//아웃바운드 트래픽

EC2 클래식 포트 - 시험에 나오는 것들

보안그룹 실습

자동으로 생성된 launch-wizard도 다른 인스턴스에 넣을 수 있다

SSH

터미널이나 CLI로 서버를 제어할 수 있게 해준다

SSH 연결하기

//키를 먼저 등록해줘야한다
chmod 0400 EC2TutorialKey.pem // Key읽기 권한 부여

//ec2-user라는 이름을 설정한 이유는 ec2접근할 때 디폴트로 생성되는 이름
//접근하는 유저명은 인스턴스가 생성될 때 만들어진 것과 관계가 있기 때문에 IAM과 큰 연관은 없다
ssh -i EC2TutorialKey.pem ec2-user@퍼블릭 인스턴스 ip
ssh ec2-user@퍼블릭 instance-ip
__|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\\___|___|

<https://aws.amazon.com/amazon-linux-2/>
[ec2-user@ip-private-ip ~]$

유저명과 프라이빗 ip가 뜨면 접근이 정상적응로 이루어진 것이다

EC2를 위한 IAM 역할(Role)

EC2 인스턴스에 엑세스 키 ID와 secret 엑세스 키를 입력해두면 해당 EC2 인스턴스에 접속하는 누구든지 정보를 회수할 수 있기 떄문에 보안상으로 절대 입력해서는 안된다

aws iam list-users
Unable to locate credentials. You can configure credentials by running "aws configure".
[ec2-user@private-ip ~]$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:

→ 반드시 IAM Role을 활용해야 한다



이전에 만들어두었던 IAM Role을 연결해준다.

이렇게 하면 실제 ec2에서도 유저 권한에 관한 설정이 가능

[ec2-user@private ip ~]$ aws iam list-users
{
    "Users": [
        {
            "UserName": "bj_choi",
            "PasswordLastUsed": "2023-05-15T00:26:37Z",
            "CreateDate": "2023-05-09T00:16:44Z",
            "Path": "/",
            "Arn": "arn:aws:iam::717107759992:user/bj_choi"
        }
    ]
}

EC2 인스턴스 구매 옵션

시험에서는 전용 호스트와 전용 인스턴스의 차이를 물어본다

전용 인스턴스 → 인스턴스에 대해 인스턴스로 설정한 만큼의 자신의 하드웨어를 갖는다

전용 호스트 → 물리적 서버 자체에 대한 접근권을 갖고 하드웨어와 가장 근접하게 가시성을 제공해준다

추가적으로 시험에서는..

시험에서는 워크로드에 적합한 게 어떤 타입의 인스턴스인지 물어볼 것

Spot Instance

스팟 플릿(spot fleets)

스팟 플릿을 요약하자면

  1. 여러 가지 런치풀과 인스턴스 유형을 다양하게 정의
  2. 이후 스팟 플릿에 전략을 사용하면 자동적으로 전략과 스팟 플릿 런치풀에 따라 스팟 인스턴스를 요청
  3. By using Launch Pools, you can easily add or remove instance types and launch specifications as your workload changes, and ensure that you are always using the most cost-effective instances.

쉽게 말해 스팟 플릿은 온디맨드 + 스팟 인스턴스이고 다양한 런치풀을 통해 사용자가 원하는 인스턴스 타입과 OS, AZ등 스팟 인스턴스로써 사용자에 맞는 최상의 조합을 찾을 수 있다. 그리고 이러한 런치풀과 스팟 플릿 전략에 따라 사용자가 설정해놓은 Capacity에 맞게 원하는 스팟 인스턴스를 구하여 효율적으로 스팟 인스턴스를 실행시키는 방식이 스팟플릿이다.

즉 스팟 플릿을 사용하면 스팟 인스턴스에 따라 추가적인 비용 절감이 되는데 적합한 스팟 인스턴스 풀을 선택해주고 비용을 최대한 낮출 수 있게 해준다.

마지막으로 차이점을 이해해야 하는데 사용자가 사용하고자 하는 인스턴스의 유형과 가용 영역을 지정해서 사용하는 스팟 인스턴스 요청과 달리 스팟 플릿은 최저가 선택같이 사용자의 요구의 조건에 따라 인스턴스 유형과 가용영역을 선택하도록 한다

ChatGPT 정리

요약하면 스팟 인스턴스는 가용성 측면에서 유연하고 중단을 처리할 수 있는 워크로드에 이상적이며 스팟 플릿은 여러 인스턴스 유형, 가용 영역 및 리전에서 고가용성, 확장성 및 비용 최적화가 필요한 워크로드에 이상적입니다.

EC2 launch type (실행시킬 수 있는 모든 방법)

1. 스폿 요청(spot requests)

온디맨드 요금, AZ에 따라 다른 것들을 확인할 수 있다.

다양한 파라미터를 통해 스팟 인스턴스에 대해 여러 옵션들을 설정할 수 있다.

Capacity optimized, lowest price, diversified(여러 개를 미리 정의해야함)

2. Reserved instance

12 months or 36 months / 선결제, 부분선결제 등이 있다

현재는 Savings Plan을 권장하는 중

3. Savings Plans

1년 or 3년 Reserved instance와는 다르게 유연하게 인스턴스를 생성할 수 있다.

4. 전용 호스트

물리적인 서버의 하드웨어까지 접근할 수 있다.

라이선싱 가격에 우대를 해줌 → 라이선스 측면에서 생각

5. Capacity Reservations

이해가 잘 안되서 찾아봤다.

원하는 가용영역에 원하는 인스턴스를 원하는 양만큼 예약하여 사용하는 것이라고 한다.

https://cloudest.oopy.io/posting/050