[인프라] AWS란? (AWS 왕왕기초) + 수동배포

2026. 5. 6. 13:59·CS/인프라

AWS

개발이 끝났다면 내가 만든 애플리케이션을 사용자들이 사용할 수 있도록 배포를 해야한다.

물론 개인PC를 통해 배포해도 큰 문제는 되지 않지만... 24시간 내내 서버를 돌리고 있어야하고, 학교 가다가 잠깐 인터넷이 끊겼다거나, 배터리 이슈로 서버가 멈출 수도 있고, 남들이 내 컴퓨터에 접근할 수도 있기 때문에 보안적으로 바람직하지 않다.

 

따라서 PC를 빌려야한다. 이 PC를 제공해주는 회사가 바로 AWS


용어정리

EC2

 

Elastic Compute Cloud

AWS에서 제공하는 클라우딩 컴퓨터 대여서비스다. 이곳에 서버를 띄우고 배포를 하는 과정으로 배포가 이루어진다.

 

인스턴스

EC2에서 빌린 컴퓨터를 인스턴스라고 칭한다. 컴퓨터의 사양이 다양하듯이 인스턴스의 성능도 다양하며, 배포할 서버의 특징에 따라서 원하는 인스턴스를 대여하면 된다.

 

보안그룹

보안그룹은 일종의 방화벽 역할을한다. 기본적인 EC2는 모든 트래픽에 대한 포트를 차단하며, 특정 포트만 열어놓는 방식으로 요청을 걸러낸다. 일반적인 EC2 보안그룹은 80(HTTP), 443(HTTPS), 22(SSH)번 포트를 기본적으로 열어둔다. 컴퓨터 네트워크의 그 포트가 맞다.

 

보안그룹은 밖에서 들어오는(Inbound)와 밖으로 나가는 (OutBound) 트래픽에 모두 적용시킬 수 있으며, 앞서 말한 가장 기본값은 인바운드 트래픽에서 적용된다. 아웃바운드 트래픽은 보안그룹이 잘 지정되지 않는다고. 그래서 마치 보안그룹이 인스턴스 주변을 가로막은, 울타리 또는 방화벽의 형태를 띈다고한다.

 

추가적으로 RDS를 사용 중일 때 EC2용 보안그룹과 RDS(DB)용 보안그룹은 따로 잡아야한다. EC2용 보안그룹은 위처럼 80, 443, 22번 포트를 기본적으로 열어주는 것이 맞지만, DB는 사진처럼 오직 EC2의 요청만 통과시켜야하기 때문에 보안그룹을 EC2로만 지정해야한다.


사용하기 (수동배포)

도커 이미지 빌드

https://dev-dx2d2y-log.tistory.com/239

 

[인프라] 도커란? (도커왕왕기초)

도커란?애플리케이션을 배포 및 실행할 때마다 환경이 달라질 수 있다. 내가 JDK17로 개발했지만 서버를 돌리는 컴퓨터를 구해왔더니 JDK8이 깔려있을 수도 있고, 라이브러리가 안깔려있어서 죄다

dev-dx2d2y-log.tistory.com

우선은 배포할 애플리케이션과 그것을 실행시킬 환경이 필요하다. 그리고 이는 도커 컨테이너 안에 들어있기 때문에 도커 이미지만 빌드하면 된다.

 

다만 추가로

./gradlew build
/gradlew build -x test

이 과정은 필요하다.

위의 명령어는 도커가 실행시킬 jar 파일을 만드는 명령어, 밑의 명령어는 테스트는 생략하고 빌드를 하라는 명령어다. 테스트를 생략하는 이유는 다른 곳에서 테스트할 기회도 많기도하고 시간도 줄이기 위해서다. 이 때 테스트를 생략하지 않으면 돌아가는 테스트코드는 개발자가 직접 만든 ApplicationTest 코드이다.

 

EC2 접속 및 세팅

ssh -i "pem키 이름" ubuntu@ec2-13-209-67-38.ap-northeast-2.compute.amazonaws.com

