📌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 그룹 설정
출처 : 이노스터디 강의