클라우드 | 가상화/AWS

AWS - 2. VPC생성하여 쉘접속

mamdragors 2025. 12. 3. 18:32

아래 작업을 진행할 것이다.

 
1. 도메인생성 (가비아)
2. 도메인 등록 (AWS Route 53)
3. 도메인과 연결할 인증서 생성 (AWS Certificate Manager)
4. VPC 생성

    - VPC 생성
    - Subnet 생성
    - Routing 테이블 생성
    - Internet Gateway 생성
    - Routing 테이블 편집, 연결
    - 보안 그룹 만들기
    - 인스턴스 생성

5. 쉘에서 접속해보기
 
 


 
1. 도메인생성 (가비아)
AWS 에서 도메인 등록은 비싸기 때문에 가비아에서 도메인 생성
 
https://www.gabia.com/

 

웹을 넘어 클라우드로. 가비아

그룹웨어부터 멀티클라우드까지 하나의 클라우드 허브

www.gabia.com

 
로그인 후 사용하고자 하는 도메인을 검색한다.

검색한 도메인중 저렴한것으로 선택

 

결제정보 입력
 

 
결제후 도메인 등록 내용 확인

 
2. 도메인 등록 (AWS Route 53)
 
도메인 생성이 완료 되면 Route 53 메뉴로 이동한다.

 
시작하기 버튼 클릭

 
호스팅 영역 생성 선택 후 시작하기 클릭

 
가비아에서 구입한 도메인을 도메인 이름에 입력하고 유형은 퍼블릭으로 선택

[호스팅 영역 생성] 클릭

 
Route 53 > 호스팅 영역에서 생성된 영역이름 확인가능. 이름의 링크을 클릭한다.

 
호스팅 영역 세부 정보의 레코트 탭에서 NS 유형의 값/트래픽 라우팅 대상을 복사한다.

 
 
가비아 사이트의 [My 가비아] 화면으로 이동한다.

 
이용중인 서비스 영역 에서 링크를 클릭

 
도메인 목록에서 관리버튼 클릭

 
네임서버의 [설정] 버튼 클릭

 
Route 53 에서 복사한 "값/트래픽 라우팅 대상" 을 1,2,3,4 차에 입력한다. 맨뒤의 '.' 이 삭제 되었는지 확인한다.
소유자 인증 후 적용 

 
적용된 것을 확인한다.

 
 
 
3. 도메인과 연결할 인증서 생성 (AWS Certificate Manager)
리전 영역이 서울인지 확인하고 Cirtification Manager 로 이동한다. 

 
검색한 김에 즐겨찾기에 추가해 둔다

 
[인증서 요청] 클릭

 
퍼블릭 인증서 선택 하고 다음

 
가비아에서 구매한 도메인 입력, 등 선택하고 [요청] 클릭

 
검증 대기중 상태 확인하고 [Route 53 레코드 생성] 클릭

 
레코드 생성 클릭

 
Route 53 > 호스팅 영역 으로 이동하면 CNAME 유형이 추가된 것을 확인할 수 있다.

4. VPC 생성 
VPC 화면으로 이동 해서 [VPC 생성] 버튼 클릭

 
 
VPC 이름 : JON-PRD-VPC 

이름 규칙 : {임의식별자}-{PRD:요구사항정의서}-VPC

IPv4 CIDR 은 10.250.0.0/16 으로 정하였다.

더보기

IP Range 결정, Subnet 생성 시 고려 사항 

AWS 의 예약된 IP 주소 (Subnet CIDR이 10.0.0.0/24 인 경우) 0번, 1번, 2번, 3번은 못쓰고, 4번 ~ 254번 가용

10.0.0.0 : 네트워크 주소
10.0.0.1 : VPC 라우터용으로 예약된 주소
10.0.0.2 : AWS에서 예약된 DNS 주소, AmazonProvidedDNS
10.0.0.3 : AWS에서 향후 사용을 위하여 예약
10.0.0.255 : 브로드캐스트 주소, VPC에서는 브로드캐스트를 지원하지 않으며, AWS에서 예약.

 

CIDR(Classless Inter-Domain Routing)은 기존의 고정된 클래스 기반 IP 주소 할당 방식을 대체한, IP 주소를 더 효율적이고 유연하게 할당하는 방법입니다. IP 주소 범위를 나타내는 데 사용되며, IP 주소/네트워크 비트 수 형태로 표현하여 네트워크와 호스트 식별자를 표현한다.

 
생성된 VPC 확인하고 서브넷 메뉴로 이동

 
[서브넷 생성] 클릭

 
VPC ID : 방금 만든 vpc 선택
서브넷 이름 : JON-PRD-VPC-NGINX-PUB-2A 