그런 다음 EC2 인스턴스에 연결한다. 위 명령어는 pem키가 있는 곳에서 실행시켜야 pem키의 이름만으로 동작할 수 있으며, 그렇지 않으면 pem 키의 절대경로를 입력해야한다. ubuntu@ 뒤쪽은 퍼블릭 DNS 주소다.

그리고 위 명령어가 실행되면, EC2 인스턴스에 원격접속이 가능해진다.

 

sudo apt update
sudo apt install docker.io -y
sudo usermod -aG docker $USER
newgrp docker

그리고 인스턴스 내부에 도커를 깔아야한다. 순서대로 설치 가능 목록을 최신상태로 갱신 - 도커 엔진 설치 - 현재 유저를 docker 그룹에 추가 (이러면 도커를 실행할 때마다 sudo 명령어를 치지 않아도 된다) - 그룹 변경사항을 즉시 적용 을 뜻한다.

 

이 이후 과정은 도커 컨테이너 과정과 같다. pull -> run 순으로 동작시키면 된다.


gradlew build 과정. test가 없어야 이렇게 빨리끝난다.

 

원격접속

도커 세팅

 

이미 빌드된 것이 있어서 그대로 run을 돌렸다. 추가로 -env 파일이 필요했기 때문에 --env-file 옵션으로 .env 파일을 알려주고, --name 옵션으로 컨테이너의 이름도 지정해주었다.

 

요청이 잘 도착하는 모습


이렇게 AWS의 간단한 기초에 대해 알아봤는데, AWS에는 더 심화된 내용도 있고 더 많은 기술도 있다. RDS, S3와 같은 데이터베이스 관련 내용도 있고, ALB와 같은 로드밸런서도 있다. CI/CD에 대해서도 배울 것이고, 서브넷, VPC와 같은 이론적인 내용도 다룰 것이고.  하지만 이 글이 가장 기초가 될 것이다.

 

'CS > 인프라' 카테고리의 다른 글

[인프라] 도전! 실전 깃허브 액션  (0) 2026.05.12
[인프라] CI/CD 깃허브 액션에 도커컴포즈 적용하기  (0) 2026.05.07
[인프라] CI/CD와 깃허브 액션  (0) 2026.05.07
[인프라] 도커란? (도커왕왕기초)  (0) 2026.05.06
'CS/인프라' 카테고리의 다른 글
  • [인프라] 도전! 실전 깃허브 액션
  • [인프라] CI/CD 깃허브 액션에 도커컴포즈 적용하기
  • [인프라] CI/CD와 깃허브 액션
  • [인프라] 도커란? (도커왕왕기초)
컬러잇
컬러잇
탄천러너지망생
  • 컬러잇
    Color it
    컬러잇
  • 전체
    오늘
    어제
    • 분류 전체보기 (235)
      • 신년사 (3)
        • 2025년 (2)
        • 2026년 (1)
      • CS (72)
        • JVM (12)
        • 인프라 (5)
        • 백엔드 (22)
        • 논리회로 (5)
        • 언어구현 (1)
        • 인공지능 (1)
        • 코드설계 (3)
        • 컴퓨터구조 (9)
        • 데이터베이스 (4)
        • 컴퓨터 네트워크 (10)
      • 언어공부 (65)
        • Java | Kotlin (49)
        • JavaScript | TypeScript (9)
        • C | C++ (6)
      • 개인 프로젝트 (11)
        • [2025] Happy2SendingMails (3)
        • [2026] 골든리포트! (8)
        • [2026] 순수자바로 개발하기 (0)
        • 기타 이것저것 (0)
      • 팀 프로젝트 (29)
        • [2025][GDG]홍대 맛집 아카이빙 프로젝트 (29)
      • 알고리즘 (13)
        • 백준풀이기록 (11)
      • 놀이터 (0)
      • 에러 수정일지 (4)
      • 고찰 (35)
        • CEOS 23기 회고록 (9)
  • 링크

    • 교양있는컬러잇
  • 최근 글

  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.5
컬러잇
[인프라] AWS란? (AWS 왕왕기초) + 수동배포
상단으로

티스토리툴바