AWS 서버 구축

지수·2023년 4월 11일
1
post-thumbnail

AWS EC2 서버 구축하는 프로세스와 관련 개념을 정리해보자

관련 개념

EC2 = 가상 서버

  • EC2(Elastic Computed Cloud)는 AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버
    ex. AWS에서 리눅스 서버 혹은 윈도우 서버를 사용합니다 = EC2를 사용합니다.
  • EC2를 사용하면 서버, OS, 소프트웨어 등을 세트로 사용할 수 있음
  • 다양한 사양이 준비되어 있고 t2.micro는 프리티어 사용이 가능함

인스턴스 = 가상 머신

  • AWS EC2 서버는 인스턴스로 생성
  • 인스턴스란 '실체'라는 의미이며 실제 가동되고 있는 가상화 컴퓨터를 말함
  • '서버' 라고 하면 위의 실체와 물리적 서버를 통틀어 이야기하는 것
  • '인스턴스'는 서버로 가동되고 있는 가상 머신를 말함

리전 = 서비스 지역

  • AWS 서비스가 구동될 지역
  • AWS는 도시별로 클라우드 센터를 지어 해당 센터에 구축된 가상머신들을 사용할 수 있게 함
  • 국내 서비스의 경우 서울 리전을 선택하면 됨

AMI = 기본 설정 정보

  • AMI(Amazon Machine Image)는 EC2 인스턴스를 시작하는데 필요한 정보를 이미지로 만들어 둔 것
  • 인스턴스라는 가상 머신에 OS 등을 설치할 수 있게 밀어넣는 기본 설정 정보
  • EC2 인스턴스 생성 시 자신이 필요한 설정을 고려하여 이미지를 선택하면 OS, 아키텍처 타입, 저장공간 용량 등 기본 설정이 끝난 상태의 서버를 만들 수 있음

VPC = 가상 네트워크

(이 포스팅에 이미지와 함께 잘 정리되어있음. 아래는 이해한 바를 요약함)
VPN(Virtual Private Network, 가상사설망)

  • 같은 네트워크 상에 있는 두 네트워크를 논리적으로 다른 네트워크인 것처럼 동작하는 것

VPC(Virtual Private Cloud)

  • VPC는 VPN처럼 같은 네트워크 상에 있는 것들을 다른 네트워크인 것처럼 동작하게 함
  • VPC가 없다면, EC2 인스턴스들이 서로 복잡하게 연결됨
    • 이런 구조는 시스템 복잡도를 높이고, 하나의 인스턴스만 추가되어도 모든 인스턴스를 수정해주어야 함
    • VPC를 적용하면, 모든 인스턴스가 서로 연결될 필요 없이 각 VPC별로 네트워크를 구성, VPC별로 다른 네트워크 설정이 가능함
    • 각각의 VPC는 독립된 네트워크처럼 작동하기 때문에 어떤 하나에서 변경사항이 생겨도 다른 것에 영향을 주지 않음

서브넷 = 분할된 작은 네트워크

  • 하나의 네트워크를 분할하는 것 = 서브네팅
  • 분할되어 나눠진 작은 네트워크 = 서브넷
  • 네트워크를 운영중인 서비스 규모에 맞게 분할하여 낭비되는 IP 자원을 최소화하기 위함
  • VPC를 잘게 쪼개어 개별 네트워크를 만들어 사용
  • 서브넷 안에 EC2, RDS 등 리소스를 위치시킴

보안 그룹 = 방화벽

  • 보안그룹 규칙을 통해 EC2 인스턴스로 들어오고 나가는 트래픽을 제어함
    ex. SSH 접속 포트인 22번 포트는 개발자 PC만 접속 가능하도록 허용하고, 서비스 포트인 80 포트는 모두에게 허용할 수 있도록 설정 가능
  • 인바운드 : 외부 -> 인스턴스 요청
  • 아웃바운드 : 인스턴스 -> 외부 요청 (디폴트로 모두 허용)

탄력적 IP = 고정 IP

  • 탄력적 IP = Elastic IP, EIP
  • AWS 인스턴스 생성 시에 항상 새 IP를 할당함
  • 같은 인스턴스를 중지했다가 다시 실행할 때에도 새 IP가 할당됨
  • 중지했다가 켤 때마다 IP가 바뀌어서 접속할 때마다 IP 주소를 확인해야함
  • 이런 문제가 없도록 고정 IP를 할당 = AWS의 고정 IP가 EIP
  • 탄력적 IP를 EC2에 연결하지 않으면 비용 발생함, 만들면 바로 연결!

프로세스

1. AWS EC2 인스턴스 생성

2. 탄력적 IP 생성 및 인스턴스와 연결

3. 서버 접속 후 셋팅

  • 타임존 변경
    : 기본은 미국 시간이기 때문에 한국 시간으로 변경
# 기본 타임존 설정 삭제
sudo rm /etc/localtime
# 한국 시간으로 타임존 설정
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
# 확인
date
  • Hostname 변경 (참고)
    : 기본은 IP만 노출, IP만으로 어떤 서비스의 서버인지 구분할 수 없어서 Hostname 지정
sudo hostnamectl set-hostname 원하는호스트명
# hosts에 호스트명 등록
sudo vim /etc/hosts # 127.0.0.1 등록한호스트명
hostname # 해서 나오는지 보고
curl 호스트명 # 해서 등록 확인
  • 깃 설치 & 클론
# 깃 설치
sudo yum install git
git --version # 설치 됐는지 확인

# 클론
git clone 주소
ll # 클론 됐는지 확인
  • 파이썬 설치
    - 내가 파이썬을 쓸 거라서 파이썬 설치, 자바 쓸 거면 자바, JDK 설치하면 됨
    • ubuntu 18.04부터는 python3이 기본으로 구성되어있다고 함 (python2 설치가 필요하다면 여기로)

    • pip3은 따로 설치해야 함

      # pip3 설치
      sudo apt-get install python3-pip
      
      # 확인
      python3 --version
      pip3 --version
      
      # pip3 최신으로 업데이트
      sudo yum pip3 install --upgrade pip
    • 그 외 필요한 패키지 설치

      # pip3에 설치
      pip3 install 설치할패키지명
      
      # 확인
      pip3 list
      
      # requirements.txt가 있다면 한 번에 설치
      pip3 install -r requirements.txt
profile
사부작 사부작

0개의 댓글