본문 바로가기

프로그래밍/Server

[AWS] EC2 인스턴스 생성과 ssh config 설정으로 EC2 간편 접속하기

https://aws.amazon.com/ko/

 

무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어

이러한 프리 티어 혜택은 AWS 신규 고객에게만 제공되며 AWS 가입일로부터 12개월 동안 유효합니다. 12개월의 무료 사용 기간이 만료되거나 애플리케이션 사용량이 프리 티어 범위를 초과할 경우

aws.amazon.com

 

위 링크로 들어가서 계정이 없으면 계정을 만들고 로그인 하면 된다.

 

하단 이미지와 같이 콘솔 홈EC2 > 인스턴스 시작 클릭

 

 

 

1. 사용할 이름 입력

 

2. 애플리케이션 및 OS 이미지 선택

 

  • 프리 티어 사용 가능 체크
  • 아키텍쳐 : Windows = 64비트(x86), Mac = 64비트(Arm)

 

3. 인스턴스 유형 선택

 

4. 키 페어 생성

 

5. 네트워크 설정

 

 

6. 인스턴스 시작

 

7. 인스턴스 연결

 

1. 터미널에서 cd 명령어를 통해 키페어가 있는 곳으로 이동 (ex. cd Desktop)

2. ssh -i ~로 시작하는 명령어를 복사하고 붙여넣기

 

 

만약 하단 처럼 나오면 chmod 400 ~이라고 쓰인 명령어(3번)을 복사해서 붙여넣기하고 2번을 다시 실행한다.

 

8. 보안 그룹 설정

인스턴스 > 보안 > 보안 그룹 or 네트워크 보안 > 보안 그룹으로 들어가서 인바운드 규칙 편집

 

HTTP(80 포트)와 MYSQL/Aurora(3306 포트)를 0.0.0.0/0으로 열어준다.

 

 


 

 

ssh연결 할 때마다 ssh -i 어쩌구 하는거 너무 귀찮으니 ssh config 설정으로 간단하게 AWS ssh 접속을 해보자.

 

1. 탄력적 IPv4 주소 설정

 

대시보드에서 탄력적 IP로 바로 들어가거나 네트워크 및 보안 → 탄력적 IP으로 들어가면 된다.

 

탄력적 IP 주소 할당 후 해당 IP 주소를 인스턴스에 연결해야 한다.

 

할당 받고 연결 안하면 과금되니 주의해야 한다.

 

작업 → 탄력적 IP 주소 연결 → 인스턴스, 프라이빗 IP 주소 선택 → 연결

 

2. pem 파일 복사

Mac OS에는 .ssh 디렉토리가 존재하는데 여기에 .pem key를 복사한다.

  • 복사 : cp ~/pem키 위치/000.pem ~/.ssh
  • .ssh 디렉토리로 이동 : cd ~/.ssh
  • 파일 확인 : ls
  • 권한 부여 : chmod 400 ~/.ssh/pem키 파일
  • 권한 확인 : ls -l
    • pem키가 -r로 시작하면 권한 부여된 것!

 

3. ssh config에 등록

🔑 vi ~/.ssh/config

 

config 파일을 vi 편집기로 열고 다음과 같이 입력(i) 후 편집 중지(control+c)하고 저장 및 종료 (:wq)

  • Host [접속할 때 사용할 이름]
  • HostName [EC2에서 할당한 탄력적 ip]
  • User [서버 username]
  • IdentityFile ~/.ssh/000.pem

🤔 vi 편집기 편집 키워드 :  입력[i], 편집 중지[control + c], 저장[w], 종료[q]

 

만약 config 파일을 새로 생성한 것이라면 config 파일에도 권한 설정을 해준다.

🔑 chmod 700 ~/.ssh/config

 

r = 읽기, w = 쓰기, x = 실행 권한 인데, 순서대로 4, 2, 1로 권한을 줄 수 있다.

 

그래서 아까 pem 키의 경우 읽기 권한인 400을 준 것이고, config 파일의 경우 소유자가 모든 권한을 필요로 하기 때문에 모든 권한을 더한 값인 7을 주는 것이다.

 

참고로 두번째 숫자는 그룹, 세번째 숫자는 타인의 권한 조정이다.

 

명령어 입력 후 권한을 확인해보면(ls -l) -rwx로 권한이 바뀐 것을 확인할 수 있을 것이다.

 

4. 서버 접속

  • ssh [config 파일에 작성한 접속할 때 사용할 이름] 
  • 첫 접속이면 "The authenticity of host '~~~' can't be established. 어쩌구 저쩌구 Are you sure you want to continue connecting (yes/no)?" 이라고 뜨는데 yes 입력하면 접속!