AWS EC2 & Route 53

LUNIA·2024년 9월 14일
0

Weekly I Learned(WIL)

목록 보기
2/4
post-thumbnail

EC2

정의

원격의 컴퓨터를 빌려 저속하여 사용하는 서비스로 EC2란 하나의 컴퓨터를 의미한다.

배우는 이유

서버를 배포하기 위해서는 컴퓨터를 24시간 가동하여 나의 서버에 외부 사용자들이 접속할 수 있도록 해야한다. 하지만, 이러한 점의 불편함과 더불어 외부에서 나의 컴퓨터에 접속하여 해킹하여 나의 컴퓨터의 보안 상의 위험성 또한 감내해야 한다는 점 또한 있다. 이로 인하여 나의 컴퓨터를 사용하는 것이 아니라 외부의 컴퓨터를 사용하여 AWS EC2라는 서비스를 통해 컴퓨터를 빌려서 사용함 으로써 서버를 유지할 수 있도록 하는 것에 의의가 있다.
더 나아가 AWS EC2에서 제공하는 그 외의 기능들(ex. logging, autoscaling, loadbalancing 등)을 활용하기 위해서도 사용한다.
주로 EC2는 Back End server를 배포할 때 주로 사용한다. Front End의 경우에는 vercel, netlify 또는 AWS S3를 사용하여 주로 배포한다.

EC2 설정하기 전 핵심 용어 정리

  • 리전(Region) : 인프라를 지리적으로 나누어 배포한 각각의 데이터 센터 AWS region 사진 위의 사진은 AWS 홈페이지 내에서 Region을 설정하는 곳을 의미한다.
    그렇다면, 왜 Region을 설정해야하는가?
    Data는 결국 전기적 신호를 전달(통신)하는 것에 불과하기 때문에 물리적인 거리가 멀 수록 그 효율성은 저하된다. 따라서, 내가 주로 서비스 할 지역을 Region으로 설정함으로써 보다 효율적인 서비스를 제공하기 위하여 설정하는 것이다. 더불어, EC2는 Region에 따라 따로 관리가 되고 있음을 인지하고 기존에 생성했던 EC2가 사라진 것이 아님을 기억하자 !

  • 인스턴스(instance) : EC2에서 빌린 한 대의 컴퓨터 단위를 의미한다.

  • IP : 네트워크 상 특정 컴퓨터를 가르키는 주소를 의미한다. ex. 61.41.153.2

  • Port : 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소 ex. 61.41.153.2:3000 에서 :3000 부분이 포트 번호를 의미한다.
    즉, 외부에서 특정 PC의 Spring Boot 프로그램에 접속하기 위해서는 IP와 Port번호를 알고 있어야 접근할 수 있다.
    그렇다면, 브라우저 창에서 포트 번호를 입력하지 않고 www.naver.com 으로 입력 시 네이버 서버에 접근할 수 있는 이유는 무엇일까?
    도메인 주소를 통해 알 수 있는 것은 IP에 불과하지만 기본적으로 브라우저(크롬, 익스플로러 등)는 기본적으로 80번(HTTP well-known port번호) 으로 통신을 보내게 설정되어 있기 때문에 Port 번호를 굳이 입력하지 않고도 접속할 수 있는 것이다. 만약, 80번 포트가 아닌 3000번 포트로 접속하고 싶다면 www.naver.com:3000 이라고 작성하면 된다.

