[신한투자증권 프로디지털아카데미] AWS 실습 - AWS 인스턴스 만들기

2025. 5. 12. 22:21·신한투자증권/프로 디지털 아카데미

 

신한투자증권 프로 디지털 아카데미 (프디아) 6기 교육 중 배운 내용을 작성한 글입니다

Day 7 (20250430) - AWS 컴퓨팅

 


 

AWS 인스턴스 만들기

 

root 유저에서 바로 하지 않고 IAM 유저를 사용한다. 

사용자 그룹을 만들고, 사용자를 생성하여

루트 계정 아래에 사용자 1명이 존재하는 IAM 구성을 한 뒤,

사용자(user)로 로그인하여 이 계정을 이용하여 이후의 실습들을 진행하였다.

 

사용자 생성하기

root 계정으로 들어간 뒤 IAM > 사용자 그룹에서 사용자 그룹을 볼 수 있다

 

사용자는 IAM > 사용자에서 사용자 생성 버튼을 누르면 생성할 수 있다. 

Q ) root에서 하지 않고, IAM에서 하는 이유?

Q) MFA 추가를 하여 보안을 강화하는데 MFA 란?

CLI 란? (Command Line Interface)

 

 

사용자 이름에 만들고자 하는 사용자 이름을 입력한 뒤 다음을 누르면 된다

 

아까 먼저 만들어둔 사용자 그룹을 선택한 뒤 다음을 누르면 된다.

(나는 사용자 그룹 이름을 PDA_Admin이라는 이름으로 만들었었다)

 

검토한 뒤 사용자 생성 버튼을 누르면 사용자가 만들어진다.

 

이후 다시 콘솔 창에서 IAM > 사용자에서 방금 만든 사용자를 누르고 보안 자격 증명에서 멀티 팩터 인증(MFA)를 추가해주면 보안을 강화할 수 있다.  

 

멀티 팩터 인증과 엑세스 키를 (CLI)로 만들고 잘 추가해 주면 된다. 

 

EC2 인스턴스 만들기

 

루트계정 말고 방금 만든 user 계정으로 접속한 뒤에 EC2 인스턴스를 만들어보겠다.

 

 

AWS EC2 대시보드로 이동 하고, 리젼 선택

Q ) 리젼의 중요성, 가용영역의 중요성

Q ) AMI 란?

 

EC2 > 인스턴스에서 인스턴스 시작 버튼을 누르면 EC2 인스턴스 만들기가 가능하다.

 

이름과

애플리케이션 및 OS 이미지를 만들고 싶은 거로 선택(Amazon Linux나 Ubuntu를 보통 쓰는 것 같은데

이따 Ubuntu로 만들게 되면 사용자 이름이 ubuntu고 Amazon Linux로 만들게 되면 ec2-user가 되는듯)

 

인스턴스 유형 선택

micro, small, large에서부터 어떤 곳에 특화된 인스턴스이냐에 따라 종류가 엄청 많은데 이건 다음 페이지에서 정리할 예정)

https://aws.amazon.com/ko/ec2/instance-types/

 

클라우드 컴퓨팅 인스턴스 - Amazon EC2 인스턴스 유형 - AWS

 

aws.amazon.com

 

여기보면 인스턴스 유형 비교해놓아서 보고 쓰고 싶은 걸로 선택하면 된다

 

키 페어 생성해서 설정하고 (여기서 생성한 키 페어는 보관 필수!) 

 

아 그리고 인스턴스 생성할 때 무엇보다 먼저 잘 봐야하는 건 리젼이다. 

이 리젼이 어떻게 되어있는지에 따라 요금이나 나중에 vpc나 다른 거 연결할 때 달라질 수 있으므로

처음 하기로 한 리젼에서 계속 실행하는 걸 권장한다.

 

 

보안그룹 생성

스토리지 선택

스토리지는 나중에 아나콘다 설치할 것을 대비하여 넉넉히 볼륨을 30Gib 로 설정하겠다.

gpt3로 스토리지 설치

 

