ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS EC2 실습 - 1
    AWS 2025. 8. 3. 19:38

    1. aws free tier 계정 생성

    참고 : https://www.lainyzine.com/ko/article/how-to-create-an-amazon-web-services-account/

     

     

     

    EC2(Elastic Computer Cloud) : 컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스, 쉽게 말해 하나의 컴퓨터를 의미한다  

    • 백엔드 서버를 배포할 때 주로 사용된다

     

     

     

    2. EC2 region 설정

    region : 인프라를 지리적으로 나누어 배포한 각각의 데이터 센터를 의미한다

    • EC2를 통해 빌려서 쓸 수 있는 컴퓨터들이 전 세계적으로 다양하게 분포해 있다
    • 각 region은 고유한 이름을 가지고 있다  
    • 애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리하다

    • 검색 > EC2 검색
    • 오른쪽 상단의 리전 설정

     

     

     

    3. EC2 셋팅하기

     

    • 인스턴스 시작 > 이름 및 태그
      • ex-server (보통 "기능이름-sever ")
    • application and os image > ubuntu
      • 윈도우/맥 경우 용량도 많이 차지하고 성능도 많이 잡아먹어 서버를 배포할 컴퓨터의 os는 가벼운 ubuntu 사용한다 
    • 인스턴스 유형 > 기존 것 그대로
      • 인스턴스 : AWS EC2에서 빌리는 컴퓨터 1대를 의미한다
      • 인스턴스 유형 : 컴퓨터 사양 의미

     

     

     

    • 키 페어 : EC2 컴퓨터에 접근할 때 사용하는 비밀번호 
      • RSA와 .pem을 선택한 후 키페어 생성

     

     

     

    • 보안 그룹 설정
      • 보안 그룹(security group) : AWS 클라우드에서의 네트워크 보안을 의미한다

    • EC2 인스턴스 주위에 방화벽 역할을 할 보안 그룹을 만들고 보안 그룹에 규칙을 지정한다
    • 인바운드 트래픽(외부에서 EC2 인스턴스로 보내는 트래픽)에서 어떤 트래픽만 허용할지 설정할 수 있고
    • 아웃바운드 트래픽(EC2 인스턴스에서 외부로 나가는 트래픽)에서 어떤 트래픽만 허용할 지 설정할 수 있다
    • 보안그룹을 설정할 때는 허용할 IP범위와 포트를 설정할 수 있다  

     

     

     

    • 22번 포트, 80번 포트 추가
      • 22번 포트 - EC2에 원격 접속할 때 사용하는 포트
      • 80번 포트 - 백엔드 서버를 띄울 예정 

     

     

    cf. IP & Port

    • 13.250.15.132(IP):3000(Port)
      • IP : 네트워크 상에서의 특정 컴퓨터를 가리키는 주소
      • Port : 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소 
    • 브라우저는 기본적으로 80번 포트로 통신을 보내게 설정되어 있다, 따라서 생략 가능
    • well-known port
      • 22번(SSH) : 원격 접속을 위한 포트 번호 
      • 80번(HTTP) : HTTP로 통신할 때 사용하는 포트 번호
      • 443번(HTTPS) : HTTPS로 통신 할 때 사용하는 포트 번호    

     

     

     

    • EBS(Elastic Block Storage) : EC2 안에 부착되어 있는 일종의 하드디스크
      • 저장 공간을 조금 더 포괄적인 용어로 스토리지, 볼륨이라고 한다

     

     

     

    [ 인스턴스 시작 ]

     

     

     

    4. EC2 접속

     

     

     

    5. 탄력적 IP 연결

    • EC2 인스턴스를 생성하면 임시적인 IP를 할당받으며 실행 때마다 IP가 바뀌게 된다
    • 따라서 고정 IP를 할당받아야 하는데 그 방법이 탄력적 IP 연결이다  

     

     

     

     

    • 왼쪽) 네트워크 및 보안 > 탄력적 IP > 탄력적 IP 주소 할당

     

     

     

    • 할당 후 작업 > 탄력적 IP 주소 연결 > 처음 생성한 인스턴스와 연결

     

     

     

    6. Express 서버를 EC2에 배포하기

    $ sudo su
    $ apt-get update && /
    apt-get install -y ca-certificates curl gnupg && /
    mkdir -p /etc/apt/keyrings && /
    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nod
    NODE_MAJOR=20 && /
    echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro
    apt-get update && /
    apt-get install nodejs -y
    • 우분투 환경에서 nodejs 설치 필요
      • 해당 명령어로 설치하려고 보니 중간에 overwrite 하라고 y를 하면 더 이상 실행이 안 됨

     

     

     

    sudo apt-get update
    sudo apt-get install build-essential
    sudo apt-get install curl
    curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -- 
    sudo apt-get install nodejs

    • 명령어를 순서대로 입력해 주면 nodejs 설치가 완료된다

     

     

     

    • 실행시킬 샘플을 깃에서 clone 받아 온다

     

     

     

    $ sudo npm i -g pm2
    $ sudo pm2 start app.js
    • pm2 설치 후 서버 실행
    • .env 파일에 db 설정하기

     

     

    실행 확인

     

     

     

    7. SpringBoot 서버 EC2 배포

    $ sudo apt update && /
    sudo apt install openjdk-17-jdk -y

    • JDK 설치 후 java -version 으로 설치 확인

     

     

     

    $ git clone https://github.com/JSCODE-EDU/ec2-spring-boot-sample.git
    $ cd ec2-spring-boot-sample
    • 깃에서 실행시킬 프로젝트 clone
    • application.yml 생성 후 수

     

     

     

    $ ./gradlew clean build # 기존 빌드된 파일을 삭제하고 새롭게 JAR로 빌드
    $ cd ~/ec2-spring-boot-sample/build/libs
    $ sudo java -jar ec2-spring-boot-sample-0.0.1-SNAPSHOT.jar
    • 서버 실행
    • 중간에 멈춰서 인스턴스 중지 후 재시작 > 10분 정도 걸림

     

     

     

    실행 확인

     

     

     

    8. 인스턴스 종료

    • 인스턴스 종료(삭제)
    • 탄력적 IP 주소 릴리스
    728x90

    'AWS' 카테고리의 다른 글

    AWS CLF-002 2주 합격 후기  (0) 2025.09.14
    솔루션 AWS EC2 환경에서 설치 후 작동 테스트  (0) 2025.09.04
    AWS EC2 실습 - 4 (RDS)  (0) 2025.08.06
    AWS EC2 실습 - 3 (ELB)  (3) 2025.08.04
    AWS EC2 실습 - 2 (도메인 적용)  (2) 2025.08.03
Designed by Tistory.