AWS, 아마존에서 제공하는 클라우드 서버 개념이다. 여기서 클라우드 서버는, 아마존의 어딘가 전산센터에 있는 인프라에 우리가 네트워크로 접근하여 서버를 원격으로 제어하고 사용할 수 있는 것을 말한다.
이런, AWS 로 어떻게 서버가 Deploy 되는지, 간략하게 말로만 설명을 해보겠다. AWS의 많은 서비스 중, EC2라는 기본 서버를 기준으로 설명하겠다. (AWS를 통해 스토리지 장치 등 IT Infra의 많은 것들을 클라우드상에서 생성하고 사용할 수 있지만, 그 중 EC2만 설명하겠다..) EC2는 Elastic Compute Cloud로 독립된 서버(컴퓨터)를 임대해주는 서비스다.
[AWS Instance의 개념과 설치]
1. 논리적 서버의 생성: Instance 를 생성하여, 논리적인 하드웨어 서버를 한 대 생성한다. 이후 접근할 수 있는 권한(서버에 Client로서 접근할 수 있는 접근 가능 ip 범위와 Protocol, port 설정, 서버 내부에 직접 접근하여, 서버 자체를 제어할 수 있는 접근 권한(SSH type을 이용한 접속))을 알맞게 설정하고, vCPU(가상 cpu정도로 생각한다.), 메모리, 스토리지 용량, 기본으로 설치될 OS 등 기본 Spec을 설정한 후 생성한다. 접근 범위에 대해 첨언하자면,
- HTTP Type의 접근을 열어야, Web Browser 상에서 Domain Name을 입력하여, 해당 서버로 접근이 가능하다.
- SSH Type의 접근을 열어서, instance에 직접 접속하여, 원격으로 Instance를 제어할 수 있다.
2. 생성된 Instance에 대한 Application 설치: 1번과 같이 생성된 서버에서 용도에 맞게 원하는 Application을 설치한다. (웹 Application, DBMS 등), AWS Marketplace를 통해, 마치 앱스토어에서 내가 원하는 앱을 깔아서 사용하듯이, 내 목적에 맞는 Application이 Bundle된 Image를 다운받아서 설치할 수도 있다. 빈컴퓨터에 OS만 달랑 깔려있으니, 필요한 프로그램을 설치해야겠지.
[EC2 Scalability- EC2의 확장성에 대해]
AWS의 강력한 기능은 Scalability다. 서버의 사용량이 급변하는 환경에서는 Instance의 사양이나, 갯수를 그때마다 유연하게 변경할 수 있어야 안정적이고 효율적으로 서버를 운영할 수 있을 것인데, AWS에서는 Scale up과, Scale out, 그리고 자동으로 Scale을 잡아주는 Auto Scaling을 지원한다. 신기하다 참..
1. Scale Up: 하나의 컴퓨터를 더 좋은 컴퓨터로 교체하는 것이다. 즉, 갯수에는 변함이 없고, AWS에는 Instance를 교체하면 되는 것이다. How to Scale Up in AWS? -> 기존 인스턴스에 올라가있는, 애플리케이션을 모두 Image로 만들어둔다. (마치 백업 씨디? 정도로 생각하면 된다. 다른 인스턴스에 이미지를 적용한다면, 하드웨어를 제외한 같은 환경이 바로 적용될 수 있도록..) 기존 Instance 는 없앤 후 (Terminate) 새 Instance를 생성한 후, 여기에 Image를 씌운다면 Scale Up OK!
- 한 가지 문제점: Scale up을 하게 되면, Instance를 Terminate 한 뒤, 새 Instance를 생성하는 과정에서 해당 Instance를 가리키는 ip 주소가 바뀐다는 점이다. 이는 AWS 가 Elastic IP를 사용하여, 논리적인 Instance자원이 할당될 때마다 그때그때 IP주소를 새로 부여하기 때문이다. 즉, AWS는 유저들의 Instance에 할당해주는 IP주소를 가변적으로 운영하고 있다.. 일반적인 웹서버로 운영한다면, 고정 EIP를 Instance에 Mapping 시켜야 유저들이 동일한 Domain으로 해당 서버에 접속이 가능하다. 즉, New Instance를 생성하면서, EIP도 New Instance에 붙여주자.
2. Scale Out: 컴퓨터의 갯수를 늘리는 것을 의미한다. Scale up만으로는 스펙상 한계도 발생할 것이고, 하나의 웹서버를 상황에 따라, Web Server, MiddleWare Server, DB Server로 더 세분화시켜서 사용하는 것이 더 최적의 성능을 낼 수 있기 때문이다.
'Opinion ' 카테고리의 다른 글
모의 코딩 인터뷰를 할 수 있는 pramp 후기 (0) | 2022.02.27 |
---|---|
공유오피스 패스트파이브 장점 3가지! (0) | 2021.02.25 |
앞으로의 공부 방향 (1) | 2019.06.06 |