이름 규칙 :    {VPC ID}-{서버 종류}-{PUB:public | PRI:private}-{가용영역}

서브넷 CIDR 블록 : 10.250.1.0/24

생성된 서브넷을 확인한다.

 
라우팅 테이블 메뉴로 이동하여 [라우팅 테이블 생성] 클릭

 
라우팅테이블 이름 : JON-PRD-RT-PUB

이름 규칙 : {임의식별자:VPC 와 동일한 식별자 사용}-{PRD:Proucuct Requirements Document}-{RT:Routting Table}-{PUB:public}

 
인터넷 게이트웨이 메뉴로 이동
디폴트 게이트 웨이를 구분하기위해 name 을 default 로 변경
[인터넷 게이트웨이 생성] 클릭

 
 
인터넷 게이트웨이 이름 : JON-PRD-IGW

이름 규칙 : {임의식별자:VPC 와 동일한 식별자 사용}-{PRD:요구사항정의서}-{IGW:Internet GateWay}

 
생성 후 상단에 표시되는 알림메시지의 [VPC에 연결] 클릭

 
인터넷 게이트웨이 목록에서 체크하고 작업 > VPC 연결 을 클릭하는것도 같은 기능을 한다.

 
VPC 선택을 클릭하면 만든 VPC 가 1개라 하나만 선택가능함. 
선택하고 [인터넷 게이트웨이 연결] 클릭

연결 후 상태가 Detached 에서 Attached 로 변경 된 것을 확인할 수 있다.

 
VPC > 라우팅 테이블 메뉴로 이동하여
생성한 테이블을 클릭하고 라우팅 탭에서 [라우팅 편집] 클릭

 
라우팅 추가 클릭

 
대상 : 0.0.0.0/0
2번째 대상 위 항목: 인터넷 게이트 웨이
2번째 대상 아래 항목: 아까 만든 게이트웨이 선택

 
저장 후 라우팅 탭에 대상이 추가된것 확인

 
서브넷 연결 탭으로 이동하여
[서브넷 연결 편집] 클릭. 위아래 아무버튼이나 상관없다

 
아까 만든 JON-PRD-VPC-NGINX-PUB-2A 서브넷을 체크하고 [연결 저장]

 
명시적 서부넷 연결에 추가된 것 확인

 
EC2 > 네트워크 및 보안 > 보안그룹 메뉴로 이동하여 [보안 그룹 생성] 클릭

 
VPC > 보안 > 보안그룹 메뉴를 통해 생성할 수도 있다.

 
 
보안 그룹 이름 : JON-PRD-VPC-NGINX-PUB-SG-2A 

이름 규칙 :    {VPC ID}-{서버 종류}-{PUB:public | PRI:private}-{SG:Security Group}-{가용영역}

 
우측 하단 [보안 그룹 생성] 클릭

 
보안그룹 목록에서 Name 을 보안 그룹 이름과 동일하게 수정해 준다.

 
생성한 보안그룹을 선택하고
인바운드 규칙 탭에서 [인바운드 규칙 편집] 클릭

 
[규칙 추가] 를 4번 클릭

유형 소스
모든 ICMP - IPv4 Anywhere-IPv4
SSH Anywhere-IPv4
HTTP Anywhere-IPv4
HTTPS Anywhere-IPv4

유형과 소스를 선택하고 [규칙 저장] 클릭

EC2 > 인스턴스 메뉴로 이동하여 [인스턴스 시작] 클릭

 
 
이름 : JON-PRD-VPC-NGINX-PUB-2A 

이름 규칙 :    {VPC ID}-{서버 종류}-{PUB:public | PRI:private}-{가용영역}

애플리케이션 및 OS 이미지 : Ubuntu 선택
Amazon Machine Image : Ubuntu Server 22.04 LTS 선택
선택하면 알림 메시지가 뜬다.

 

변경 확인하면 디폴트 생성되는 "사용자 이름" 이 표시된다. shell 프로그램에서 접속시 해당 이름 사용함.


