AWS - 4 [EC2 - 3]

_Block·2022년 9월 3일
0

AWS

목록 보기
5/27
post-thumbnail

👆 SSH 원격 접속

SSH는 원격 접속에 사용되는 보안 프로토콜 입니다.

기존에는 텔넷이라는 방식을 사용을 하였는데 이는 암호화를 제공하지 않기 떄문에 보안상으로 취약했습니다.

그러기 떄문에 SSh가 등장을 하게 되었고 해당 프로토콜은 인스턴스를 생성할떄 나오는 키 페어를 통해서 접속을 하게 됩니다.

  • 접속이라는 것이 해당 인스턴스에 접속해서 수정을 한다로 이해를 하면 됩니다.
  • 보안 그룹과는 다른 영역입니다.

기본적으로 SSH접속은 22번 포트를 사용하기 떄문에 제가 앞서 구성한 인스턴스를 그대로 따라오셨다면 아웃바운드 보안규칙으로 22포트는 All Access상태 일 것입니다.

  • 0.0.0.0을 의미합니다.

일단 AWS CLI가 설치되었다는 가정으로 시작을 하겠습니다.

Terminal에 다음과 같이 입력합니다.

  • ssh ec2-user@{ip}

이떄 ip는 publicIP 주소를 의미합니다.

실행을 하게 되면 다음과 같이 오류가 발생을 합니다.

해당 오류가 발생을 하는 이유는 SSH를 활용하여 접속을 할떄에는 키페어 파일이 필요하기 떄문에 발생을 합니다.

그러면 해당 Key파일이 저장된 위치로 가서 다시 다음과 같은 CLI를 입력해 줍니다.

  • ssh -i {keyFileName} ec2-user@{ip}

해당 에러가 발생을 하게 될 것입니다.

해당 에러가 발생을 하는 이유는 처음 접속할 떄에는 Key가 너무 공개되어 있는 상태이기 떄문에 해당 키에 대한 보안을 해제해주어야 합니다.

  • chmod 0400 {keyFileName}을 입력합니다.

그러면 키에 대한 보안이 해제되고 이전과 같은 명령어를 통해서 인스턴스에 접속이 가능합니다.

저도 그러고 아마 Key를 참조하여 SSH에 접속을 할떄 Host key verification failed.라는 에러가 발생하는 분도 있을 것 입니다.
이럴떄에는 해당 명령어를 통해서 접속을 진행합니다.

  • ssh -o StrictHostKeyChecking=no -i {ketFileName} ec2-user@{ip}
  • 해당명령어는 접속할떄 생성되는 HostKey를 고려하지 않고 접속하는 명령어 입니다.

그러면 이와 같이 접속이 된 것을 확인할 수 있습니다.

  • 나갈떄에는 control+D를 활용 합니다.

👆 IAM 활용한 EC2인스턴스

aws에 접속을 하였다면 명령어를 통해서 해당 EC2에 userList를 확인 가능합니다.

  • aws iam list-uers

하지만 해당 명령어를 치게 되면 aws configure를 실행시키라는 경고창이 뜨고,

aws configure를 입력하게 되면 몇가지 정보들을 입력하게 됩니다.

  • 해당 정보들은 어떤 IAM을 말하는지를 입력하는 부분 입니다.

하지만 이렇게 직접 입력하는 행위는 보안적으로 굉장히 위험한 방법 입니다.

간단한 ReadOnly권한이 있는 IAM을 생성하였습니다.

그러면 해당 권한이 있는 IAMUser들을 설정한뒤에 EC2인스턴스에 해당 Role을 적용하면 해당 IAM에 속한 User들만이 EC2에 접근 가능합니다.

  • 이렇게 IAM을 활용하여 EC2를 수정하는것이 보안적으로 우수 합니다.

이렇게 인스턴스를 선택하여 IAM 역할 수정을 합니다.

그러면 이와 같이 이전과는 다르게 권한이 부여된 EC2를 확인할 수 있습니다.

  • 쉽게 말해 EC2 에게도 IAM권한을 부여하는 것으로 생각하면 됩니다.

👆 EC2 인스턴스 구매 옵션

EC2인스턴스를 구매하는 방법에는 여러가지가 있습니다.

다양한 방식에 따라서 할인률, 활용법이 다양하기 떄문에 시험 및 후에 서비스를 개시할떄 이러한 부분을 고려해야 합니다.

