AWS - EC2

Singsoong·2022년 7월 27일
0

AWS

목록 보기
1/13

📌AWS Infra

  • 리전 : 데이터 센터를 클러스터링 하는 물리적 위치 (서울 리전 등)
  • 1개 AWS 리전 = 2개 이상의 가용영역으로 구성
  • 똑같은 서버를 두 리전에 배치하면 한 리전에서 정전 등의 피해가 발생해도 그대로 서비스를 계속 이어나갈 수 있음
  • 가용영역 : 하나 이상의 개별 데이터 센터
  • 가용영역마다 서버를 배치하면 다른 영역에서 서버가 죽더라도 시스템을 계속 유지할 수 있는 고가용성 설계를 할 수 있다.
  • 엣지 로케이션 : 콘텐츠를 엣지 로케이션에 캐싱, 사용자에게 더 짧은 지연 시간으로 콘텐츠 전송
    → 리전에서 사용자로 직접 콘텐츠를 전송하는것보다 리전에서 엣지로케이션으로 고속 네트워크로 전송하는게 빠름
  • VPC : AWS 안에서 외부로 부터 독립된 네트워크망을 구성해주는 서비스

📌EC2

  • EC2 : 클라우드에서 제공하는 가상 서버, 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공
    → 가상 머신을 제공한다는 것
  • 인스턴스 시작으로 EC2 를 생성
  • 인스턴스 : 개별 EC2 가상 서버라고 생각하면 됨
  • 생성은 1-7단계
  • AMI : 운영체제, 애플리케이션 서버, 애플리케이션이 포함된 템플릿(Image)
  • 인스턴스 유형 : EC2의 하드웨어 사양을 선택하는 것
  • 인스턴스 구매옵션
    • 온디맨드 : 약정 없이 초당 사용한 만큼 비용 지불
    • 스팟 : 사용 안하는 인스턴스를 경매 방식으로 구매하여 사용 (가격이 싼 대신 언제 종료될지 모름)
    • 예약 : 기간을 약정하여 인스턴스 사용
    • 전용 호스트, 전용 인스턴스 : 전용 물리적 서버를 할당 받아서 사용 → 특정 소프트웨어는 물리적 CPU에 따라 라이센스를 할당받기 때문
    • 스팟 < 예약 < 온디맨드 < 전용 호스트 순으로 가격이 비쌈
  • 퍼블릭 DNS 를 통해 인스턴스에 접속할 수 있다.

📌원격 접속

  • Windows - RDP 사용
    • 원격 데스크톱 연결 프로그램 실행
    • 퍼블릭 IPv4 주소를 복사해서 연결
    • 인스턴스를 생성할 때 받은 private key를 이용해 접속
    • RDP 클라이언트 항목을 클릭하여 사용자이름을 확인할 수 있고, 암호 가져오기 버튼을 누르고 private key를 선택하여 암호 해독을 눌러 암호를 가져온다.
  • Linux - SSH 사용
    • 파워쉘(cmd도 됨) 실행 → cd로 key 위치로 이동 → ssh -i 명령어로 접속
    • exit으로 종료

📌웹 서버 생성

  • Linux 원격 서버 접속
  • sudo su 명령어로 root 계정 접속
  • yum update -y → yum(패키지 설치) 프로그램을 최신으로 업데이트
  • yum install httpd -y →httpd 패키지 설치
  • service httpd start → httpd 시작
  • chkconfig httpd on
  • 퍼블릭 ip 주소로 접속해보면 웹페이지 생성된것을 확인할 수 있음
  • cd /var/www/html
  • echo “hello world” > index.html

📌EC2 요금 계산

출처 : 이노스터디

  • https://calculator.aws
  • 인터넷 → EC2 : 무료
  • EC2 → 인터넷 : 유료
  • 같은 가용영역 내의 EC2 끼리 데이터 전송은 무료
  • 다른 가용역역 내의 EC2 끼리 데이터 전송은 유료
  • 다른 리전의 EC2 데이터 전송은 유료
  • 같은 가용역역 내 public IP를 이용해 통신하면 유료
  • 인터넷과 통신할 때 로드 밸런스를 통해 통신하는 것이 더 저렴

📌EBS (Elatic Block Store)

  • 인스턴스를 생성할 때 저장소를 추가한 것
  • 각 스토리지는 볼륨 단위로 구성
  • IOPS : 스토리지를 읽고 쓰는 속도
  • 스냅샷 : 백업이라고 생각하면 됨
    • 정기적으로 백업을 할 수 있음
      (EBS > 수명 주기 관리자)
    • 스냅샷을 이용해 AMI 를 만들고 AMI를 이용해 인스턴스를 생성할 수 있음(복구)

