IT/WSL

AWS EC2 인스턴스 생성 및 트러블 슈팅

상짱 2024. 3. 30. 14:54
반응형

1. EC2 인스턴스 생성

AWS 가입 후 무료 사용 1년으로 EC2 인스턴스를 생성하였다.

 

메뉴: 서비스 - 컴퓨팅 - EC2 

 

- 애플리케이션 및 OS 이미지

Ubuntu

나머지는 기본.

 

- 키 페어

ssh 접속을 위해서 키 페어를 통해서 pem 파일을 다운로드한다.

 

보안 그룹 생성으로 체크하고,

 

- 스토리지 구성

프리 티어는 최대 30GB까지 사용할 수 있어, 30GB로 설정했다.

 

새로고침을 누르면 인스턴스 생성된 것을 확인한다.


- EC2 인스턴스 생성 후 기본 핵심 메뉴

1. 보안 그룹

기본 보안 그룹의 default 그룹이 하나 있고,

인스턴스 생성하면서 만들어진 그룹이 하나 더 보이게 된다.

인바운드 규칙/아웃바운드 규칙으로 접속 제어를 할 수 있다.

일단, 기본적으로 ssh 접속이 될 수 있게 설정해 둔다.

 

2. 탄력적 IP

EC2 인스턴스의 IP를 고정 IP로 할당하는 것으로 파악하고 있다.

[탄력적 IP 주소 할당]으로 IP를 생성하고, [작업]을 통해서 탄력적 IP 주소 연결로 EC2인스턴스와 연결해 준다.

 

3. 키 페어

EC2 인스턴스 생성 시, 만든 키 정보를 가지고 있다. 

여기서 pem or ppk 파일을 만들 수 있다.

pem 파일은 로컬컴퓨터에서 ssh 접속을 위해서 필요한 파일이다.

 


- ssh 접속

인스턴스 메뉴에서 해당 인스턴스를 선택하고, 상단 [연결] 버튼 클릭하면서, 

[EC2 인스턴스 연결 | Session Manager | SSH 클라이언트 | EC2 직렬 콘솔] 탭의 화면이 나오게 된다.

4가지 방법이 있다.

 

- EC2 인스턴스 연결은 브라우저에서 바로 콘솔을 연결시켜 준다.

 

- Session Manager | EC2 직렬 콘솔 : 여기 2가지 방법은 나도 아직 잘 모르겠다.

 

- SSH 클라이언트 

이 방법은 로컬 피씨의 콘솔에서 접속하는 방법이다. pem 파일을 통해..

처음 인스턴스 생성 시, ubuntu를 선택해서, 유저명이 ubuntu이고, 

다른 것을 선택했다면, 각 OS 마다 유저명이 다르니, 아래 링크를 통해서 유저명을 확인한다.

Linux 인스턴스에 연결합니다 - Amazon Elastic Compute Cloud

 

Linux 인스턴스에 연결합니다 - Amazon Elastic Compute Cloud

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

저는 여기서 삽질을 했습니다.

윈도우 터미널 or 파워셀을 열고,

ssh -i ./xxx.pem ubuntu@퍼블릭IP

 

Permisson denied (publickey).

 

이런 문구가 뜬다.

대충 읽어 보면, 너의 프라이빗 키는 요구한다. 다른 것들이 액세스하면 안 된다. 

이 프라이빗 키는 무시할 것이다.

그리고 허가 거부...

 

위에 나온 내용대로, 파일의 소유자를 현재 사용자 한 명에게 하면 될듯하다.

 

- 해결 방법

 

pem 파일에 마우스 오른쪽 클릭으로 [속성] 열기

 

파일 속성 - 보안탭

 

[고급] 클릭.

 

파일 고급 보안 설정

 

여기서 [소유자] 아이디?를 기억해 두자.

 

[상속 사용 안 함] 클릭.

 

상속 차단

 

[이 개체에서 상속된 사용 권한을 모두 제거합니다.] 선택 후,

위에 [고급 보안 설정] 화면으로 돌아오고, [추가]를 선택한다.

 

파일 권한 항목 / 사용자 또는 그룹 선택

 

[보안 주체 선택]를 선택하고, 앞에서 보았던 소유자를 입력하고 [이름 확인]을 선택한다.

이름이 확인되면, [확인] 클릭으로 마무리한다. 

그리고 다시 터미널로 와서 ssh 접속을 한다.

 

접속결과

 

이제 접속이 되니, 여기서 놀면 될듯하다.

docker를 설치하고, - WSL에 도커(Docker)를 설치하자. (tistory.com)

nginx로 웹서비스로 도메인서비스하고,

jenkins와 github 연동으로 소스 빌드 및 배포환경을 만들어서

vue와 springboot 올리면 될듯하다.

 

끝.

반응형