TIL

2024.06.10.월 AWS EC2 사용하기 & 윈도우에서 PuTTY로 인스턴스 연결

Nellucia 2024. 6. 12. 00:22

HTTPS로의 변환을 위해 프로그램을 배포하려고 해서 EC2를 사용해 봤다.

이번에 처음 사용하는 것이지만 여러가지 자료를 읽어보면서 하니 나름 할만했다.

 

 

AWS EC2

 

AWS EC2(Amazon Elastic Compute Cloud)는 Amazon Web Services(AWS)에서 제공하는 클라우드 컴퓨팅 서비스다. AWS EC2는 가상 서버 인스턴스를 생성, 관리할 수 있는 기능을 제공하며, 사용자는 이를 통해 다양한 컴퓨팅 리소스를 필요에 따라 유연하게 사용할 수 있다. 

 

주요 기능

  1. 가상 서버 인스턴스:
    • 다양한 인스턴스 타입 제공: 일반용, 컴퓨팅 최적화, 메모리 최적화, 스토리지 최적화, GPU 인스턴스 등 다양한 용도에 맞게 선택할 수 있다.
    • 인스턴스 크기 선택: 필요한 컴퓨팅 파워에 따라 인스턴스의 크기를 조정할 수 있다.
  2. 탄력성:
    • 자동 스케일링: 트래픽 증가나 감소에 따라 자동으로 인스턴스 수를 조정하여 유연하게 대응할 수 있다.
    • 탄력적 IP 주소: 고정 IP 주소를 제공하여 인스턴스 재시작 후에도 동일한 IP 주소를 유지할 수 있다.
  3. 스토리지 옵션:
    • Amazon EBS(Elastic Block Store): 인스턴스에 연결할 수 있는 블록 스토리지를 제공하며, 데이터 백업과 복구를 쉽게 할 수 있다.
    • Amazon S3(Simple Storage Service): 객체 스토리지 서비스로, 대용량 데이터 저장과 배포에 적합
    • 인스턴스 스토어: 인스턴스와 함께 제공되는 임시 스토리지로, 고성능 I/O 작업에 적합
  4. 보안:
    • 보안 그룹(Security Groups): 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 방화벽 역할을 한다.
    • 키 페어(Key Pairs): SSH를 통한 안전한 인스턴스 접근을 위해 공용 키와 개인 키를 사용
    • VPC(Virtual Private Cloud): 논리적으로 격리된 네트워크 환경에서 인스턴스를 실행할 수 있다.
  5. 유연한 비용 구조:
    • 온디맨드 인스턴스: 필요할 때마다 인스턴스를 실행하고, 사용한 만큼만 비용을 지불
    • 예약 인스턴스: 일정 기간 동안 인스턴스를 예약하여 할인된 요금으로 사용할 수 있다.
    • 스팟 인스턴스: AWS의 여유 컴퓨팅 용량을 활용하여 매우 저렴한 요금으로 인스턴스를 사용할 수 있다.

장점

  1. 확장성:
    • 필요에 따라 쉽게 리소스를 추가하거나 제거할 수 있으며, 대규모 트래픽 증가에도 유연하게 대응할 수 있다.
  2. 가용성 및 신뢰성:
    • AWS의 글로벌 인프라를 통해 높은 가용성과 신뢰성을 제공합니다. 여러 가용 영역(AZ)에 인스턴스를 배포하여 장애 발생 시에도 서비스를 지속할 수 있다.
  3. 비용 효율성:
    • 사용한 만큼만 비용을 지불하는 유연한 비용 구조로, 초기 투자 비용 없이 클라우드 리소스를 사용할 수 있다.
  4. 다양한 인스턴스 옵션:
    • 애플리케이션 요구사항에 따라 다양한 인스턴스 타입과 크기를 선택할 수 있다.
  5. 통합 서비스:
    • AWS의 다른 서비스(S3, RDS, Lambda 등)와 쉽게 통합할 수 있어 종합적인 클라우드 솔루션을 구축할 수 있다.

 

 

 

1. AWS EC2 서비스에 접속해서 인스턴스를 시작한다.

 

 

 

 

2. 이름 및 태그는 내가 식별하기 쉬운 것으로 작성

 

3. OS는 Amazon Linux를 선택했다. maxOS는 써보고 싶은데 돈이 든다. 

 

 

4. 인스턴스 유형은 프리티어인 t2.micro

 

 

 

5. 그리고 키 페어를 생성한다.

 

 

 

내가 윈도우를 사용하기 때문에 PuTTY로 접속할 생각이다. 키 파일 형식을 .ppk로 받는다. 

.pem으로 받고 PuTTYgen으로 변경해도 된다. macOS쓰면 .pem으로 받아서 그냥 터미널에서 바로 접속이 가능 하더라

 

키 페어 생성을 누르면 바로 다운로드가 된다.

 

 

6. 네트워크 설정은 기존 보안그룹이 있으면 사용하고 아니면 새 보안 그룹을 생성한다.

PuTTY로 접속할 것이기 때문에 SSH트래픽 허용을 체크하고, 해당 EC2인스턴스를 서버용으로 호스팅 해서 HTTP요청을 받을 수 있게 할 생각이기 때문에 HTTP트래픽 허용을 체크해준다. HTTPS도 체크해도 된다. 

 

 

7.스토리지 구성은 최대 30GB까지 가능하다 (프리티어)

 

8. 고급 세부 정보는 아직 건드리지 않아도 되는 것이라 그대로 인스턴스를 시작해 준다.

 

 

9.이제 다시 AWS EC2의 인스턴스 카테고리로 넘어와서 방금 생성한 인스턴스를 클릭하고 연결을 누른다.

인스턴스 상태가 실행 중으로 변하고 누르자.

 

 

 

10. EC2 인스턴스 연결 탭에서 그래도 연결해도 되는데 , 뭔가 렉도 걸리고 한번 튕기니까 연결도 잘 되지 않아서 윈도우 환경에서 그냥 SSH클라이언트로 연결을 했다.

 

 

 

설명이 잘 나와있는데, 저 방법은 mac에서나 되더라

 

 

PuTTY로 인스턴스 연결하기

 

 

1. PuTTY열기

 

 

2. HostName입력

 

4번째 설명에 "퍼블릭 DNS을(를) 사용하여 연결:" 에 있는 주소를 복사해서 Hostname에 붙여 넣는다.

 

 

 

3. key pair설정

 

아까 다운받은 key pair파일을 가져온다.

Connection - SSH - Auth - Credentials to authenticate with으로 들어가서 다음과 같이 

Private Key file for authentication에서 Browse를 눌러 해당 파일을 찾아 가져온다.

 

 

 

4. 다음에 접속하기 쉽도록 다시 Session 으로 넘어와서 Save를 누른다.

 

 

5. 이제 Open을 누르면 접속이 된다.

 

Aceept

 

원래 그냥 바로 되는데 login as : 하고 입력하라고 커서가 깜박이는 경우도 있는데 보통 ec2-user를 넣으면 된다. 뭐 안건드리면 ..

이럼 끝이다. 이제 여기에 JDK설치하고 git설치하고 빌드한 파일 실행하고 HTTP요청 보내면 된다.