EC2(Elastic Compute Cloud), EBS, ELB ,Route53

2022. 5. 10. 07:57
  • EC2의 개념
  • EBS의 개념
  • ELB의 개념
  • Route53

1.EC2

  • 클라우드 공간에서 크기가 유연하게 변경되는 서버를 제공

 

EC2 사용시의 다양한 지불방법

  • On-demand : 시간 단위로 가격이 고정되어 있음. 즉 시간에 비례한 가격을 지불
    • 서버를 열고 닫는 게 자유롭기 때문에 개발 시작 시간 및 개발 종료 시간을 모르는 경우에 많이 사용.(특히 단기간)
    • Reserved : 일정한 크기의 EC2 용량을 조금 더 저렴하게 사용가능. 대신 1-3년간 시간을 정해서 대여(시간별로 할인이 다름)
    • 개발의 시작과 끝이 예상가능할 경우.
  • Spot : 마치 경매의 입찰방식을 통한 가격을 적용. 가장 큰 할인율을 적용받음
    • 단순한 비용절감에 가장 효율적인 방안. 인스턴스의 시작/끝시점이 별로 중요하지 않을 경우에 많이 사용. 서버비용에 따라 지멋대로 서버가 열렸다 닫혔다 하기도 함

2.EBS(Elastic Block Storage)

  • EC2 인스턴스에 부착되는 가상의 저장공간. 마치 컴퓨터의 하드디스크 같은 것임
    • 즉 하드디스크 없는 컴퓨터가 아무것도 할 수 없는 것처럼, EC2 혼자서는 아무것도 못한다
  • EBS의 디스크 볼륨 위에 File System이 생성된다(즉 EBS에 보통의 파일시스템처럼 접근이 가능하다)
  • EBS는 특정 Availability Zone에 생성된다

 

추가)AZ(Availability Zone)

  • 각각의 region마다 여러개의 Availability Zone이 생성됨
  • AZ는 일종의 백업저장소임. 중심부(원본데이터)로부터 복사본인 AZ가 뿌려지며 한쪽 서버가 망가지거나 셧다운 되었을 경우, AZ라는 백업을 통해 서비스 제공을 가능케 해주는 일종의 Disaster Recovery임
  • EC2와 같은 경우도, 서버이므로 백업을 위해 AZ를 설정해줘야 함. 그러면 EC2의 EBS가 AZ에 백업으로 저장됨

 

EBS 볼륨타입

  • SSD군
    • General Purpose SSD(GP2)
      • 최대 10k IOPS를 지원하며 1GB당 3IOPS속도가 나옴
      • SSD답게 속도가 매우빠름. 성능/가격면에서 우수해서 , SSD군중에서는 가장 보편적으로 사용됨
    • Provisioned IOPS SSD (IO1)
      • 극도의 I/O률을 요구하는 환경(예시 : 매우 큰 DB관리)  주로 사용됨. 10K 이상의 IOPS를 지원함
      • 방대한 양의 데이터를 주고받을 때 우수함. 그러나 그만큼 비쌈
  • Magnetic/HDD군
    • Throughtput Optimized HDD(ST1) : 운영체제가 없음. 단순히 데이터의 보관소(창고)
    • CDD HDD(SC1) : 운영체제 X. 접근이 잦지않지만 보관해야할 정보를 보관할 때 주로 사용. 매우 저렴
    • Magnetic(Sandard) : 디스크 1GB당 가장 싼 비용. Boot volume으로 사용가능(운영체제 ㅇㅋ)

3.ELB(Elastic Load Balancers)

  • 수많은 서버의 흐름을 한쪽으로 치우치지 않고 균형있게 흘려보내는데 중추적인 역할을 함
    • 하나의 서버로 traffic이 몰리는 병목현상(bottleneck) 방지
  • EC2 인스턴스는 셧다운이나 시간초과와 같은 이유로 Unhealthy 상태가 됨
    • EC2가 unhealthy해질 경우, ELB는Traffic의 흐름을 Unhealthy한 인스턴스에서 healthy한 instance로 바꿔줌

 

ELB의 종류

1. Application Load Balancer(ALB)

  • OSI Layer7, 즉 네트워크의 가장 바깥 계층에서 작동됨
    • 따라서 HTTP, HTTPS와 같은 traffic의 load balancing에 가장 적합함(가장 밖에서 통신자체의 방향을 컨트롤) -> 고급 request 라우팅 설정을 통하여 특정 서버로 request를 보낼 수 있음(통신의 루트를 변경시켜줄 수 있다)

 

2. Network Load Balancer

  • OSI Layer4에서 작동됨
  • 매우 빠른 속도를 자랑하며 Production환경에서 종종 쓰임
    • 극도의 performance가 요구되는 TCP traffic에서 적합함
    • 초당 수백만개의 request를 아주 미세한 delay로 처리 가능

 

