Hayden's Archive

[AWS] AWS 시작하기 / AWS EC2 인스턴스 생성하기 본문

Study/DevOps

[AWS] AWS 시작하기 / AWS EC2 인스턴스 생성하기

_hayden 2021. 8. 28. 17:47

참고 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스

 

스프링 부트와 AWS로 혼자 구현하는 웹 서비스

가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다.경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현합니다. JPA와 JUNIT 테스트, 그레이들, 머스테치, 스프링

book.naver.com

 

회사에서 AWS를 사용하고 있어서 AWS 공부가 필요하다고 생각되었고 

진행 중인 토이 프로젝트에서 내가 직접 AWS 서버를 구축해보고 싶어서 실습을 하게 되었다.

AWS 관련 지식을 정리하고 실습한 내용을 블로그에 공유해본다.

 

AWS에 가입을 하면 VISA 카드나 MASTER 카드 정보를 입력하게 되고

1년 동안은 프리티어 플랜을 무료로 이용할 수 있다.

1년이 지나서 유료로 전환되면 요금을 납부해야 하는데

아래 링크를 참고해서 안 쓰는 리소스를 삭제하고 과금을 방지할 수 있도록 하자.

https://brunch.co.kr/@topasvga/342

 

37. AWS요금, 비용 폭탄 청구 안되게 삭제하기

AWS는 1년 무료라고 한다. 정확히는 1년간 일정 용량만 무료이다. 그래서 삭제하지 않으면 다음 달에 요금이 나와버린다. 다들 요금 결재될까 봐 두려워 잘 사용하지 않는다. 요금이 나오지 않도

brunch.co.kr

 

https://gun0912.tistory.com/45

 

[AWS]프리티어사용시 요금발생(폭탄)을 막기위한 팁

프리티어로 AWS서비스를 체험하면서 프리티어로 사용할 수 있는 자원의 할당량만 사용한다면 요금이 청구될 일은 없습니다. 하지만 프리티어를 사용하면서 혹시 요금이 발생할 수도 있는 부분

gun0912.tistory.com

 

https://velog.io/@arara90/AWS-Free-tier%EB%A1%9C-RDS-%EC%82%AC%EC%9A%A9-%EC%A4%91-%EC%9A%94%EA%B8%88%EC%9D%84-%EC%A7%80%EB%B6%88%ED%96%88%EC%96%B4%EC%9A%94

 

[AWS] Free-tier로 RDS 사용 중 요금을 지불했어요!

나는..Free-tier로 분명 다 잘 만든 것 같은데..?? 라고 멍청하게 착각하고 있었다.AWS에 들어가서 세부 내역을 확인해보자.

velog.io

 

또 해킹을 당하게 됐을 때도 과금이 생길 수 있는데 해킹을 최대한 막기 위해서

AWS 비밀번호를 다른 곳에서 안 쓰는 비밀번호로 설정하고

Google OTP로 2단계 보안도 추가하자

https://information-security-vlog.tistory.com/20

 

AWS 2단계 보안 설정 / AWS 2-step security setup

서버 쪽에 관련해서 자원을 관리하는 입장이라면 보안적 요소는 필수이다. If we are in a position to manage resources in relation to the server side, a security factor is essential. 서버의 안전한 관리를..

information-security-vlog.tistory.com

 


