AWS란?
아마존웹서비스(AWS)는 아마존닷컴이 제공하는 클라우드 컴퓨팅 서비스로, 전 세계에서 가장 높은 시장 점유율을 기록하고 있습니다. AWS의 주요 서비스로는 EC2, RDS, S3, IAM, Route53 등이 있으며, 이번 포스팅에서는 그 중 EC2에 대해 설명하고 어떻게 활용할 수 있는지 알아보겠습니다.
EC2
EC2는 Elastic Compute Cloud의 약자로, AWS에서는 클라우드에서 확장 가능한 컴퓨팅 용량을 제공한다고 설명하고 있습니다.
간단히 말하면, EC2는 한 대의 컴퓨터를 임대하는 개념으로 이해할 수 있습니다. 이를 통해 아마존이 전 세계에 구축한 데이터 센터의 서버 자원을 원격으로 활용할 수 있게 됩니다.
EC2의 가장 큰 장점은 필요에 따라 용량을 늘리거나 줄일 수 있으며, 사용한 만큼만 비용을 지불하기 때문에 경제적인 부담이 적다는 점입니다.
인스턴스 생성 및 연결
그럼 지금부터 EC2로 서버를 구축해보겠습니다.


인스턴스 -> 인스턴스 시작을 클릭합니다.

원하는 AMI를 선택합니다.
AMI는 Amazone Machine Image의 약어로 인스턴스를 생성할 때 필요한 모든 소프트웨어를 담고 있는 템플릿 이미지라고 할 수 있습니다.
저는 Ubuntu Server 22.04 LTS (HVM), SSD Volume Type를 선택했습니다.

인스턴스 유형선택
다음으로는 인스턴스 유형을 선택해야 합니다. 인스턴스에는 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합이 있어서 나에게 맞는 인스턴스 유형을 선택하면 됩니다.
프리 티어의 조건에 따라 t2.micro 또는 t3.micro 인스턴스 유형을 사용해야 하고, 월 750시간까지 무료!
키페어 생성 및 선택
- EC2 서버로 접속하기 위한 인증서입니다.
- 절대로 잃어버리면 안됩니다!! 백업 필수


네트워크 설정을 보안 그룹 생성으로 정합니다

스토리지를 프리 티어 최대 용량인 30GB로 설정(기본값 8GB)
고급 세부 정보 IAM 프로파일 생성
- 보안 강화를 위해 IAM (Identify and Access Management) 계정이 필요
- 지금 우리는 Root 계정으로 로그인 되어있습니다. 만약 Root 권한을 탈취당해서 과금이 발생하면 막을 방법이 없어집니다. 따라서 부계정과 비슷한 의미의 IAM 계정을 나눠놓는것이 좋습니다
새 IAM 프로파일 생성




사용자 그룹이름 입력 및 권한 정책 연결

- EC2 전체 권한을 주기 위해 ec2full 검색 후 아래 뜨는 정책을 체크해준 후 그룹 생성

사용자를 추가하여 설정해줍니다.



S3Full을 검색해 권한 추가를 합니다.

다시 돌아와서 생성한 IAM 프로파일을 선택해줍니다.
탄력적 IP 등록
- AWS EC2 인스턴스는 ON/OFF 또는 시간이 지나면 IP가 유동적으로 바뀝니다.
- IP가 바뀐다는 것은 웹서비스를 고정적으로 운영할 수 없습니다. 그리하여, 고정 IP를 등록해줘야 합니다.
탄력적 IP 주소는 유료니 주의!
무료로 진행하려면
프리 티어에서는 EC2 인스턴스를 사용할 때 퍼블릭 IPv4 주소가 무료로 제공되므로 퍼블릭 IPv4 주소를 이용하면 됩니다.



인스턴스 선택 > 연결
인스턴스 보안 설정
1. 보안 그룹 설정
- 인바운드 규칙: 필요한 포트(예: 22번 포트 for SSH)만 허용하고, 특정 IP 주소 또는 IP 범위만 접근할 수 있도록 설정합니다.
- 아웃바운드 규칙: 기본적으로 모든 아웃바운드 트래픽은 허용되지만, 필요한 경우 제한할 수 있습니다.
2. 네트워크 ACL (Access Control List)
- 서브넷 수준에서 추가적인 보안을 제공하는 네트워크 ACL을 설정하여 트래픽을 필터링합니다.
3. IAM 역할 사용
- 인스턴스에 IAM 역할을 할당하여 AWS 리소스에 대한 접근 권한을 부여합니다. 이를 통해 키 정보나 비밀을 인스턴스에 저장할 필요가 없습니다.
- MySQL 데이터베이스 서버의 경우, 기본적으로 포트 3306을 사용합니다. 이를 통해 클라이언트가 데이터베이스에 접근할 수 있도록 보안 그룹에서 인바운드 규칙을 추가할 수 있습니다.
- MySQL (포트 3306)
- 유형: MySQL/Aurora
- 포트: 3306
- 소스: 특정 IP 또는 CIDR 블록 (예: 192.168.1.0/24)
- 설명: 이 규칙은 특정 IP 범위에서만 MySQL 데이터베이스에 접근할 수 있도록 제한합니다. 모든 사용자(0.0.0.0/0)를 허용하면 보안 위험이 크기 때문에, 특정 IP로 제한하는 것이 좋습니다.
PuTTY 통해 원격접속하기
- putty는 원격으로 장치에 접근할 수 있는 터미널 역할을 해준다. (아마존의 데이터센터에 주소를 갖고 접근한다)
- 아래에서 다운로드후 설치
https://www.softonic.kr/download/putty/windows/post-download
다운받고 나면 PuTTygen을 검색 후 실행합니다.

.pem 키를 임포트합니다.

save private key를 눌러 저장합니다.

Putty를 실행시켜 SSH > Auth > Credenfials를 클릭합니다.

Browse 버튼을 눌러 변환된 ppk파일을 선택합니다.

바로 open 버튼 누르지않고 Session으로 들어갑니다.
Host Name 설정
- Ubuntu의 경우: ubuntu@<공인 IP 주소 또는 DNS 이름> 형식으로 입력합니다.
- Amazon Linux 등의 다른 AMI의 경우: ec2-user@<공인 IP 주소 또는 DNS 이름> 형식으로 입력합니다.
저장을 하고싶다면 Save Sessions에 작성 후 Open을 누릅니다.

이렇게 뜬다면 성공입니다!
'infra > AWS' 카테고리의 다른 글
[AWS] public IP 요금 부과 대응 방안 및 EC2를 통한 RDS 외부 연결 방법 (0) | 2024.09.12 |
---|---|
[AWS] RDS 프리티어 생성하기- MySQL (0) | 2024.09.10 |