EC2 설정하기

  1. 인스턴스 시작 클릭

  2. 이름 및 태그 설정 (추후에 여러 서버를 개설 할 수 있기 때문에 직관적인 서버명 기재)

  3. OS 설정하기(Ubuntu로 Server를 주로 개설한다. 그 이유는 다른 OS보다 경량화 되어 있기 때문에 비용적으로 이점이 많기 때문이다.)

  4. 인스턴스(빌린 컴퓨터의) 유형(컴퓨터 사양) 설정하기

  5. 키 페어(로그인) : 어떠한 서버에 접속 할 때 사용할 열쇠의 개념으로 아무나 접근하면 안되기 때문에 이름은 직관적으로 작성하되, 해당 파일은 공유 및 분실하지 않도록 주의해야한다.
    그 외 키 페어 유형 및 프라이빗 키 파일 형식의 설정의 경우에는 그다지 중요한 설정이 아니기에 skip

  6. 네트워크 설정

    보안그룹(Security Group) 설정
    보안 그룹(Security Group) 이란 ? AWS 클라우드에서의 네트워크 보안을 의미한다.

    쉽게 설명하자면 외부에서의 접근(트래픽)을 허용할 것인가 불허할 것인가를 일차적으로 검사하는 역할을 수행하는 방화벽 역할을 수행하는 것이다. 어떠한 트래픽을 허용할 지 불허할 지에 대한 설정하는 것을 보안 규칙으로써 설정하게 되는데 이 보안 규칙은 크게 인바운드 트래픽(Inbound traffic)과 아웃바운드 트래픽(Outbound traffic)으로 나뉜다.
    인바운드 트래픽은 EC2 외부에서 인스턴스로 보내는 트래픽을 의미하고 아웃바운드 트래픽의 경우에는 EC2 인스턴스에서 외부로 나가는 트래픽을 의미한다.

    유형란의 SSH란 원격 접속을 위한 경로를 의미하고 현재 캡쳐 내용의 경우에는 해당 내용의 경우에는 어떠한 컴퓨터에서든지 해당 EC2 인스턴스에 접근할 수 있는 것을 의미한다.(소스 유형의 위치 무관이기 때문에) 더불어 HTTP 요청에 대해서도 접근할 수 있도록 보안 그룹 규칙 추가 버튼을 클릭하여 HTTP 유형의 Port 번호 80번 요청에 대해서도 추가함.

  7. 스토리지 구성 : EC2도 하나의 컴퓨터이기 때문에 HDD, SSD와 같은 저장 공간을 EBS( Elastic Block Storage)라고 부른다. 즉, EBS는 EC2안에 부착되어 있는 하나의 하드디스크 라고 생각하면 된다. EBS와 같은 저장 공간의 포괄적인 개념이 Storage, Volume 이다.
    프리티어 서비스의 경우 30GB 까지 무료로 사용할 수 있다.

  8. 인스턴스 시작 버튼 클릭하여 인스턴스 생성하기


생성한 인스턴스 확인하기

  • 퍼블릭 IPv4 주소 : 빌려온 컴퓨터의 IP 주소

  • 인스턴스 상태 : 해당 빌려온 컴퓨터의 상태를 의미한다.

  • 인스턴스 상태 select 태그의 값
    : 인스턴스 중지 / 인스턴스 시작 / 인스턴스 재부팅 / 인스턴스 최대 절전 모드 / 인스턴스 종료
    1. 인스턴스 중지 ? 컴퓨터 끄기
    2. 인스턴스 시작 ? 컴퓨터 부팅
    3. 인스턴스 종료 ? 인스턴스 삭제를 의미한다.

  • 우측 상단의 연결 버튼 EC2 Instance Connect을 사용하여 연결 : AWS 홈페이지에서 원격으로 접속하는 방식을 의미한다.

  • 실제 서버 운영 시 자주 확인하게 될 서버의 모니터링 내용

인스턴스 연결 후 Setting

탄력적 IP 연결하기

  • 탄력적 IP란 ? EC2 인스턴스를 생성하면 IP를 할당 받지만 이는 임시적인 IP(IP 주소의 부족화 현상으로 인하여 안쓰는 IP에 대해서는 반납하기 위함)로 EC2 인스턴스를 잠깐 중지시켰다가 다시 실행시켜보면 IP가 바뀐다. 이는 번거로움을 초래하기 때문에 중지 후 재실행 시에도 바뀌지 않는 고정 IP를 탄력적 IP라고 한다.

    이후에 기본으로 설정된 값으로 "할당" 버튼 클릭한 뒤

    Name 란에 사용할 이름을 직관적으로 알아볼 수 있게 명시하여 작성한다.


    이후에 실행 중인 인스턴스를 연결해주면 탄력적 IP를 사용 중인 인스턴스에 고정된다.

Route 53

정의

도메인을 발급하고 관리해주는 서비스를 의미한다. 즉 DNS(Domain Name System) 서비스 이다.
더불어, HTTPS의 경우 IP 주소는 적용할 수 없기 때문에 도메인 주소가 있어야만 HTTPS를 적용할 수 있다. 이 때문에 특정 서비스를 운영할 때 도메인은 반드시 사용하게 된다.
단, AWS Route 53이 아니라 gabia, whois등 다양한 도메인을 구매하고 관리할 수 있는 서비스가 있기 때문에 현업에서는 AWS Route 53만을 고집하지는 않는다.

DNS

profile
꾸준한 노력으로 문제를 해결하는 자기 주도적 개발자의 Velog입니다.

0개의 댓글