인스턴스 유형 : t3.micro
키 페어 이름 : 키페어가 있으면 선택하고 없으면 새 키 페어 생성 클릭
키페어가 선택되면 네트워크 설정 영역의 [편집] 클릭

 
새 키페어 생성시 이름을 입력하고 [생성] 버튼을 클릭하면 .pem 파일 다운로드 창이 열린다.
해당 파일은 PC 에 저장하고 위치를 기억해 둔다. 쉘 프로그램으로 접속시 사용한다.

 
네트워크 설정 편집 영역에
아까 만든 VPC 선택
아까 만든 서브넷 선택
퍼블릭 ID 자동 할당 : 활성화
방화벽 : 기존 보안 그룹 선택
일반 보안 그룹: 아까 만든 보안그룹 선택
고급 네트워크 구성 클릭

 
고급 네트워크 구성의 기본 IP 에 10.150.1.240 입력

더보기

VPC 생성시 IPv4 CIDR 블록 : 10.250.0.0/16

서브넷 CIDR 블록 : 10.250.1.0/24

대문에 3번째 옥텟까지는 따라가고 ip 는임의로 240 으로 정함

 
고급 네트워크 구성까지 입력 했으면  [인스턴스 시작] 클릭

 

성공 메시지를 확인하고 모든 인스턴스 보기로 이동

 
EC2 >  인스턴스 목록에서
시작한 인스턴스를 선택하면 세부 정보를 확인 할 수 있다.

 
보안 탭에서 설정된 보안그룹 확인

 
네트워킹 탭도 확인해 본다.

 
세부정보 탭에서 퍼블릭 IPv4 주소 복사

 
 
쉘접속 프로그램에 연결 정보 입력 (Xshell 사용함)
이름 : Nginx2A (nginx 서버에 가용영역 2A)
프로토콜 : SSH
호스트 :  위에서 복사한  퍼블릭 IPv4 주소 

사용자 인증 메뉴에서
사용자 이름 : ubuntu
방법 :Password 체크 해제하고 Public Key 선택 후 [설정] 클릭
Pbulic Key 설정 창에서 키파일 선택, 찾아보기 버튼 클리하고 탐색기에서
PC 에 저장해둔 키파일을 선택 후 [확인] 버튼 클릭

 

 

사용자 키 [... ] 버튼 클릭시 사용자 키 선택 팝업이 열리는데

내용이 없으면 [가져오기] 버튼을 클릭하여 다운로드 받아둔 .pem 파일을 선택한다.

 
키 설정 후 [연결] 클릭

 
보안경고 수락

 
ubuntu 계정으로 접속된다.
passwd 명령으로 root 계정의 패스워드를 설정한다.

 
EC2 > 인스턴스 로 이동하여 인스턴스를 하나 더 만든다

 
이름 : JON-PRD-VPC-BASTION-PUB-2A 

이름 규칙 :    {VPC ID}-{서버 종류}-{PUB:public | PRI:private}-{가용영역}
* Bastion 서버는 외부에서 내부 네트워크로 접근하는 유일한 관문 역할을 하는 보안 서버

애플리케이션 및 OS 이미지 : Ubuntu 선택
Amazon Machine Image : Ubuntu Server 22.04 LTS 선택
선택하면 일림 메시지가 뜬다.

 
인스턴스 유형 : t3.micro
키 페어 이름 : 목록에서 키페어 선택 (위에서 만들었으므로 있을것이다.)
네트워크 설정 영역의 [편집] 클릭
아까 만든 VPC 선택
아까 만든 서브넷 선택
퍼블릭 ID 자동 할당 : 활성화
방화벽 : 기존 보안 그룹 선택
일반 보안 그룹: 아까 만든 보안그룹 선택
고급 네트워크 구성 클릭

 
NGINX 는 240 으로 만들었었다. 
BASTION 은 기본 IP : 10.250.1.245 로 정한다.
[인스턴스 시작] 클릭

 
BASTION 인스턴스가 추가 되었다.
NGINX 인스턴스와 마찬가지로 세부정보에서 퍼블릭 IPv4 주소를 복사한다.

 
쉘접속 프로그램에 연결 정보 입력 (Xshell 사용함)
이름 : BASTION 
프로토콜 : SSH
호스트 :  위에서 복사한 BASTION 영역 퍼블릭 IPv4 주소 

사용자 인증 메뉴에서
사용자 이름 : ubuntu
방법 :Password 체크 해제하고 Public Key 선택 후 [설정] 클릭
Pbulic Key 설정 창에서 키파일 선택, 찾아보기 버튼 클리하고 탐색기에서
PC 에 저장해둔 키파일을 선택 후 [확인] 버튼 클릭
[연결] 클릭

 
SSH 보안경고 팝업에서 [수락 및 저장] 클릭
접속 됨을 확인한다.