AWS에서 가장 기본이 되는 EC2(Elastic Compute Cloud)에 대해 알아보고,
간단한 실습으로 실제 EC2를 빌려 서버를 띄워보겠습니다.
EC2(Elastic Compute Cloud)?
AWS를 쓰게 되면 가장 먼저 알게 되는 EC2는 쉽게 말해 아마존이 사용자가 원하는 사양의 컴퓨터를 빌려주는 클라우드 서비스입니다.
만약 온페리미스(on-premise)로 직접 서버를 구축하려고 한다면, 많은 시간과 돈이 소모 될 것입니다.
이렇게 직접 서버를 구축하는 대신, AWS에서 EC2를 이용하여 우리가 원하는 컴퓨터를 빌려서 서버를 운용 할 수 있습니다.
- on-premise: 클라우드 환경 방식이 아닌, 직접 서버를 설치하고 운용하는 방식
EC2 시작하기
1. 준비 사항
먼저 준비 되어야 할 사항은 AWS에 가입 하는 것입니다. 혹시 가입하지 않은 분이 있다면 꼭 먼저 해주시길 바랍니다.
참고로, AWS에 가입하기 위해서 신용카드는 필수입니다.
가입 했다면, AWS 콘솔창에 접속 해 봅시다.
아래처럼 정상적으로 접속이 되었다면 이제 준비는 끝났습니다!
2. 리전(Region) 선택 하기
바로 EC2를 생성해보기 이전에, 간단히 집고 넘어가야 하는 개념이 있습니다.
바로 리전(Region)이라는 개념과 가용영역(Availability Zones) 이라는 개념입니다.
2-1. 리전 ?? 가용 영역?
리전은 쉽게 말해 우리가 빌릴 컴퓨터의 위치를 의미합니다.
만약 우리 서비스의 사용자들이 대부분 서울에 있다고 한다면,
남미에 서버를 두는 것 보다 서울에 서버를 두면 훨씬 빠른 서비스를 제공 할 수 있을 것 입니다.
따라서 우리가 제공하는 서비스의 타겟 사용자에 따라 리전을 선택해주는 것이 필요합니다.
그리고 이런 리전 안에는 다수의 가용영역이 존재하게 됩니다.
만약, 하나의 가용영역이 재해로 인해 가동이 불가능 하더라도 다른 가용영역에서는 여전히 서비스를 제공할 수 있기에 서비스의 안정성을 보장 할 수 있습니다.
개념은 이정도로만 간단히 설명하기로 하고 자세한 부분은 AWS 공식 페이지를 참고 부탁드립니다.
2-2. 리전 설정하기
그럼 저는 바로 기본 리전을 서울로 설정 해보도록 하겠습니다.
상단의 서비스 옆 검색창에 리전을 검색하면 나오는 기본리전 이라는 항목으로 이동해 봅시다.
현지화 및 기본리전 편집 페이지로 이동하게 되는데 여기에서 아시아 태평양 (서울)을 선택하고 설정 저장 해줍시다.
이제, 리전 설정은 끝났습니다.
3. 인스턴스 생성하기
이제 본격적으로 EC2 인스턴스를 만들어 보겠습니다.
먼저, 인스턴스란 무엇일까요?
AWS 인스턴스란 ?
AWS를 사용하다보면, 인스턴스 라는 말을 자주 쓰게 될 것입니다.
여기에서 인스턴스란 AWS클라우드 서비스에서 제공하는 서버 리소스입니다. 쉽게 내가 빌리는 컴퓨터 한 대 라고 생각 해주시면 편합니다.
3-1. EC2 대시보드 이동
자, 그럼 인스턴스를 생성하기 위해서 EC2 대시보드로 이동 해 봅시다.
아래처럼 상단 서비스 옆 검색창에 EC2를 검색해서 서비스를 선택하여 EC2 대시보드로 이동 할 수 있습니다.
3-2. 인스턴스 시작 페이지 이동
대시보드에 들어오면 아래와 같은 화면을 보게 되는데 여기에서 노란색으로 보이는 인스턴스 시작 버튼을 클릭해 줍시다.
3-3-1. 인스턴스 설정 - 이름 및 태그
그럼 생성하고자 하는 인스턴스 설정을 할 수 있는 아래와 같은 페이지로 이동합니다.
가장 먼저 이름 및 태그 부분에서 우리가 원하는 대로 이름을 설정 해 줍시다. 저는 TEST로 지정하였습니다.
3-3-2. 인스턴스 설정 - AMI 설정
생성하고자 하는 인스턴스의 베이스가 될 AMI(Amazon Machine Image)를 설정 할 수 있습니다.
쉽게 말하자면, 우리가 빌릴 컴퓨터의 운영체제 및 그 안에 설치할 프로그램들을 선택하는 부분입니다.
도커와 친숙하신 분들이라면, 도커 허브에서 도커 베이스 이미지를 선택하는 과정이라고 생각해주시면 편하겠습니다.
단, 이 부분은 조금 신경을 써서 선택 해 줄 필요가 있습니다.
내가 원하는 대로 여러가지 소프트웨어가 설치된 이미지를 선택 한다면, 프리티어 적용이 되지 않고 요금 폭탄을 맞을 수도 있기 때문입니다!
아래에서 볼 수 있듯이 저는 집에서 intel칩을 사용하는 맥에서 개발하고 있기에,
Quick Start Ubuntu 이미지에 아키텍쳐는 x86을 선택했습니다.
여러분들은 자신들의 개발환경에 따라 설정해주시면 되겠습니다.
그럼 거기에 맞는 AMI들이 옵션 형식으로 선택할 수 있습니다.
여기에서 프리티어 사용 가능 한 이미지로 골라야 무료로 이용 할 수 있습니다.
3-3-3. 인스턴스 설정 - 인스턴스 유형 설정
하나의 인스턴스는 하나의 컴퓨터와 비슷한 개념이라고 하였습니다. 그럼 이제 우리가 빌릴 컴퓨터의 사양을 선택 해 봅시다.
우리가 원하는 대로 CPU, 메모리 등 컴퓨터 사양을 선택 할 수 있습니다.
역시나 프리티어 사용가능한 t2.micro로 선택해 주었습니다.
3-3-4. 인스턴스 설정 - 키 페어 생성
이제 키 페어를 설정 해 주어야 합니다.
이 키페어는 우리가 차후 EC2에 접속하려고 할 때 필요한 비밀번호(프라이빛 키, 퍼블릭 키 페어이지만 이 부분은 넘어 가겠습니다.)와 같은 역할을 합니다.
아래처럼 키페어를 생성하면, 생성된 키 페어를 사용자의 컴퓨터에 다운 받을 수 있습니다. 추후 필요하니, 잘 보관 해놓으시면 좋습니다.
3-3-5. 인스턴스 설정 - 네트워크 설정
이제 중요한 네트워크 설정입니다.
쉽게 말해 우리가 빌릴 컴퓨터의 네트워크 방화벽을 설정한다고 생각하시면 됩니다.
저는 웹서버를 띄울 생각이니, HTTP, HTTPS 트래픽을 허용해주어야 겠습니다.
그리고 기본적으로 SSH 트래픽 허용을 하게 되어 있습니다. 위치 무관으로 설정하면 어떤 아이피든지 우리가 빌린 EC2에 접속가능하다는 뜻입니다. (물론, 키 페어가 필요하긴 하겠지만요.)
참고로 SSH는 Secure Shell을 의미하고, 리눅스 환경에서 컴퓨터 원격접속을 위해 사용 됩니다. 웹서버를 이용할 것이라고 하더라도
우리가 빌린 EC2컴퓨터를 컨트롤 할 방법은 필요하기 때문에 역시 선택 해 줍시다.
3-3-6. 인스턴스 설정 - 스토리지 구성
컴퓨터 디스크 용량을 선택 해 줍시다. 프리티어를 사용한다면 30기가 안쪽으로 사용 할 수 있지만,
여러개의 인스턴스를 생성하게 되면 초과 할 수 있으니 안전하게 기본 설정 8기가로 가겠습니다.
종료시 삭제 부분은 우리가 EC2를 생성하고 삭제 하였을 때, 연결된 스토리지를 같이 삭제 할 것인지에 대한 부분입니다.
만약 아니오로 체크 하게 된다면, EC2를 삭제했슴에도 스토리지가 삭제되지 않아 요금이 부과 될 수 있으니, 예로 설정해 줍시다.
3-4. 인스턴스 생성
이제 기본적인 설정은 모두 끝났습니다.
오른쪽 하단에 있는 인스턴스 시작 버튼을 눌러봅시다.
그럼 아래와 같이 인스턴스가 성공적으로 생성되었다는 모습을 볼 수 있습니다.
또한 해당 아이디를 클릭하면 인스턴스 상태를 볼 수 있습니다.
4. 인스턴스 접속하기
벌써 우리는 AWS를 이용해서 우리가 원하는 사양의 컴퓨터 한 대를 빌렸습니다.
그럼 한 번 접속 해 보겠습니다.
인스턴스 대시보드 > 인스턴스 에서 우리가 접속하고자 하는 인스턴스를 우클릭하여 연결을 클릭 해 줍시다.
그럼 아래와 같은 화면으로 이동 할 것입니다.
EC2 컴퓨터에 연결하는 방법은 총 4가지 방법이 있는데, 우리는 가장 간편한 EC2 인스턴스 연결 방법을 선택 할 것입니다.
또한 기본적으로 퍼블릭 IP주소를 통해 접속할 것이기 때문에, EC2 instance Connect사용 을 선택 해 줍시다.
그리고 연결 버튼을 눌러주면 됩니다.
그럼 아래처럼 브라우저에서 터미널이 뜨면서 내가 설치한 EC2컴퓨터로 접속이 되게 됩니다.
여기에서 터미널에서 작업하듯이 EC2 인스턴스에 원하는 대로 명령을 내릴 수 있습니다.
5. EC2 Docker 설치하기
우선 저는 Docker를 설치하는 과정을 한번 보여 드리겠습니다.
- 참고로 도커는 64비트 운영체제에서만 동작합니다.
우선, docker 설치에 필요한 pre-requsite을 설치 해 줍니다.
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
정상적으로 준비는 끝났다고 하니, Docker Package를 설치해 줍시다.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
409MB를 사용해서 설치한다고 하네요.
Y를 입력 합시다.
설치가 완료되었다면 docker 명령어를 통해 제대로 설치 되었는지 확인해 봅시다.
자, 여기까지 EC2를 이용해서 인스턴스를 생성하고 접속하는 방법 까지 정리 해 봤습니다.
궁금한 점이나 잘못된 점은 언제든지 알려주세요!
'CI CD' 카테고리의 다른 글
[AWS] CodeDeploy 설정 및 생성(feat. Deploy 역할 생성) (0) | 2023.12.10 |
---|---|
[AWS] IAM 역할 생성(EC2에 IAM 역할 부여) (0) | 2023.12.10 |
[AWS] S3 시작하기 (0) | 2023.12.10 |
[AWS] nginx를 이용한 포트 포워딩(feat. 멀티 포트포워딩) (0) | 2023.12.10 |
[AWS] ec2 npm install 멈춤 현상 해결(feat. swapfile) (0) | 2023.12.10 |