반응형
클라우드 컴퓨터의 특징과 Scalability
- 클라우드 컴퓨터를 사용할 수 없을 때, 사용자의 수요와 성능을 맞추기 힘들다. 갑자기 수요가 늘어나거나 줄어드는 경우 대응하기 어렵기 때문이다.
- 클라우드 컴퓨터는 가상의 컴퓨터를 사용하는 것이기 때문에, 사용자의 수요와 성능을 일치하기 용이하다.
- 이 때 사용하는 방법이
Scale up
과Scale out
이다.
Scale up과 EIP
Scale up
Scale up
은 인스턴스의 성능을 높여 대응하는 것이다.- 한 인스턴스(EC2)를 이미지화한 다음, 해당 이미지를 기반으로 더 좋은 성능의 타입으로 재생성하는 것이다.
- Create Image를 통해 인스턴스를 이미지화할 수 있으며, 이미지화 진행중엔 인스턴스가 꺼진다.
- Monitoring을 통해 CPU 부하상황을 분석해 적절한 타입의 인스턴스를 생성한다.
EIP (Elastic IP)
- 인스턴스는 정지 후 재실행하면 IP가 변경된다.
- 즉, Scale up 과정에서 IP가 변경될 수 있다는 것이다.
- 이 때 필요한 것이 AWS에서 제공하는
ELP
이다.EIP
는 고정된 IP를 인스턴스에게 제공할 수 있도록 해준다. EIP
를 생성하고 associate address에서 인스턴스를 선택하면 된다.EIP
를 새롭게 생성한 인스턴스로 옮길 경우 Dissassociate 후 associate한다.
Scale out과 ELB
cf. 웹 애플리케이션의 구조
- 기본적으로 웹 애플리케이션은 Web server, Middle ware, Database로 구성된다.
- Web server : 사용자가 브라우저를 통해 접속하는 것을 받고 서버상에서 이를 처리한 결과를 사용자에게 보내준다. (ex. NgineX, apache)
- Middle ware : 웹 애플리케이션의 실질적 동작방법(로직)을 정의한다. (ex. php, java spring, python django)
- Database : 중요한 정보를 보관 및 관리한다. (ex. MySQL, Oracle)
Scale out
Scale out
은 인스턴스 개수를 늘려 대응하는 것이다.- 먼저 애플리케이션의 구조별로 인스턴스를 부여할 수 있다.
- Middle ware나 Database에 부하가 걸리면 동일한 기능을 수행하는 인스턴스를 여러개 생성해 해당 기능 수행을 분산할 수 있다.
- 하지만 Web server는 여러개로 만들 경우 사용자가 하나의 ip로 서비스를 이용할 수 없게된다. 이 경우 여러 ip를 하나의 도메인으로 연결해 사용자마다 접속하는 ip가 달라지도록 할 수도 있지만,
Load Balancer
를 사용하면 이러한 처리가 용이해진다.
ELB (Elastic Load Balancer)
ELB
는 AWS에서 제공하는Load Balancer
이다.ELB
를 생성하여 인스턴스를 추가하면, ELB 자체적으로 접속 인스턴스를 분산시켜 준다.
Auto Scailing
- 매번 CPU의 부하량을 체크하고 분석해 새로운 인스턴스를 생성하고 ELB에 부착하는 일은 매우 번거롭다.
- 이를 자동으로 처리해주는 것이
Auto Scailing
이다. Lanuch Configuration
에서 어떤 인스턴스를 생성하도록 할 것인지 설정하고,Auto Scailing Group
을 생성해 Lanuch Configurations의 인스턴스를 자동으로 생성, 삭제하도록 한다.- Step1, Configure Auto scailing Group detail : Group의 이름, 최초 인스턴스 갯수, 가용구역, 대상 Load Balancer 등의 설정을 한다.
- Step2, Configure scailing policies : 인스턴스를 언제 생성하고 삭제할지, 하한 개수나 상한 개수는 어떻게 할지 설정한다.
- Step3, Configure Notification : Scailing 관련정보를 전송받을 메일을 추가한다.
- 이후 태그설정 및 Review를 마치면
Auto Scailing Group
이 생성되며 자동으로 인스턴스가 관리된다.
반응형
'🛠 기타 > 인프라' 카테고리의 다른 글
AWS - S3 (0) | 2021.01.30 |
---|---|
Node.js - AWS SDK (0) | 2021.01.30 |
AWS - EC2 (0) | 2021.01.28 |
AWS - region, availability zone (0) | 2021.01.28 |