0부터 시작하는 Django 공부 - AWS를 이용해 배포해보자 1

Jaehong Lee·2022년 6월 27일
0
post-thumbnail

0. AWS VPC

  • VPC란 VIRTUAL PRIVATE CLOUD로 AWS 계정 전용 가상 네트워크다
  • Client -> 인터넷 게이트 웨이-> VPC -> 라우터 -> 라우터 테이블-> NACL -> 서브넷 진입 -> Security Group -> Instance
  1. VPC 구축을 위해서는 PRIVATE IP 대역에 맞추어 VPC 아이피 범위를 설정한다. 이 VPC를 통해 각 VPC별로 네트워크를 구성하여 독립된 네트워크로 작동할 수 있게 한다
  2. 서브넷이란 VPC의 IP 주소 범위로, VPC를 나눌 수 있다. 이를 통해 더 많은 네트워크 망을 만들 수 있다
  3. 네트워크 요청이 발생하면 DATA는 서브넷에서 라우터를 향해 간다. 이때, 라우터에서 라우팅 테이블에 정의된 내용을 참조하여 요청을 처리한다. 주로 네트워크 범위와 그에 맞는 local과 같은 타겟이 적혀있다
  4. 라우팅 테이블에서 local로 명시된 범위 이외의 네트워크 대역은 인터넷 게이트 웨이로 간다. 이는 vpc와 인터넷을 연결해주며, 라우터로 가게되면 IGA( 인터넷 게이트웨이 )로 가라고 명시된 범위의 네트워크 대역은 인터넷 게이트 웨이로 보내진다. 이때 인터넷과 연결된 서브넷을 PUBLIC 서브넷, 그렇지 않은 서브넷을 PRIVATE 서브넷이라고 한다
  5. 보안그룹은 STATEFUL한 방화벽으로 인스턴스 레벨의 보안이다. 요청 정보를 저장하여 응답하는 트래픽 제어를 하지 않는다
  6. ACL은 서브넷 레벨의 보안으로 STATELESS하게 작동된다. 이를 설정하면 서브넷 내부의 인스턴스들에 바로 적용된다. 요청 정보를 따로 저장하지 않으므로 응답하는 트래픽에 대한 설정을 해야한다
  7. NAT 게이트웨이는 PRIVATE 서브넷이 인터넷과 통신하기 위한 OUTBOUND INSTANCE이다. PRIVATE 서브넷에서 외부로 요청하는 OUTBOUND 트래픽을 PUBLIC 서브넷의 NAT 게이트웨이가 받아 인터넷 게이트웨이와 연결시킨다
  • stateful : 세션 '상태'를 포함한 Client와의 세션 정보를 server에 저장하고, 세션의 상태에 기반하여 응답을 보낸다. ( TCP )
  • stateless : server의 응답이 Client와의 세션 '상태'와 독립적으로 세션 정보를 server에 저장하지 않는다. 따라서 통신과정중에 server가 바뀌어도 되므로 수평 확장에 유리하다. 따라서 사용자는 추가 Data를 요청할때 보내야된다 ( UDP, HTTP )

1. AWS 가입

2. EC2 접속

  • 인증이 완료됬다면 EC2에 접속합니다
  • 접속하면 다음과 같은 EC2 대시보드가 나옵니다
  • 사용자에 맞게 지역도 바꿔주자 ( 서울 )

3. 클라우드란

  • 네트워크란? 노드들이 통신기술을 이용해 그물망 처럼 연결되어 Data를 공유하는 디지털 전기 통신망이다. 즉, 독립적인 다수의 장치가 영역내에서 물리적 통신 채널을 이용해 직접 통신할 수 있게 지원해주는 데이터 통신 체계이다
  • 서버란? 클라이언트에게 네트워크를 통해 Data와 서비스를 제공해주는 프로그램
  • 인터넷이란? 전세계 컴퓨터를 하나로 연결하는 컴퓨터망으로 클라이언트와 서버로 구성되있으며, TCP/IP Protocol을 사용한다
  • 클라우드란 무엇일까? 인터넷 기반의 컴퓨팅으로 인터넷에 가상화된 서버에 SW와 DB를 두고, 사용자가 사용한만큼 돈을 지불하고 가상화된 서버에 저장된 컴퓨터 리소스와 같은 프로그램이나 Data, 혹은 제공해주는 서비스를 가져와 사용할 수 있게 해주는 서비스