EC2 (Elastic Compute Cloud)

  • AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버
  • 흔히 AWS에서 사용하는 리눅스 서버 혹은 윈도우 서버를 가리킴
  • 프리티어 플랜에서의 제약 사항
    • 사양 : t2.micro (vCPU(가상 CPU. 물리 CPU 사양의 절반 정도의 성능) 1 Core, 메모리 1GB)
    • 월 720시간(참고 : 24시간*31일=744시간)의 제한. 초과시 비용 부과
      • 서버 1대만 사용하면 거의 종일 사용 가능
  • 리전 : AWS의 서비스가 구동될 지역
    • AWS는 도시별로 클라우드 센터를 지어 해당 센터에서 구축된 가상머신들을 사용할 수 있음

  • 검색창에 EC2를 입력해서 EC2 서비스를 클릭한다.

  • EC2 대시보드가 나오게 된다.
    • 아래와 같이 리전을 확인할 수 있다.
      • Availibility Zone으로 a, b, c, d 총 4개의 존이 있음. 해당하는 존마다 같은 서울 리전이라도 위치가 동일하지 않음. 아마존에 서울이 리전으로 들어오면서 a, b 존이 먼저 있었고 한국 사용자가 늘어나면서  c, d까지도 늘어남
      • 지역적인 천재지변이나 여러 이슈를 인해 특정 위치에 데미지가 가면 서비스가 중단되므로 서비스가 무중단 상태로 유지되는 게 가장 필요한 것
      • 이러한 서버 구성을 고가용성 구성(HA 구성 = High Availibility 구성)이라고 한다. 

  • 좌측 메뉴의 INSTANCES - Instances를 클릭하고 Launch instance를 클릭해서 인스턴스를 시작한다.

  • 인스턴스 생성
    • STEP 1 : AMI(Amazon Machine Image) 선택
      • AMI : EC2 인스턴스를 시작하는 데 필요한 정보를 이미지로 만들어둔 것. 인스턴스라는 가상 머신에 운영체제 등을 설치할 수 있게 구워넣은 이미지.
      • Amazon Linux 2 AMI (HVM), SSD Volume Type을 선택하겠다.
    • STEP 2 : Instance Type 선택
      • 프리티어로 표기된 t2.micro 선택
        • t2는 요금 타입 / micro는 사양
        • t2, t3와 같은 것들을 T 시리즈(범용 시리즈)라고 함
          • 크레딧 : CPU를 사용할 수 있는 포인트 개념
          • 인스턴스 크기에 따라 정해진 비율로 CPU 크레딧을 계속 받으며 사용하지 않을 때는 크레딧을 축적하고, 사용할 때 이 크레딧 사용
          • 정해진 사양보다 더 높은 트래픽이 오면 크레딧을 좀 더 적극적으로 사용하면서 트래픽 처리
          • 크레딧이 모두 사용되면 더 이상 EC2를 사용할 수 없음
        • 트래픽이 높은 서비스들은 T 시리지를 쓰지 않고 다른 시리즈를 사용하게 됨
          • 다른 시리즈는 nano, micro 등의 저사양이 존재하지 않음
    • STEP 3 : Instance 세부정보 구성
      • 기업에서 사용할 경우 화면상에 표기된 VPC, 서브넷 등을 세세하게 다루지만, 혼자서 1대의 서버만 사용할 것이므로 넘어감
      • 회사에서와 같이 대량의 서버를 사용할 경우에는 VPC와 서브넷 등 AWS 서비스들의 네트워크 환경을 구성함
    • STEP 4 : Storage 추가
      • 서버의 용량을 얼마나 정할지 선택하는 단계
      • 설정의 기본값은 8GB이지만, 30GB까지 프리티어로 가능하므로 30GB로 변경함(그 이상으로 하면 비용 청구됨)
    • STEP 5 : Tags 추가
      • 태그에는 웹 콘솔에서 표기될 태그인 Name 태그를 등록함
      • 해당 인스턴스를 표현하는 여러 이름으로 사용될 수 있음. EC2의 이름을 붙이는 것.
      • 여러 인스턴스가 있을 경우 태그별로 구분하면 검색이나 그룹 짓기 편함.
    • STEP 6 : Security Group 추가
      • 보안 그룹은 방화벽을 이야기함
      • SSH이면서 포트 항목에서 22인 경우 = AWS EC2에 터미널로 접속할 경우
        • pem 키 관리와 지정된 IP에서만 SSH 접속이 가능하도록 구성
        • 내 IP를 선택하거나 집 외에 다른 장소에서 접속할 경우에는 해당 장소의 IP를 다시 SSH 규칙에 추가하는 것이 안전함
        • 나는 여기에 7000(스프링부트), 3000(리액트) 포트를 전체 오픈할 것이다.
    • STEP 7 : Review
      • 3000 포트와 7000 포트를 전체 오픈해둬서 보안 그룹 경고가 뜨지만 위험한 일 아니므로 Launch를 클릭하면 할당할 pem 키(비밀키)를 선택하라고 함
      • 인스턴스는 지정된 pem 키(비밀키)와 매칭되는 공개키를 가지고 있어서 해당 pem 키 외에는 접근을 허용하지 않음
        • pem 키는 이후 EC2 서버로 접속할 때 필수 파일이므로 절대 잃어버리면 안 됨
      • 기존에 생성된 pem 키가 없으면 신규로 생성하고 내 컴퓨터에 다운받아서 잘 가지고 있음
      • 여기까지 됐으면 Launch Instance

  • EC2의 INSTANCES-Instances로 가면 인스턴스가 새롭게 생성된 것을 확인할 수 있다.

 


EIP(Elastic IP) 할당

  • 인스턴스도 결국 하나의 서버이므로 IP가 존재함
    • 인스턴스 생성 시에 항상 새 IP를 할당
    • 요금을 아끼기 위해 잠깐 인스턴스를 중지하고 다시 시작하면 IP가 변경됨
    • 인스턴스의 IP가 매번 변경되지 않고 고정 IP를 가지게 하자
  • Elastic IP(EIP, 탄력적 IP) = AWS의 고정 IP
  • EC2 서비스의 NETWORK & SECURITY-Elastic IPs로 들어가서 Allocate Elastic IP address를 클릭한다.

  • Allocate 클릭

  • Elastic IP가 생성된 것을 확인하고 Actions - Associate Elastic IP Address를 클릭

  • 연결할 EC2 이름과 IP를 선택하고 Associate 선택

  • EC2의 INSTANCES-Instances로 가면 해당 인스턴스의 Piblic IP, Elastic IP가 모두 잘 연결된 것을 확인할 수 있음
  • 주의할 점
    • 방금 생성한 Elastic IP는 생성하고 EC2 서버에 연결하지 않으면 비용이 발생함
      • 따라서 Elastic IP는 생성하고 무조건 EC2에 바로 연결해야 한다!
      • 또 더는 사용할 인스턴스가 없을 때도 Elastic IP를 삭제해야지 비용 청구가 되지 않는다!