랜챗 프로젝트 서버 구축

·2023년 9월 9일
0

Project

목록 보기
2/5
post-thumbnail

💻 < EC2란 >

이번 프로젝트 서버로 AWS에서 EC2인스턴스를 구축해야한다.

🏁 EC2란??
Amazon Elastic Compute Cloud의 줄임말로서 AWS에서 제공하는 클라우드 컴퓨팅이다.
즉, 하드웨어 없이 간편하게 독립된 컴퓨터를 임대해주는 서비스라고 생각하면 된다.

EC2의 구성 (Instance, EBS, AMI)
일반적인 서버는 컴퓨팅(CPU, RAM), 하드디스크, 랜카드로 나뉜다.

EC2에 대입해보면,
• 컴퓨팅에 해당하는 Instance
• 하드디스크에 해당하는 EBS
• 랜카드에 해당하는 ENI
+ 랜카드: 한 네트워크 안에서 컴퓨터간 신호를 주고받는 데 쓰이는 하드웨어

🏁 Instance 역할
: 연산에 관한 (CPU, 메모리)처리를 한다.

🏁 EBS 역할
: 데이터를 저장하는 역할 즉, 가상 하드디스크
일반적으로는 범용 타입인 GP3을 선택한다.

🏁 AMI 란?
EC2 인스턴스를 실행하기 위한 정보를 모은 단위
즉 CPU 프로세서 타입이라던지 저장공간 용량은 몇인지, OS는 윈도우인지 리눅스인지 등의 정보를 저장하는 단위

예를 들어 나는 리눅스가 깔린 EC2 사용 할 것이다! 하면,
인스턴스를 생성하고 OS를 일일히 설치해서 구성하는 게 아닌, 리눅스 환경 세팅이 된 리눅스 템플릿 AMI를 EC2에 적용시켜 간편하게 리눅스 컴퓨터를 장만하는 원리이다.

📩📨 <DNS와 인스턴스 그리고 IP 간의 통신>

그 과정에서 탄력적 IP인 EIP(Elastic IP Address)를 사용해야 한다는 글과, DNS와 인스턴스 그리고 IP 간의 통신에대해 잘 몰라 공부하게 되었다.

🏁 DNS

→ 이는 사람이 이해하기 쉬운 도메인 이름 (예: www.example.com)을 컴퓨터가 이해하기 쉬운 IP 주소 (예: 203.0.113.1)로 변환하는 역할을 합니다.
→ 클라이언트 컴퓨터나 서버는 DNS 서버에 도메인 이름을 요청하고, DNS 서버는 해당 도메인의 IP 주소를 반환합니다.

즉, 우리가 구축한 EC2인스턴스에 도메인 이름을 IP 주소로 변환해주는 것이다.

🏁 EC2 인스턴스 (Amazon Elastic Compute Cloud)

→ 가상화된 서버 (인스턴스)를 호스팅합니다.

즉, 우리가 개발하는 프로젝트의 가상 서버가 된다.

🏁 IP 주소 (Internet Protocol Address)

→ 탄력적 IP와 고정 IP??

🏁 상호작용

  1. 사용자가 웹 브라우저에 도메인 이름 임력
  2. DNS에서 도메인 이름 -> IP주소로 변경, 반환
  3. 웹 브라우저는 이 IP주소를 사용하여 해당 웹 서버(EC2 인스턴스)와 통신하고, 웹 페이지를 요청하고 받아온다.

👀 < 탄력적 IP인 EIP(Elastic IP Address)를 사용해야 한다 >

🏁 EIP란?

인터넷을 통해 접속할 수 있는 고정적인 공인 IP주소를 할당할 수 있고, 인스턴스에 연결할 수 있는 서비스다.
모든 인스턴스 또는 네트워크 인터페이스에 탄력적 IP주소를 연결 가능하다.
EIP를 할당받고 삭제하기 전까지 IP주소를 쭉 유지할 수 있다.

EIP를 사용해야 하는 이유는?

EC2를 올리면 ENI(Elastic Network Interface)인 가상 랜카드가 따라온다.
이 ENI에 Public IP를 달게 되면 외부에서 접속할 수 있게 된다.
하지만, Public IP는 고정된 IP가 아니라 유동적인 IP주소이다.
즉, EC2인스턴스를 중지하고 새롭게 실행 상태로 변경하면, 기존에 할당 받은 IP주소가 변경된다.
만약 DNS 도메인에 EC2 인스턴스의 IP주소를 연결해놓았는데, 이 IP주소가 바뀌게 된다면 통신에 문제가 발생한다.

따라서 Elastic ip는 일종의 고정된 퍼블릭 ip로 ENI에 붙여준다.
그러면 유저가 서비스를 멈췄다가 다시 가동해도 Elastic ip는 변하지 않기 때문에 계속 통신을 할수 있게 된다.

<RDS 란?>

RDS 그거 뭐무머머 대단한 거니?? 좋은 게 뭔데?

Amazon RDS는 관리형 데이터베이스 서비스로, 대부분의 관리 작업을 담당한다.
Amazon RDS를 사용하면 번거로운 수동 작업을 처리할 필요가 없어 애플리케이션과 사용자에게 집중할 수 있다.

  1. Amazon RDS는 백업, 소프트웨어 패치, 자동 장애 감지 및 복구를 관리합니다.
  2. 자동화된 백업을 설정하거나 고유학 백업 스냅샷을 수동으로 생성할 수 있다. 이를 통해 데이터베이스를 복원할 수 있다. Amazon RDS 복원 프로세스는 안정적이고 효율적이다.
  3. 데이터베이스 패키지 보안 외에도 RDS 데이터베이스에 액세스할 수 있는 사용자를 제어할 수 있습니다. 그러기 위해서는 AWS Identity Access MAnagement(IAM)를 사용하여 사용자 및 권한을 정의하면 된다.

Spring Boot + AWS RDS (MySQL) 연동하기
링크텍스트

이 글을 참고하여 연동하면 된다.

출처

  1. 링크텍스트

  2. 링크텍스트

profile
기회를 잡기 위해 준비하자 !

0개의 댓글