몇번 정도 AWS EC2 RDS를 통해 서버 구축을 해보았지만, 매번 할때마다 헷갈리는 것 같아 정리를 하기로 하였다.
AWS
AWS란 Amazon에서 클라우드 환경을 구축하여 가상컴퓨터를 대여해주는 서비스이다.
이러한 서비스는 이 외에도 Azure, GCP 등이 있다.
서버를 구동하기 위해서는 여러 물리적 자원과 시간, 비용이 필요하게 되는데 AWS를 이용하면 이 모든 절차를 생략할 수 있다. 아마존에서 구축해놓은 가상컴퓨터의 일부를 빌려서 내 컴퓨터처럼 사용하는 것이다. 여기서 EC2(Elastic Compute Cloud)는 AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버를 말한다.
Amazon EC2의 기능
다음은 AWS의 Amazon EC2 공식 문서에서 발췌한 것이다.
Amazon EC2는 다음의 기능을 제공한다.
- 인스턴스: 가상 컴퓨팅 환경(쉽게 말해, 아마존에서 제공하는 가상환경을 임대한다고 생각하면 된다)
- Amazon 머신 이미지(AMI): 서버에 필요한 운영체제와 여러 소프트웨어들이 적절히 구성된 상태로 제공되는 템플릿으로 인스턴스를 쉽게 만들 수 있습니다.
- 인스턴스 유형: 인스턴스를 위한 CPU, 메모리, 스토리지, 네트워킹 용량의 여러 가지 구성 제공
- 키 페어를 사용하여 인스턴스 로그인 정보 보호(AWS는 퍼블릭 키를 저장하고 사용자는 개인 키를 안전한 장소에 보관하는 방식)
- 인스턴스 스토어 볼륨: 임시 데이터를 저장하는 스토리지 볼륨으로 인스턴스 중단, 최대 절전 모드로 전환 또는 종료 시 삭제됨
- Amazon Elastic Block Store(Amazon EBS), 즉 Amazon EBS 볼륨을 사용해 영구 스토리지 볼륨에 데이터 저장
- 인스턴스와 Amazon EBS 볼륨 등의 리소스를 다른 물리적 장소에서 액세스할 수 있는 리전 및 가용 영역
- 보안 그룹을 사용해 인스턴스에 연결할 수 있는 프로토콜, 포트, 소스 IP 범위를 지정하는 방화벽 기능
- 탄력적 IP 주소(EIP): 동적 클라우드 컴퓨팅을 위한 고정 IPv4 주소
- 태그: 사용자가 생성하여 Amazon EC2 리소스에 할당할 수 있는 메타데이터
- AWS 클라우드에서는 논리적으로 격리되어 있지만 원할 때마다 고객의 네트워크와 간편히 연결할 수 있는 가상 네트워크인 Virtual Private Clouds(VPC)
이 외에 자세한 내용은 Amazon EC2이란 무엇입니까?를 참고하도록 하자.
즉, 간단하게 생각하면 서버용 컴퓨터 한대를 임대한다고 생각하면 된다.
Amazon EC2 인스턴스 생성하기
AWS의 EC2 인스턴스를 이용해서 서버를 구축할 것이다.
따라서, 먼저 Amazon EC2 인스턴스를 생성해줘야 한다.
클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services
개발자, 데이터 사이언티스트, 솔루션스 아키텍트 또는 AWS에서 구축하는 방법을 배우는 데 관심이 있는 모든 사용자용 무료 온라인 교육 AWS 전문가가 구축한 500개 이상의 무료 디지털 교육 과정
aws.amazon.com
이에 앞서 위 AWS 홈페지에서 계정을 1년동안 무료 체험판 계정으로 이용할 수 있는 프리티어로 생성한 뒤 내 지역을 서울로 변경해준다.
그 다음 바로 보이는 검색창에 ec2를 검색하면 다음과 같이 나올것이다 클릭 후 들어가 준다.
중앙에 바로 인스턴스 시작 버튼이 보일텐데, 바로 클릭 후 들어가준다.
이제 차근차근 내가 만들 인스턴스의 설정을 해주면 된다.
이제 AMI(Amazon Machine Image)라 부르는 것을 설정해주어야 하는데, AMI란, EC2 인스턴스를 시작하는데 필요한 정보를 이미지로 만들어 둔 것을 말한다.
간단하게 내가 임대할 가성 서버의 OS (우리가 사용하는 window,renux,mac os등)을 고른다고 생각하면 된다.
나는 Ubuntu 22.04 LTS를 사용하기 위해 Ubuntu를 골랐고, 더 많은 AMI는 옆에 더 많은 AMI 찾아보기를 통해 찾아볼 수 있다. (무료로 이용하고자 한다면, 프리티어 사용 가능이라 표시되어 있는 것을 골라야한다.)
우분투 시리즈는 16.04 18.04 20.04 22.04 LTS로 많은데 앞에 두 숫자는 년도 뒤에 두 숫자는 월을 뜻한다. 즉, 22.04가 가장 최신에 나온 시리즈이다.
다음으로 인스턴스 사양을 골라야하는데, t2.micro만 프리티어에서 무료이다.
앞에 t2는 요금 타입을 이야기하고, 뒤에 micro는 사양을 이야기한다.
정해진 사양보다 더 높은 트래픽이 오면 크레딧을 좀 더 적극적으로 사용하면서 트래픽을 처리하지만, 크레딧이 모두 사용되면 더이상 EC2를 사용할 수 없다. 그래서 트래픽이 높은 서비스들은 T 시리즈를 쓰지 않고 다른 시리즈를 사용하기도 한다.
월 750 시간의 제한이 있다. 초과하면 비용이 부과된다.
24시간 * 31일 = 744시간이다. 즉, 1대의 t2.micro만 사용한다면 24시간 사용할 수 있다(그러니까, 2대 이상의 인스턴스를 사용한다면 비용이 부과된다는 뜻이다). -> 한대 이상의 인스턴스를 사용할 땐 중지시켜놓는게 좋다
어찌 되었건 일단 프리티어에서 사용할 수 있는 t2.micro를 일단 선택하고 넘어가보도록 하자.
다음으로 키페어인데, 인스턴스에 연결하기 위한 키라고 생각하면 된다. 이 파일은 컴퓨터의 안전한 위치에 저장해두고 까먹지 않도록 하자.
새로운 키 페어를 만들어준다.
키 파일 형식은 putty(window에서 winscp를 사용해서 접근할 때 사용된다.)로 선택해도 되고 pem(OpenSSH 사용 시)을 선택해도 putty에서 알아서 변환해주기도 한다. 아무거나 선택해주고 넘어가도 좋다.
키페어가 생성되면 다운로드가 될텐데 이 파일을 안전한 위치에 두고 위치를 기억해두도록하자.
보안그룹을 선택해주어야 한다. 즉, 아무 요청이나 내 서버에 요청을 하면 해킹당할 수 있으니 일종의 방화벽을 세워두고 내가 원하는 요청만 받을 수 있게끔 하는것 이다.
일단은 winscp에서 SSH 트래픽을 통해서 접근할 예정이니, SSH 포트만 우선 열어두도록 하자.
SSH란 원격제어 프로토콜에 보안 개념이 들어간 것이다.
방화벽을 두고, SSH 통신 구멍만 열어두었다고 생각하면 간편하다.
저장 공간을 설정한다. 30GB까지 설정할 수 있으므로 30으로 설정해주어도 좋고 그냥 default로 8로 설정해주어도 좋다.
스타트업 같은 기업에서 사용할 경우, VPC,서브넷 등을 세세하게 다뤄야하지만, 일단 혼자서 1대의 서버만 사용할 것이니 별다른 설정을 하지 않고 넘어가도 좋다.
이제 인스턴스를 시작해주면,
이렇게 인스턴스가 새로 생성된 것을 볼 수 있다.
인스턴스 ID에 우클릭으로 인스턴스를 종료시켜 삭제할 수도 있고 중지 후 재시작 시킬수도 있는데, 이때 주의해야할 점은 탄력적 IP를 설정해두지 않으면 IP가 바뀌게 된다는 것이다.
지금 단계에서는 바뀌어도 별로 상관이 없지만, 나중에 DNS설정을 해주었을 때 바꾸어야할 것이 상당히 많다는 것을 유의하고 있어야한다.
'서버 > 환경설정' 카테고리의 다른 글
[서버 개발 환경 구축] 6. 원하는 도메인 적용 (가비아) (0) | 2022.07.14 |
---|---|
[서버 개발 환경 구축] 5. Mysql Datagrip 연결 (0) | 2022.07.13 |
[서버 개발 환경 구축] 4. AWS EC2 탄력적 IP 할당 (0) | 2022.07.13 |
[서버 개발 환경 구축] 3. AWS EC2 ubuntu에 nginx,php,mysql (LEMP Stack)로 서버 환경 구축하기 (0) | 2022.07.12 |
[서버 개발 환경 구축] 2. winscp와 putty로 AWS EC2 인스턴스에 접속하기 (0) | 2022.07.12 |