-> 선택 누르면 인스턴스 생성 시작됨

 

인스턴스 ID 파란색을 클릭하면 생성된 인스턴스의 상세 정보 확인 가능하다

 

+

내가 자주 보았었던 칸은 보안 과 네트워킹 칸을 자주 확인했다.

여기 보안 칸에서 인바운드 규칙과 아웃바운드 규칙을 확인해서

이 인스턴스가 어떤 포트에 대해 허용되어 있는지를 주로 확인하였고

 

또 네트워킹 칸에서

퍼블릭 IPv4 주소와 프라이빗 IPv4 주소를 혹인하였다.

또한 VPC와 서브넷이 잘 연결되어 있는지 등도 여기서 확인하였다.

 

 

오른쪽 상단의 연결 버튼을 클릭하면 보인다.

 

인스턴스 연결

이 인스턴스에 연결할 수 있는 방법 3가지를 설명해보자면

 

1. 인스턴스의 연결을 누른 뒤 EC2 인스턴스 연결 칸에서 연결 버튼 누르기

 

이 EC2 인스턴스에 연결 에서 연결을 눌렀을 때

 

이렇게 잘 접속이 된 걸 확인할 수 있다.

여기서 저 ubuntu 뒤에 ip 주소가 써있는데 저건 내가 만든 private ip 주소임을 확인할 수 있다.

 

2. 인스턴스의 연결을 누른 뒤 SSH 클라이언트 를 누른뒤 연결

 

SSH 클라이언트 연결 (iTerm2, Putty, XSHELL 등이 있는데 난 Window여서 Putty로 진행하였다)

 

SSH 클라이언트 연결할 수 있는 안내가 적혀있을 것이다.

 

  1. SSH 클라이언트를 엽니다.
  2. 프라이빗 키 파일을 찾습니다. 이 인스턴스를 시작하는 데 사용되는 키는 _______입니다. (아까 인스턴스 만들 때 생성했던 key pair 이름이 적혀있을 것인데 잘 저장해두었겠지?)
  3. 필요한 경우 이 명령어를 실행하여 키를 공개적으로 볼 수 없도록 합니다.
  4. 퍼블릭 DNS을(를) 사용하여 인스턴스에 연결:

 

나는 putty를 이용하여 연결하였는데 연결 방법에 대해 설명하겠다.

 

먼저 아까 생성했던 key 파일에 대해 pem 키로 다운받았었는데 Putty 클라이언트는 pem 대신에 ppk를 지원하기 때문에 

putty 설치시 함께 포함되어있는 PuttyGen(Putty Key Generator)를 이용하여 pem -> ppk 파일로의 변환 작업을 선행해야 한다.

 

PuttyGen이라고 검색하면 이 화면이 나올 것인데 Load하고 pem 키가 있는 곳에서 확장자를 All files로 바꾸면

아까 생성한 key가 있을 것이고 그걸 선택한 뒤에

save private key 버튼을 누르면 변환할 수 있다.

 

그 이후에 putty를 들어간 뒤 변환된 key 파일을 SSH-> Auth -> Credentials에 있는 Private key file for authentication에 넣으면 된다

 

 

key 파일을 Credentials에 올린 뒤 Session 칸으로 가서 Host Name에 Public ip 주소를 입력하고 Open을 입력하면 된다.

 

 

퍼블릭 IPv4 주소는 

아까 안내 창 인스턴스 ID 아래에 있는 파란색 줄을 클릭하면 인스턴스의 세부 정보를 볼 수 있는 페이지가 나올 것이다

 

 

 

 

여기 써있는 퍼블릭 IPv4를 putty 창을 열고

Session의 Host Name에 입력하면 된다.

 

 

 

여기 login as 에는 내가 아까 인스턴스를 ubuntu로 만들었기 때문에 ubuntu를 입력하면 잘 접속되는 걸 확인할 수 있다.

 

3. window vscode 안에서 bash 창을 이용하여 접속하기

 

