VPC를 이용한 EC2 환경 구축
AWS에 로그인 후(교육용 계정 아님) VPC를 검색한다.
VPC 생성에 들어와서 VPC등 말고 VPC만을 선택하고 아래 사진처럼 설정한다.
- AWS는 이름을 지을 때 띄어쓰기 대신 -(하이픈)을 사용한다.
- 태넌시와 태그는 그대로 사용해도 무방하다.
이제 서브넷을 만들 차례이다. 옆에 사이드 바에서 서브넷을 클릭하자.
아래 사진처럼 서브넷을 생성한다.
- VPC는 방금 만든 VPC로 선택
- CIDR은 10.0.1.0/24로 설정
이제 Internet Gateway를 만들자.(옆 사이드바에서 찾을 수 있다.)
Internet Gateway는 그냥 이름만 정해주면 된다.(줄여서 IG라고 부른다.)
생성한 Internet Gateway에 VPC를 연결해준다.(오른쪽 위에 VPC에 연결 클릭)
아까 만들었던 VPC에 연결한다.
이제 다음으로 라우팅 테이블을 수정한다.(옆 사이드 바에서 VPC > Route tables)
지금은 라우팅 테이블에 외부로 나가는 설정이 없는 것을 확인할 수 있다.
(0.0.0.0/0)외부 아이피 대역이 목적지일 때, 오른쪽 아래에 있는 라우팅 편집을 통해 위에서 만든 Internet Gateway로 나가도록 설정주면 된다.
이제 외부로 나가도록( = 외부와 통신이 가능하도록) 설정이 된 라우팅을 '서브넷 연결 편집'에 들어가서 서브넷에 연결해주면, 해당 서브넷은 Public Subnet이된다.
해당 라우팅 테이블을 원하는 서브넷에 연결해준다.
VPC의 기본적인 설정은 끝났다.
보안 그룹 생성하기
이제 보안 그룹을 생성하자.
보안 그룹은 아래 사진처럼 인바운드를 설정해주면 된다.
소스의 경우, IPv4로 설정하면 된다.
기본으로는 Default VPC로 설정이 되어 있으니 꼭 자신이 만든 VPC를 선택해야 한다.
(필자는 Web 개발에 사용할 Port들을 미리 설정해 주었다.)
EC2 생성하기
'서울' 리전인 것을 확인하고 EC2를 검색해 아래 사진의 우측 위에 '인스턴스 시작'을 눌러준다.
이름을 지어주고 원하는 OS를 선택해준면 된다.(필자는 Ubuntu 22.04를 선택했다.)
인스턴스 유형은 프리티어 사용 가능한 t2.micro로 선택해준다.
이제 키 페어 생성에서 키 페어가 있으면 선택을 해주고, 없으면 '새 키 페어 생성'을 눌러 생성해준다.
키 페어 생성에서는 원하는 이름으로 한 뒤, 나머지 설정은 그대로 두면된다.
네트워크 설정은 '편집'을 누른 뒤 위에서 생성한 VPC와 보안그룹을 선택해주고, 아래 사진처럼 설정한다.
스토리지 구성은 프리티어의 경우 무료로 최대 30GB를 사용할 수 있기 때문에 최대로 설정해준다.
요약을 확인 후, '인스턴스 시작'을 누르면 인스턴스가 생성된다.
탄력적 IP 설정
탄력적 IP란?
인스턴스의 Internet Gateway를 거쳐 통신 시 부여받을 아이피 주소를 고정시켜 인스턴스가 종료 된 후 다시 실행될 때 아이피 주소가 바뀌지 않게 해준다.
EC2 메뉴에서 좌측 사이드바에서 네트워크 및 보안 > 탄력적 IP를 찾아 이동한다.
'탄력적 IP 주소 할당'을 누르고, 기본 설정을 아무것도 건드리지 않고 할당을 해주면 된다.
이제 만들어진 탄력적 IP를 연결해준다.
아래 사진처럼 탄력적 IP를 연결하고 싶은 인스턴스를 선택 후 연결을 선태해준다.
이제 해당 인스턴스는 EC2가 꺼지더라도 IP 주소가 바뀌지 않게 된 것이다.
EC2 인스턴스 접속
MobaXterm으로 접속
왼쪽위 Session을 눌러준다.
SSH를 선택하고 Remote host에는 EC2 인스턴스의 퍼블릭 IP(or 탄력적 IP)를 입력한다. 그리고, Use Private Key를 선택한 후 로컬PC에 저장한 키 페어를 선택한다.
이러고 접속시, login as: 라고 나오면 ubuntu를 쳐서 접속해주면 된다.
IntelliJ로 원격 접속
IntelliJ 상단에서 Tools > Deployment > Configuration 으로 들어간다.
왼쪽 위 '+'를 눌러 STFP 파일을 원하는 이름으로 만들어준다.
SSH configuration 옆 ...을 눌러 아래 사진과 같이 SSH를 생성해준다.
Host에는 탄력적 IP, Username에는 ubuntu, Authentication type은 Key pair를 선택하고 AWS 키페어 파일을 선택해준다.
그러고 Test Connection을 눌러보면 제대로 연결되는 것을 확인할 수 있다.
이제 모두 OK를 누르고 메인 화면으로 와서 Terminal을 켜보면 위쪽에 아래 방향 드롭바를 눌러 방금 만든 SSH가 있을 것이다. 필자는 'ubuntu@설정한 ip' , 그것을 눌러주면 아래 처럼 잘 접속되는 것을 확인할 수 있다.
IntelliJ로 원격 조작(AWS Toolkit)
먼저 아래 사진 처럼 AWS Toolkit 플러그인을 설치해준다.
플러그인 설치가 완료되면 IDE를 재시작한다.
IDE가 재시작된 후 AWS Explorer(AWS 탐색기) 도구 창이 나타난다. 이 창은 View(뷰) -> Tool Windows(도구 창) -> AWS Explorer로 이동하여 액세스할 수도 있다.
시스템에 자격 증명 파일이 없으며 아래 이미지처럼 선택할 수 있는 AWS 자격 증명이 없는 경우, Edit AWS Credential file(s)(AWS 자격 증명 파일 편집)을 누른다.
자격 증명 파일이 없으므로 IntelliJ IDEA가 자격 증명 파일을 만들라는 메시지를 표시합니다. Create(생성)를 클릭한다.
최하단에 aws_access_key_id 및 aws_secret_access_key를 입력할 수 있는 필드와 파일 내용을 설명하는 새로운 구성 파일이 생성되었다.
브라우저에서 AWS Management Console(AWS 관리 콘솔)에 로그인한다. 그런 다음 Identity and Access Management(IAM) 서비스로 이동한다. IAM 서비스 페이지의 왼쪽 메뉴에서 Users(사용자)를 선택한다. 그런 다음 오른쪽에서 사용자 생성 버튼을 누른다.
사용자의 이름을 정하고 넘어간다.
권한 정책으로 직접 정책 연결을 선택하고, 'AdministratorAccess'를 선택하고 사용자를 생성해준다.
그럼 아래 그림처럼 요약이 나올텐데, 액세스 키는 자동으로 생성이 되지 않아 생성을 해줘야한다.(아래 사진은 생성하고 찍은 사진이다.) '액세스 키1' 아래 '액세스 키 생성하기' 를 눌러준다.
중간 2단계에서 키의 사용 용도를 묻는데 그에 맞게 선택해주고, 생성해주면 아래와 같이 액세스 키를 받을 수 있다.
해당 키는 이 화면을 나가면 볼 수 없으니, 잘 저장해서 보관해두자.
그리고 만든 키를 IntelliJ의 Config 파일 내의 default 파트에 각각 넣어준다.
그럼 아래와 같이 AWS를 원격 조작할 수 있다.