[AWS] 보안 그룹과 EC2 Instance 생성하고 인터넷 통신 여부 확인하기
드디어 EC2 인스턴스를 생성해볼 차례이다. ^*^
이전에 두 개의 public subnet을 만들어놨지만
순차적인 공부를 위해서,, 일단 a에만 인스턴스를 만들어보려한다.ㅎㅎ
그리고 서버가 인터넷과 제대로 연결되어 HTTP 요청을 처리하고 응답하는지까지 확인해보려한다.!!
아래의 다이어그램은 오늘 구성을 모두 완료했을때의 아키텍쳐를 그린 것이다.^*^
■ 오늘의 사전 지식 ■
1) EC2 (Amazon Elastic Compute Cloud, 아마존 일래스틱 컴퓨트 클라우드)란?
- AWS에서 제공하는 가상서버로서 필요에 따라서 컴퓨팅 리소스를 사용할 수 있다. 즉, 가상의 컴퓨터를 빌려서 사용하는 것이다.
- Linux, Ubuntu, Windows 등 다양한 운영체제를 지원한다.
- VPC내에서 EC2 인스턴스를 실행하여 네트워크 환경을 컨트롤할 수 있어 유연한 네트워킹 기능을 가진다.
- AWS 콘솔로 GUI 환경에서 사용할 수도 있고 AWS CLI(Command Line Interface)를 사용해서 관리할 수도 있다.
- 웹 호스팅, 애플리케이션 실행, 데이터베이스 등 다양한 용도로 사용할 수 있다.
2) 보안 그룹 (Security Group) 이란?
- AWS에서 인스턴스 또는 리소스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 한다. 이를 통해 특정 포트에서 들어오는 트래픽을 허용하거나 차단할 수 있다.
- 보안 그룹은 EC2 인스턴스에 대한 보안을 관리하며, 각 보안 그룹은 특정 인스턴스에 연결할 수 있다.
cf) NACL(Network Access Control List)는 서브넷 수준에서 트래픽을 관리하며, 보안 그룹보다 더 큰 범위의 IP 주소 및 포트를 제어할 수 있어 좀 더 세밀한 보안 관리가 가능하다. 따라서 네트워크 ACL과 보안 그룹 이 두가지 보안 요소를 조합하여 AWS 환경에서 네트워크 보안을 강화할 수 있다.
■ Security Group 생성하기 ■
1. [EC2 대시보드] -> [네트워크 및 보안] -> [보안 그룹] 메뉴 클릭
-> 기본 생성되어 있는 default 보안 그룹 3개 외에 나의 보안 그룹을 신규로 생성해주기로 한다.
-> 우측 상단 보안 그룹 생성 버튼 클릭
2. 보안 그룹 설정하기
- 보안 그룹 이름 : sg는 보안 그룹 security group의 약자이다.
- vpc : 이전 생성한 내 vpc를 선택했다.
- 인바운드 규칙 : SSH(포트 22)와 HTTP(포트 80)를 0.0.0.0/0 으로 설정하여, 웹서버로 쓸 내 인스턴스에 외부에서의 접근 가능하도록 허용한다.
* HTTP는 웹 서버에 대한 클라이언트의 요청을 처리하기 위한 프로토콜
* SSH는 원격으로 인스턴스에 접속하여 관리하기 위한 프로토콜
- 설정 값을 모두 입력하면 하단의 보안 그룹 생성 버튼 클릭
■ EC2 인스턴스 생성하기 ■
1. [EC2 대시보드] -> [인스턴스] 메뉴 클릭
- 우측 상단의 인스턴스 시작 버튼 클릭
2. 인스턴스 설정하기
- 이름 : 웹 서버로 쓸 인스턴스이고, 여러개 생성할것이기 때문에 bibi-webserver-01로 명명함
- 인스턴스 유형 : 프리티어 ^*^
- 키 페어 : EC2 인스턴스에 대한 보안 및 인증을 위해 필요하다. SSH 키 페어를 사용하면 패스워드 없이 안전하게 인스턴스에 로그인 할 수 있고, 외부의 불법적인 엑세스로부터 안전하다.
- 네트워크 설정 편집 버튼을 눌러준다.
- VPC : 이전 만든 내 vpc 선택
- 서브넷 : 일단 public subnet a와 b 중 a에 먼저 한개 생성ㅎㅎ
- 퍼블릭 IP 자동 할당 : 활성화 선택. 퍼블릭 IP를 자동으로 할당하면, 해당 인스턴스가 외부에 공개될 수 있다. 외부 클라이언트가 인스턴스에 접속하기 위해 활성화가 필요하다.
- 방화벽(보안 그룹) : 기존 보안 그룹 선택을 클릭, 앞서 만든 bibi-webserver-sg 보안그룹을 선택했다.
- 이후는 기존 설정된 채로 쭉 내리고 인스턴스 시작 버튼을 눌러 생성해주면 된다.!!
3. 목록에서 생성된 인스턴스 확인 및 연결
- bibi-webserver-01 이 잘 생성되어 있는 것을 확인 할 수 있다. ㅎㅎ
- 상단의 새로고침 버튼 오른쪽에 있는 연결 버튼을 클릭하여 AWS콘솔에 접근한다.
4. 인스턴스에 연결하기
- 퍼블릭 IP 주소가 할당된 것을 확인할 수 있다.
- 아래의 연결 버튼을 눌러준다.
5. 인터넷 통신 여부 확인하기
[ec2-user@ip-10-11-0-202 ~]$ curl -v naver.com
- 인터넷 통신이 제대로 작동하고 있는지 확인하기 위해, curl 명령어를 사용하여 외부 웹사이트인 naver.com으로 HTTP GET요청을 보내 본다.
- naver.com 로부터 응답이 왔다.
따라서 인터넷 통신이 제대로 작동하고 있으며, 내 EC2 인스턴스가 외부 웹사이트와 통신할 수 있음을 확인할 수 있다.!
* 다음 포스팅에서는 오늘 생성한 EC2 인스턴스에 웹 서버(Apache)를 설치해보겠다.
그리고 기본 웹 페이지를 조금 편집한 뒤, 할당된 퍼블릭 IP주소로 해당 페이지에 접속해보려한다. ^*^