4. AWS에서 사용할 서비스

  • AWS는 한 달에 750시간이 무료이다.
  • EC2 : 엘라스틱 클라우드 컴퓨팅으로 클라우드 상에서 이용 가능한 가상머신( 인스턴스 )을 불러와 사용자만 접속할 수 있게 해주는 것. 안전하고 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹 서비스. ( 가상 환경 ) 이 환경에서 사용하는 가상의 하드디스크를 BLOCK 스토리지 서비스( EBS )라고 한다
    • 이것을 이용해 웹 서버 설치 및 Django 연동을 해볼 것이다. apache와 node balance 사용해볼 예정
  • RDS : RELATION DATABASE SERVISE로 DB 서비스이다. 클라우드 상에서 이용 가능한 가상 머신인데 DB 서버 프로그램만 다룰 수 있다. DB외의 작업은 불가능하다. 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있게 해주는 웹 서비스 ( 가상 DB )
  • S3 : 객체 스토리지 서비스로 인터넷 저장소다. 운영체제가 있어야 사용할 수 있는 BLOCK 스토리지 서비스와 다르게 S3는 운영체제가 필요없이 저장소만으로 작동한다. 즉, 파일 서버의 역할을 하는 서비스. 또한 파일에 대한 접근 권한을 지정 할 수 있어서 서비스를 호스팅 용도로 사용하는 것을 방지 할 수 있다
    • EC2를 운영체제로, RDS를 DB 서버로, S3를 저장소 용도로 사용할 것 이다

5. 주의해야 할점

  • DATABASE LEGION을 항상 확인하자. DATA가 해외로 이동할때 돈이 나올 수도 있다
  • 사용할 때 가장 중요한 것은 돈 안나오게 해야한다
  • 항상 결제 대시보드를 확인해보자
  • AWS에 기밀정보를 저장할 수 없는 이유 : LEGION은 서울에 있지만, 백업을 해외 서버에 저장하기 때문이다

6. EC2 사용해보기

  • 인스턴스 : 가상 컴퓨팅 환경
  • 볼륨 : 가상 하드디스크
  • 보안 그룹 : 방화벽
  • 키 페어 : 한 쌍의 열쇠로 Amazon EC2 인스턴스에 연결할 때 자격 증명 입증에 사용하는 보안 자격 증명 집합입니다
  • 6.1 EC2 인스턴스 생성

    • 인스턴스 -> 인스턴스 시작
    • WINDOW 서버 운영체제를 선택한다. 프리 티어는 무료 버전이다
    • 새 키 페어 생성
    • key 페어 파일 이름을 설정해준다
    • key 페어 파일이 생기는데, 이 파일이 있어야 해당 인스턴스에 접속이 가능해진다
    • RDP는 원격 접속이 가능하게 해주는 것으로, 보안 그룹에서 허용을 해줘야 한다. ( RDP란? 원격 데스크톱 프로토콜로 다른 컴퓨터에 그래픽 사용자 인터페이스를 제공하는 프로토콜이다 )
    • 인스턴스가 생성됬다!
    • 이 두 상태가 통과되야 사용할 수 있다
  • 6.2 인스턴스 연결

  • 사용할 인스턴스를 체크하고 연결한다

  • 사용할 RDP를 다운해준다. 이때 접속 암호가 필요한데, 우리는 키 페어로 암호 해독한다

  • 다운받은 키 페어 파일로 암호 해독하여 해독된 암호를 RDP에 입력해준다

  • 다운받은 RDP 파일을 눌러 실행한 후, 위의 암호를 복붙해 암호란에 입력하면 된다

  • 6.3 서버 컴퓨터에 python 설치

  • 원격 데스크탑이 실행됬다. 우리는 이 컴퓨터를 서버 컴퓨터로 사용할 것이다. 이제 python 파일을 가져와 설치해준다

  • 설치 확인)

  • 6.4 웹 서버 설치

  • vc 재배포 파일을 설치하고, Apache httpd zip 파일을 압축해제 후 c드라이브에 옮긴다

  • 웹 서버 실행 준비가 끝났다

  • 6.5 웹 서버 실행 및 확인

  • 위 httpd 웹 서버 실행 파일을 실행한다

  • netstat -ano를 통해 확인하면 Http 포트인 80이 LISTENING 상태가 되어 있다

profile
멋진 엔지니어가 될 때까지

0개의 댓글

관련 채용 정보