아까 SSH 클라이언트 안내창에 있는 3번 4번을 터미널에서 실행하면 된다.

chmod 400 명령어를 이용하여 key를 공개적으로 볼 수 없도록 바꾼 뒤

4번 아래에 있는 ssh -i 로 시작하는 명령어를 입력하면 인스턴스에 연결된 화면을 볼 수 있다.

 

 

키 페어 chmod 로 잘 바꿔서 ssh로 ec2 잘 연결하기 ( + 인바운드, 아웃바운드 설정)

 

Q) 인바운드, 아웃바운드

 

 

 

Amazon EC2에서 플라스크 애플리케이션 시작

실습 - Putty 이용하여 aws 접속하기

 

 

접속 완료 후

sudo apt update (os 업데이트)

sudo apt upgrade (업그레이드)

업그레이드 후 재부팅 필수 sudo reboot -> putty로 접속했다면 다시 처음부터 접속해야함(inactive 상태됨)

 

 

실습 - 인스턴스에 아나콘다 설치 후 플라크스 애플리케이션 연결

아나콘다를 인스턴스 안에 설치하고 플라스크를 이용하여 애플리케이션을 연결하고자 한다.

이 사이트를 들어가면 아나콘다 다운로드 페이지가 뜰 텐데

skip registration 버튼 눌러서 바로 Download Now 페이지로 이동하자

 

Download Anaconda Distribution | Anaconda

Download Anaconda's open-source Distribution today. Discover the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

 

밑에 미니콘다 말고 Distribution Installers 중에

내가 다운로드 하고자 하는 부분에 오른쪽 버튼 클릭하면 링크 주소 복사 버튼이 있는데 그걸로 링크 복사 한뒤에

wget _____ -> 아나콘다 링크 자체를 복사해서 url 옮겨 놓으면 다운로드 가능!

( 난 wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh 입력하였다)

(참고로 복사한 링크는 오른쪽 버튼 클릭하면 붙여넣기 가능!)

 

하고 ls 명령어로 제대로 다운로드 받아짐을 확인할 수 있다

 

bash _______ -> bash 그 다운받아진 파일 : 설치할 수 있음

(이거 하는 중간에 enter나 yes 버튼 잘 안눌려서 한 번 더 하는 고생을 했었음.)

 

하라는 대로 진행하면 됨.

ENTER 키 누르고

방향키 밑으로 가는 버튼 누르면 more 창 벗어나지는데

 

Do you accep the license terms? 에 yes 쳐서 누르고

그 다음 뜨는 창에 ENTER 누르면 설치가 진행된다

마지막에 yes 누르면 정상적으로 설치된 모습을 볼 수 있

 

이 아나콘다는 생각보다 설치하는데 파일 용량이 커서 아마 인스턴스를 기본 볼륨 8로 만들었다면 실패할 수도 있다.

그때는 인스턴스 만드는 창에 EC2 -> Elastic Block Store의 볼륨에 들어가서 변경할 수 있는데

변경한 뒤에 다시 인스턴스를 reboot 해줘야 변경된 걸로 적용이 되어 정상적으로 설치할 수 있을 것이다

 

제대로 설치되었는지 확인하는 방법은

source .bashrc 명령어를 입력하였을 때 

앞에 (bash)가 붙었으면 제대로 설치가 된 것이다.

 

가상환경 만들기 

conda create -n web python=3.11 (이 경우 파이썬 3.11 버전의 web이라는 이름의 가상환경을 만듦)

yes 누르면 가상환경이 제대로 만들어질 것이다

 

conda activate web (가상환경 활성화)

web 이라는 가상환경 안으로 잘 접속된 걸 확인할 수 있다.

 

가상환경 들어갔다가 거기서 나오고 싶으면 conda deactivate 하면 됨

 

다시 web 이라는 가상환경에 들어간 상태로

플라스크 설치

pip install flask

플라스크 설치 후 app.py 파일을 만들고

vi 에디터를 이용하여 안의 내용 편집