📌EC2 Networking

  • EC2 인스턴스가 통신을 하게 되면 네트워크 인터페이스 카드를 거쳐 트래픽이 나가고, 보안 그룹을 거쳐 방화벽을 통과하면 NACL에서 검사를 한다
  • EC2 인스턴스를 만들면, subnet에 있는 IP주소를 할당을 받는다.
  • 네트워크 인터페이스 카드를 ENI(Elastic Network Interface)라고 한다.
    • ENI에 IP주소, MAC 주소 등이 부여 된다
    • 인스턴스에 연결되어 네트워크 통신을 하는 역할
    • 하나의 인스턴스에 여러개의 ENI를 연결 가능
  • private IP 사용 대역 : 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
  • 인스턴스를 중지했다가 다시 시작하면 퍼블릭 IP 주소가 바뀐다 → 만약, 고정적으로 IP 주소를 사용하고 싶다면 네트워크 및 보안 > 탄력적 IP 를 구매하면 된다.

📌EC2 Security

  • 두 가지 유형의 방화벽이 있다.
  • 1) EC2 인스턴스 레벨의 방화벽인 보안 그룹이 있다.
    • 각 EC2 인스턴스 수준에서 작동
    • 허용 규칙만 지정 가능, 거부 규칙 지정 불가
    • 따라서, 아무런 규칙이 없으면 모두 다 거부한다고 생각하면 된다.
  • 2) 서브넷 레벨의 방화벽인 NACL이 있다.
    • 허용, 거부 규칙 모두 지정 가능
    • 규칙 번호가 부여되며 규칙은 규칙번호가 빠른 순서대로 적용
    • 아무런 규칙이 없으면 모든 트래픽이 거부가 된다.

📌ELB (Elastic Load Balancer)

  • 트래픽을 분산하는 서비스
  • 특정 인스턴스가 죽으면 다른 인스턴스로 라우팅시키고, 회복이 된다면 다시 원래 인스턴스로 라우팅 시킴
  • 종류
    • Application Load Balancer
      • 웹 서비스 프로토콜을 로드 밸런싱
      • 레이어 7 (HTTP, HTTPS) 밸런싱
      • HTTP Header Content를 사용해 라우팅 요청 처리
    • Network Load Balancer
      • TCP, TLS, UDP
      • 네트워크 레벨의 로드 밸런싱
      • Protocol, Port Number를 사용해 라우팅 요청 처리
      • 속도가 빠르며, 수백만의 대용량 트래픽 처리에 적합
  • 클라이언트 접속 → 리스너가 판단 → EC2 인스턴스로 라우팅 (만약 인스턴스가 여러대면 분산해서 라우팅)
  • 로드밸런서에도 보안그룹을 지정한다.

1) 대상 그룹 지정

2) 로드 밸런서 생성


📌ASG (Auto Scaling Group)

  • 수직적 확장
    • 자원을 추가하는 방식, 인스턴스를 t2.micro → t2.large로 바꾸는것
    • 서버를 종료해야 한다는 단점
    • 확장할 수 있는 자원의 한계
  • 수평적 확장
    • 노드를 추가하는 방식
    • 인스턴스 개수 늘리는 것
    • 주로 웹서버 확장 방법으로 사용됨
  • 수평적 확장 방법 중 하나로 AWS에서 Auto Scaling이라 함
  • 서버의 로드가 증가하면 EC2 인스턴스 개수가 추가되고, 감소하면 EC2 인스턴스 개수가 줄어듦
  • 최소용량과 최대용량을 지정해 그에 맞게 인스턴스 개수를 조절함
  • 구성요소
    • 오토 스케일링 그룹 : EC2 인스턴스 그룹
    • 시작 템플릿 : EC2 서버를 시작하기 위한 AMI, 인스턴스 유형 정보를 가진 템플릿
    • 조정 옵션 : 어떤 상황일때 확장할 것인가
      • 일반 조정 정책 : 원하는 대로 지정
      • 대상 추적 조정 정책 : 목표값에 따라
      • 예약된 조정 일책 : 일정에 따라

1) 시작 템플릿 생성 (추가 인스턴스를 setting)

2) Auto Scaling 그룹 설정



출처 : 이노스터디 강의

profile
Web Developer

0개의 댓글