사실상 이론적으로 배워서 이렇다는 것이지 이거를 실무에 직접적으로 알맞은 상황이라고 느끼고 사용하는 것은 힘들겠지만 비교적으로 이론으라로도 알아두는것이 좋습니다.

🐾 온 디멘드 인스턴스

가장 일반적인 인스턴스 입니다.

언제든 사용 가능하며 사용한 만큼만 금액이 부과됩니다.

가격은 가장 비싸지만 선결제가 없고, 장기 약정도 필요 없습니다.

즉 이러한 유형이 유리한 상황은 짧은 기간에만 사용하는 경우나, 예측 불가능한 상황에 적용 가능합니다.

🐾 예약 인스턴스

온디맨드 인스턴스에 비해서 약 70퍼 정도의 금액을 할인받을 수 있습니다.

하지만 특정 인스턴스 타입, 상태를 지정하고 사용해야 합니다.

예약기간은 늘어날 수록 할인율은 늘어납니다.

또한 범위의 경우 특정 리전을 선택하거나 특정 가용영역(AZ)를 선택해야 합니다.

해당 인스턴스 같은 경우에는 이미 안정된 애플리케이션에서 사용하기에 적합합니다.

예약 전환형 인스턴스도 있습니다. 말 그대로 설정한 인스턴스를 변경하는 것으로 더 많은 유연성을 제공하기 떄문에 할인율이 줄어 듭니다.

예약 기간은 1년 아니면 3년 입니다.

🐾 세이빙 플랜 인스턴스

장기 사용에 따라서 할인을 받는 인스턴스 입니다.

시간당 10달러의 비용을 1~3년동안 약정함으로써 동작합니다.

최대 사용량이 정해져 있으며, 초과되는 사용량은 온디맨드 형태로 부과됩니다.

리전에 따라서 사용가능한 인스턴스가 정해져 있습니다.

  • 예를들으서 M5같은 경우에는 Us에서 사용 가능합니다.

🐾 스팟 인스턴스

가장 높은 할인율을 제공하는 인스턴스 입니다.

하지만 언제든 종료 가능합니다.

  • 내가 지불하는 금액보다 스팟금액이 높아지면 인스턴스가 종료됩니다.

Batch작업, 데이터 분석 등에는 적합하지만, 데이터베이스등 중요한 정보를 저장하기에는 적합하지 않습니다.

🐾 전용 호스트

물리적인 서버로 내가 사용하고자 하는 용도에 맞는 EC2인스턴스 입니다.

구매옵션은 다양하게 구성이 가능하고 AWS에서 가장 비싼 옵션입니다.

  • 왜냐면 물리적인 서버를 직접 빌리는 행위이기 떄문입니다.

보통 엄격한 규정 준수 요구 사항이 있을떄에 사용합니다.
비용은 소켓당, 코어당 등등 청구되기 떄문에 뛰어난 비용 가시성을 제공합니다.

🐾 용량 예약 인스턴스

온디맨드 형태의 인스턴스를 특정 가용영역에 특정 기간동안 빌리는 행위 입니다.

특정 기간이 정해져 있지 않고, 단순히 용량을 빌리는 행위를 말합니다.

🍊 예시

호텔 예약을 예시로 들어보겠습니다.

1. 온 디맨드
- 언제든지 호텔에 접근이 가능하며 사용한 만큼만 비용을 지불하는 행위입니다.

2. 예약 옵션
- 일정 기간을 예약하는 옵션입니다.
- 미리 예약을 하기 떄문에 할인율이 높지만, 사용을 하지 않아도 기간은 지나갑니다.

3. 세이빙 플랜
- 특정 기간동안 지속적으로 돈을 지급하는 대신 원하는 방을 바꿔가며 사용 가능한 형태 입니다.
- 쉽게 말하면 약정입니다.

4. 스팟 인스턴스
- 호텔이 제공하는 마감 할인입니다.
- 가격이 싼 만큼 불편한 점이 많을 것이며, 언제든지 방이 취소 될 수 있습니다.

5. 전용 호스트
- 호텔 전체를 빌리는 것과 같습니다.

6. 용량 예약
- 일단 방을 기간동안 예약하지만 해당 방을 사용 하지 않을수도 있는 상황입니다.
- 그렇다고 환불은 되지 않습니다.
profile
Block_Chain 개발자 입니다. 해당 블로그는 네트워크에 관한 내용을 다루고 있습니다.

0개의 댓글