빠르게 시작하기 — Flask 0.11-dev documentation

참고자료 (플라스크 이용하기!)

 

저 위의 데모 코드에서 접속가능하기 위해 host='0.0.0.0' 추가 후

보안그룹의 인바운드 규칙에 5000번 포트 추가

private ip 대신 public ip로 변경하면 접속 가능하다

이 app.py 실행하는 법은 python app.py 로 돌릴 수 있다.

 

보안그룹의 인바운드 규칙에 5000번 포트 추가

 

인스턴스의 보안그룹에 들어가게 되면 인바운드 규칙과 아웃바운드 규칙 등을 확인할 수 있는데

여기 인바운드 규칙 편집을 누르면 규칙 편집이 가능하다

 

 

인바운드 규칙 편집에서 port 5000번을 추가해주면 된다.

 

인바운드 규칙에 5000번을 추가해준뒤에

python app.py 명령어를 이용하여 플라스크를 실행시켜준 뒤에

 

 

 

저기 private ip 주소를 public ip 주소를 바꾼 뒤 크롬창에서 접속해보면

접속이 잘 됨을 볼 수 있다.

 

이 부분 private ip 주소에서 public 주소 ip로 바꾸기

 

 

aws 이용하여 인스턴스를 생성하고 이용할 때

여기서 중요한 건 aws에서 인스턴스를 생성했을 때 언제 돈이 부과되는지를 이해하고

비용이 청구되지 않도록 안쓰는 EC2 인스턴스는 종료시키는 것이 중요하다

 

 

 

다 쓴 인스턴스에 대해서 항상 인스턴스 종료 시켜놓는 거 잊지 말자!!

인스턴스 종료 안시켜놓으면 돈 계속 나간다!!! (주의!!!!)

 

 

반응형

'신한투자증권 > 프로 디지털 아카데미' 카테고리의 다른 글

[신한투자증권 프로디지털아카데미] AWS EC2 인스턴스 성능 리포트  (0) 2025.05.18
[신한투자증권 프로디지털아카데미] ICT 아키텍처의 이해  (0) 2025.05.12
[신한투자증권 프로디지털아카데미] Github  (0) 2025.05.06
'신한투자증권/프로 디지털 아카데미' 카테고리의 다른 글
  • [신한투자증권 프로디지털아카데미] 클라우드 기반 프론트엔드 기초(JavaScript) 프로그래밍 - 1
  • [신한투자증권 프로디지털아카데미] AWS EC2 인스턴스 성능 리포트
  • [신한투자증권 프로디지털아카데미] ICT 아키텍처의 이해
  • [신한투자증권 프로디지털아카데미] Github
쇼파죠하
쇼파죠하
소프트웨어학과 코린이 성장기
  • 쇼파죠하
    코린이의 성장기
    쇼파죠하
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • TIL
        • 한달 기록
      • 신한투자증권 N
        • 프로 디지털 아카데미 N
      • 공부기록 N
        • AWS
        • 트러블슈팅 N
        • 머신러닝
        • 알고리즘
        • 자료구조알고리즘
        • CS
        • 파이썬
      • 코린이의 성장기
        • 코린이의 백준 도전기
        • 코린이의 성장기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 프디아
    • AWS
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    AI 전문과과정
    K디지털트레이닝
    파이썬알고리즘인터뷰
    프로디지털아카데미6기
    LG Aimers
    코린이
    파이썬문법
    알파코
    네트워크
    CS
    프로 디지털 아카데미
    알파코캠퍼스
    파이썬
    알고리즘
    신한투자증권
    JavaScript
    프디아
    Computer Networking: a top down approach
    클라우드
    부트캠프
    c언어
    프로디지털아카데미
    react
    kdt교육
    9월기록
    aws 구조와 서비스
    AWS
    전공지식노트
    백준
    영리한 프로그래밍을 위한 알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
쇼파죠하
[신한투자증권 프로디지털아카데미] AWS 실습 - AWS 인스턴스 만들기
상단으로

티스토리툴바