본문 바로가기
AWS/EC2

AWS EC2(클라우드 가상서버)

by 임혁진 2024. 3. 26.

EC2 란?

EC2란 고가용성 가상머신 서버입니다.

클라우드에서 EC2를 사용하는 것은 여러 동작 원리를 파악하는데 반드시 필요합니다.

EC2는 기존의 가상화 기술방식의 서비스 입니다.(DOCKER랑 다르다)

각각의 EC2는 격리 되고, 고객에게 격리된 EC2 서버를 각각 제공해 줄 수 있게 됩니다.

 

 

EC2 인스턴스는 7가지의 유형이 있다.

ex) m5.4xlarge의 의미는

m - 인스턴스 클래스

5 - 세대

4xlarge - 인스턴스의 크기(samll , large) 

 

C로 시작하는 인스턴스(Computer Optimized)는 CPU최적화 입니다

  • 대용량 연산작업 서버에 적합, 게임서버, 고성능 웹서버 등)

M, R로 시작하는 인스턴스(Memory Optimized)는 메모리 최적화 입니다

  • 대규모 데이터셋 처리에 적합
  • 관계형 데이터베이스, 비관계형 데이터베이스 실시간으로 처리하는 서버등
  • 일래스틱 캐시서버

I, G, H1로 시작하는 인스턴스(Storage Optimized)는 로컬 스토리지 최적화 입니다.

  • 대규모 데이터셋 파일저장에 적합
  • 관계형 데이터베이스, 비관계형 데이터베이스
  • 데이터 웨어하우징 애플리케이션
  • 분산 파일 저장에 적합

 

보안그룹(SECURITY GROUP)

  • 보안그룹은 방화벽입니다.
  • 보안그룹은 포트 번호로 통제하게 됩니다.
  • 인바운드는 외부에서 EC2에 접속하는 규칙입니다.(Request)
  • 아웃바운드는 EC2에서 나가는 규칙 입니다. (기본적으로 모든 포트를 아웃바운딩 합니다)(Response)
  • time out에러(무한로딩) → 100% 보안그룹의 문제
  • connection refused에러 → 보안그룹은 통과했지만, 어플리케이션 레벨에서의 문제

인바운드 포트

포트번호 통신규약 텍스트
22 SSH 리눅스 인스턴스 접속에 사용
80 HTTP 비보안 웹서버 포트
 443 HTTPS 보안 웹서버 포트
21 FTP  파일 전송 프로토콜
22 SFTP 보안 파일 전송 프로토콜(22번과 같다) 
3389 RDP 윈도우 인스턴스용 포트

 

 

탄력적 아이피

  • EC2인스턴스를 생성할 때 랜덤한 공용아이피(public ip)를 부여하게 됩니다. (랜덤 IP)
  • 인스턴스를 종료후에 시작하게 되면, 공용 아이피는 변경됩니다.
  • 서버의 주소가 변하면, 잘 사용하는 서비스의 주소가 변경된다는 의미가 됩니다.
  • 그래서 탄력적 아이피(고정아이피)를 부여받고 인스턴스의 아이피를 고정시키는 전략을 사용할 수 있습니다.
  • 탄력적 아이피는 5개까지 발급이 되며, 인스턴스와 연결(중지)하지 않고 내버려 두면 요금이 부여되니 조심해야한다.

 

 

EC2로 서버 연결하기

EC2생성하기

Region서울로 생성합니다.

AWS 데이터 센터를 전세계 각지에 구축하고 있습니다.

우리가 Saas(웹서비스의제공)으로 클라우드를 사용하게 되면 지정된 Region에 가상으로 생성됩니다.

운영체제는 우분투20

하드디스크 용량은 최소8기가 최대 30기가까지 잡을 수 있습니다. (프리티어기준)

보안그룹 지정

보안그룹은 방화벽이라고 생각하면 됩니다.

ssh는 리눅스 접속을 위한 프로토콜로 필수 입니다.

  • 본인아이피에서만 접속 가능으로 설정해도 되고 (보안상 유리)
  • 0.0.0.0/0 어디서든 접속 가능으로 설정해도 됩니다.

http포트는 웹요청으로 80포트는 어디서든 접속할 수 있게 열어줍니다.

 

 

aws putty접속 공식문서

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html

키페어(비밀번호)

PPK(암호화된 개인키) - putty 접속에 사용

PEM(개인키) - ssh접속에 사용

PEM파일로 다운로드를 받습니다.

접속하는 키파일로 잃어버리면 재발급 거의 불가능하니 중요하게 관리합니다.

 

인스턴스 생성이후 탄력적 아이피연결

인스턴스가 꺼지고 켜지면 아이피가 변경될 수 있습니다.

접속 주소가 변한다는 것이죠.

고정으로 사용하려면 탄력적 아이피를 발급받고 연결합니다.

 

  • putty를 통한 접속
  • putty를 다운로드 받습니다.
  • putty와 puttygen이 있습니다.
  • EC2 서버에 putty접속시에는 PPK파일이 필요합니다.
  • PEM과 PPK는 puttygen을 사용하여 상호 변환이 가능합니다.
  • 변환방법은 여기를 참조
  • https://thekoguryo.github.io/oci/chapter03/5/3/
 

3.5.3 PEM <-> PPK 포맷 변경하기

3.5.3 PEM <-> PPK 포맷 변경하기 PEM(Privacy Enhanced Mail) OCI 인스턴스에서 사용하는 Key Pair 포맷으로 앞선 문서 기준으로 ssh-keygen 명령을 통해 생성됨 PPK(PuTTY Private Key) PuTTY에서 사용하는 키 포맷으로 PuT

thekoguryo.github.io

 

ppk파일등록

계정명@아이피주소 연결

SSH연결 거부 트러블 슈팅(해결방법)

  1. time out인 경우 - 보안그룹의 문제 입니다(보안그룹을 확인하세요)
  2. 그럼에도 불구하고 연결이 안되는 경우, 회사 방화벽이 차단하는 경우일 수 있습니다.
  3. Connection refuse인 경우 - 간혹 EC2의 SSH가 정상 작동하지 않는 경우가 있습니다. 인스턴스를 재시작 합니다.
  4. Permission deny인 경우
    1. 보안 키가 틀렸거나 보안 키를 사용하지 않는 경우입니다. EC2 인스턴스 구성을 확인하여 올바른 키를 할당했는지 확인하세요.
    2. 잘못된 유저를 사용하는 경우도 발생합니다 ubuntu (아마존 리눅스인 경우 유저명 ec2-user) 를 사용하세요.

 

IAM역할의 개념이해하기(일시적인 자격증명)

IAM파트에서 역할의 대한 개념을 확인했었습니다.

역할은 AWS서비스에서 권한을 일시적으로 빌려주는 개념이었습니다.

EC2 인스턴스의 IAM역할을 할당해주면, 특별한 자격증명 없이 정책을 사용할 수 있습니다.

  1. IAM에서 EC2역할이 생성되어 있는지 확인합니다.
  2. EC2인스턴스 화면에서 작업 > 보안 > IAM역할 수정에 들어갑니다
  3. IAM 역할을 적용해 줍니다
  4. ubuntu리눅스의 경우 aws cli설치가 필요합니다
sudo apt-get update
sudo apt-get install awscli

5. EC2 리눅스 서버에서는 다음 명령을 실행하여 자격증명 없이 유저 정보를 불러온다면 성공

aws --version
aws iam list-users

6.ubuntu에서 사용하는 명령문으로 조작하는 CLI는 다양합니다. (CLI명령문은 공식문서 확인)