3. Classic Load Balancer :

  • 현재 Legacy로 간주됨, 따라서 거의 쓰이지 않음
  • OSI 7,4 모두에서 작동
    • Layer7의 HTTP/HTTPS 라우팅 기능 지원
    • Layer4의 TCP traffic 라우팅 기능도 지원

 

X-Forwarded-For(XFF) 헤더

  • XFF는 HTTP header중 하나로 웹 서버에 요청한 Client의 ip 를 식별하기 위한 표준임
  • 일반적으로 클라이언트가 웹서버에 요청을 보낼 때, 웹 서버의 앞에 있는 Load balanccers나 proxy server, cache server 등을 거쳐서 요청이 웹서버에 전달된다
  • 이때, 웹서버는 실제 클라이언트의 ip가 아닌 자기 바로 앞에 있는 proxy서버나 loadbalancer의 ip를 요청을 보낸 ip로 인식하고 로그를 남긴다
  • 이때 웹서버에서 XFF HTTP 헤더에 있는 클라이언트 ip를 찾으면, 실제 요청한 클라이언트의 ip를 알 수 있다.
  • 결론적으로 EC2에서 ELB를 거쳐서 들어오는 요청의 원 주소(IP)를 확인하려면, 들어온 요청의 XFF HTTP 헤더를 확인해야 한다.

4. Route 53

  • AWS에서 제공하는 DNS 서비스
    • EC2 , S3 Bucket, Load Balancer에 대한 서버이름을 구현
  • 그냥 단순히 도메인을 구매하는 서비스라고 생각하면 됨
  • 도메인 > 등록된 도메인 > 도메인 등록 > 적당히 이름 선택 >정보입력 > 이메일 검증 > 주문완료
  • 도메인의 등록까지 보통 3일이 걸림. 대기중인 걸 확인하려면 '대기중인 요청'에 들어가면 됨

5. EC2실습

  • EC2 대시보드 > 인스턴스 시작

 

인스턴스 생성과정

  • 애플리케이션 및 OS이미지
    • Amazon Linux(인프런 실습)
    • Ubuntu선택(wecode실습)
  • 인스턴스 유형
    • 프리티어 사용가능한 인스턴스 선택(t2.micro)
  • 키페어 생성
    • 새 키페어 생성
    • RSA / .PEM으로 생성
  • 네트워크 설정
    • 서브넷
      • ip주소 사용가능
    • Add Security Group Rule
      • HTTP(유형) , TCP(프로토콜) , 포트범위(80), 위치무관 > AWS인강의 방식
      • 장고를 쓸 경우, 사용자 지정 TCP(유형), 8000(포트범위), 위치무관 > 위코드의 방식
  • 고급세부정보
    • 종료방식 : 중지 선택. 만약 종료를 선택시, EC2서버 셧다운시 서버(EC2)가 삭제됨
    • 종료방지 기능 : 활성화 선택

 

  • 스토리지 추가 부분은 그대로(8g) 두면 됨
  • 인스턴스 생성 후 잠시 기다리면 인스턴스가 실행됨(running)

 

인스턴스 접속

  • 터미널을 키고 아까 받은 퍼블릭키가 있는 곳으로 경로를 이동
  • 인스턴스 선택 > 연결 > SSH클라이언트에 들어가서 3번의 코드를 입력
  • 그 후, 4번의 코드를 순차적으로 터미널에 입력(AWS인강방식)
    • 추가)위코드 강의에서는 이부분에 대해 다음과 같이 해줌.(인강방식과 유사)
#형식
sudo ssh -i '키이름' ubuntu@'EC2public ipv4 주소'
#예시
sudo ssh -i hangover.pem ubuntu@3.38.191.218
  • 그러면, 진짜 연결할거냐고 물어보는데 거기에 yes라고 대답하면 그냥 EC2 서버에 접속된 거임(개간단..)

 

  • EC2 서버에서 루트유저가 되려면 다음을 입력
    • 'sudo su'
    • 그럼 이제 루트유저(모든 권한이 있는 슈퍼유저)가 된 것임

 

  • yum 설치
    • 인프런 실습을 따라하다가 막힌 부분. 강의해서 하란대로 하면 yum이 설치가 안되는 듯함
    • 다음의 사이트를 참고해서 해결)https://sharplee7.tistory.com/111
    • amazon-linux-extras 패키지가 설치되어 있는지 확인 후
    • 다음을 입력 : sudo yum install -y amazon-linux-extras

'서버 > AWS' 카테고리의 다른 글

S3  (0) 2022.05.15
RDS on AWS  (0) 2022.05.14
IAM(identity and access management)  (0) 2022.05.07

BELATED ARTICLES

more