본문 바로가기

Development/Server

AWS 서버 환경 배포 - AWS EC2

서버 배포

외부에서 본인이 구현한 서비스를 접근하게 하려면 24시간 작동하는 서버가 필요하며, 세 가지 선택지가 존재합니다.

 

  • 전반적으로 트래픽이 일정하게 유지되는 경우
    • 24시간 PC 구동
    • 호스팅 서비스(Cafe 24, 코리아호스팅 등)
  • 특정 시간에 트래픽이 몰리는 경우
    • 클라우드 서비스(AWS, AZURE, GCP 등)

클라우드란?

인터넷(클라우드)를 통해 서버, 스토리지(파일 저장소), DB, 네트워크 등의 컴퓨팅 서비스를 제공하는 것

 

  • IaaS : Infrastructure as a Service
    • 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스
    • 가상머신, 스토리지, 제트워크, 운영체제 등 IT 인프라를 대여해줌
    • AWS의 EC2, S3 등
  • Paas : Platform as a Service
    • IaaS를 한 번 더 추상화한 서비스
    • 많은 기능이 자동화되어 있음
    • AWS의 Beanstalk, Heroku 등
  • SaaS : Software as a Service
    • 소프트웨어 서비스
    • 구글 드라이브, iCloud, 드랍박스 등

 

AWS의 장점

  • 첫 가입 시, 1년간 대부분 서비스 무료로 제공 (단, 서비스 마다 제한이 존재함)

  • 기본적으로 지원하는 기능(모니터링, 로그관리, 백업, 복구 등)이 많아 개발에 더 집중할 수 있음

  • 국내 자료와 커뮤니티가 활성화되어 있음

AWS 회원가입

https://aws.amazon.com/ko/

 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

제조 AWS를 활용한 Siemens의 에너지, 의료 서비스, 제조 분야 혁신 Siemens가 AWS를 사용하여 어떻게 문화를 바꾸고 혁신을 장려하며 비즈니스 성과를 창출했는지 알아보세요. 자세히 알아보기  업종

aws.amazon.com

- 학습을 위해 '무료로 가입하기' 선택 후 가입 진행

 

EC2 인스턴스 생성

EC2란?

  • Elastic Compute Cloud

  • AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버

  • 프리티어 플랜 제한 사항
    • t2.micro의 사양만 가능
    • 월 750시간의 제한 (초과시 비용 부과)

생성하기

[1] 인스턴스 시작

  1. 콘솔로 로그인한 뒤 EC2를 선택해 오른쪽 상단에서 원하는 리전 선택
  2. 리전: AWS 서비스가 구동될 지역
  3. '인스턴스 시작' 버튼 클릭
    1. 인스턴스 생성의 첫 단계는 AMI(Amazon Machine Image, 아마존 머신 이미지) 선택
    2. AMI는 EC2 인스턴스 시작에 필요한 정보를 이미지로 만들어 둔 것

[2] AMI 선택

현재 학습하는 책에서는 Amazon Linux AMI 1을 선택하나 현재 서비스가 종료되어 Amazon Linux 2 AMI로 대체함
https://aws.amazon.com/ko/blogs/korea/update-on-amazon-linux-ami-end-of-life/ 
  • Amazon Linux 2 AMI는 센토스(Centos) 7 버전 자료를 그대로 사용할 수 있음

[3] 인스턴스 유형 선택

 

[4] 인스턴스 세부정보 구성

 

[5] 스토리지 구성

  • 스토리지 : 하드디스크라 부르는 서버의 디스크를 포함해 이야기하며, 서버의 용량을 얼마나 정할지 선택
  • 기본 8GB, 최대 30GB까지 프리티어로 가능함
  • 고로 크기를 30으로 수정

[6] 태그 추가

  • 태그 : 여러 인스턴스를 표현하는 여러 이름으로 사용 (즉, EC2의 이름 붙이기)
  • 태그 추가 버튼 선택 후 태그 내용 입력

[7] 보안 그룹 구성

  • 보안 그룹은 방화벽을 이야기하며, '서버로 특정 포트 외에 허용하지 않는다.' 역할을 하는 방화벽이 AWS에서 보안 그룹으로 사용됨
  • 소스 : '내 IP' 선택

  • 주의사항
    • 22 : AWS EC2에 터미널로 접속 할 때를 이야기 함
    • pem 키가 없으면 접속이 안되어 전체 오픈(0.0.0./0, ::/0)으로 하는 경우 종종 있음
    • 이 상태에서 파일 공유 디렉토리나 깃 허브 등에 pem 키가 실수로 노출되면 보안에 문제가 발생함
    • 보안은 강할수록 좋으니, pem 키 관리와 지정된 IP에서만 SSH에 가능하도록 하는 것이 안전함
  • SSH에서 '내 IP'를 선택한 경우, 현재 접속한 장소의 IP가 자동으로 지정
  • 집 외에 다른 장소에서 접속할 때는 해당 장소의 IP를 다시 SSH 규칙에 추가하는 것이 안전함

 

[8] 기존 키 페어 선택 또는 키 페어 생성

 

  • 인스턴스 접근을 위해 pem 키(비밀키)가 필하기에 마지막 단계에서 할당할 pem 키 선택함
  • 인스턴스는 지정된 pem 키(비밀키)와 매칭되는 공개키를 가지고 있어, 해당 pem 키 외에 접근을 허용하지 않음(일종의 마스터키)
  • 키 페어 이름 작성 후 '키 페어 다운로드' 버튼 클릭
  • 중요한 파일이니 잘 관리할 수 있는 디렉토리에 저장하기

[9] 인스턴스 시작

  • '지금 인스턴스를 시작 중입니다.' 밑에 인스턴스 ID 클릭

 

  • 위와 같이 인스턴스가 생성 중인 것을 확인할 수 있음

 

  • 중요사항
    • 인스턴스도 하나의 서버이기에 IP가 존재함
    • 인스턴스를 생성하거나 다시 시작할 때도 새 IP가 할당됨
    • 매번 접속 IP가 변경된다면 접근할 때마다 IP 주소를 확인해야 하기에 고정 IP를 갖게 해야함

 

[10] 고정 IP 할당

(1) EIP 할당

  • EIP : Elastic IP (탄력적 IP) = 고정 IP
  • 좌측에 탄력적 IP 카테고리로 이동

(2) 탄력적 IP 주소 할당

 

  • Amazon의 IPv4 주소 풀 선택 후 할당 버튼 클릭

 

  • 할당 성공 확인 후 오른쪽 상단에 탄력적 IP 주소 연결 선택

  • 리소스 유형 : 인스턴스
  • 인스턴스의 텍스트 박스를 클릭하면 인스턴스 값이 나타남
  • 인스턴스 탭으로 이동해 퍼블릭, 탄력적 IP 모두 잘 연결 되었는지 확인

 

  • 주의사항
    • 탄력적 IP를 생성하고 EC2 서버에 연결하지 않으면 비용이 발생함
    • 고로 생성한 탄력적 IP는 무조건 EC2에 바로 연결해야 함
    • 더 사용할 인스턴스가 없을 때에도 탄력적 IP를 삭제해야 함

 

https://sky-abraxas.tistory.com/87

 

AWS EC2 서버에 접속하기 - Mac, Linux

서버 접속하기 터미널 실행 명령어 입력 ssh -i (pem 키 위치) (EC2의 탄력적 IP 주소) 단계 단축 방법 pem 파일을 ~/.ssh/ 로 복사하는 방법으로, ~/.ssh/ 디렉토리로 pem 파일을 옮겨 놓을 경우 ssh 실행 시 p

sky-abraxas.tistory.com