[AWS] 0. Tutorial

김주희's avatar
Jun 16, 2025
[AWS] 0. Tutorial
💡
참고자료 ) 클라우드 서비스 개발자를 위한 AWS로 구현하는 CI/CD 배포 입문
OS 명령어 해석기 (= shell)
관리하는 시스템은 같고 shell 명령어가 다르다.
핵심 커널 기술은 같다.
커널이 컴퓨터 대신 관리
근데 명령 내려야 하는데 그건 os마다 다르다.
GPL - MIT (상업적 사용 가능 여부만 다름)
UNIX
|
LINUX
|
RedHat - Debian (핵심 커널 기술은 같고 명령어만 다르다.)
yum - apt (패키지 관리자 gradle이나 pub get 같은)
| |
| ubuntu - Rasbian
아마존 리눅스 - 솔라리스 - 센토스
 
inbound 요청 :
inbound 포트 개방
기본적으로 포트 닫혀있는 상태
내 서버 다른 사람이 요청하면 = 내 서버 기준 inbound 요청 → 8080 포트 열어야 된다.
들어왓다가 빠져나가는 거 outbound = inbound가 있어야 outbound가 있다. = 통신의 기본 - 요청이 있어야 응답 가능
outbound는 안막는다.
inbound로 들어오는 포트만 막느낟.
리버스쉘 : req해야 resp 되는데 안쪽에서 클라이언트로 req (안에서 밖으로 ) ⇒ 연결됨 선 안끊음?
 
IP와 Port로 요청 - 컴퓨터끼리? 연결 - 약속된 22번 포트(터미널이 연결되는 포트)를 열어야 한다.
터미널 = 내컴퓨터 제어
텔넷이라는 원격 터미널 열어서 다른 컴퓨터 연결
포트 번호 적을 필요 없음 디폴트가 22니까 ip만 적으면 된다.
연결해서 통신을 할 수 있는 상태 = 세션이 열렸다.
아무나 받으면 안되니까 허용된 사람만 받도록 토큰이나 아이디/패스워드 받음
토큰 대칭키로 만듦
토큰 대칭키로 구웠어. 통신 전에 전달 못함. 컴퓨터 설치된 곳으로 걸어가서 대칭키로 구운 토큰 usb에 담아서 전달. 한번 세션 열면 안보내는게 편함
대칭키 불편 → 공개키
private key로 잠그면 공개키로 풀어볼 수 잇음
 
원격 터미널로 aws 컴퓨터 제어?
outbound는 다 열려있고 잠그고 싶은거 닫기
inbound는 다 막혀있고 열고 싶은거 열기
inbound시에 검증 - 신뢰할 수 있는 사람이면 요청한 사람에게 outbound
req 없이 resp 있을 수 없고
 

MobaXterm

= 텔넷 = 원격 터미널
그냥 텔넷 쓰면 암호화 안되어있어서 망함
ssh 쓰기
notion image
 
linux는 처음 관리자명 정해져있음 = root
root의 비밀번호 key로 전달.
notion image
 
 

MobaXterm 설치

notion image
notion image
 
 

EC2

컴퓨팅
ec2
aws 붙은걸 먼저 공부 - primitive
amazon 붙은거 나중 primitive를 결합한 것듯
 
아시아 서울에서만 하기
notion image
 

인스턴스 시작

OS 및 OS 버전 선택

notion image
 

컴퓨터 성능 선택

notion image
 

키페어 생성

notion image
 

네트워크 설정 (inbound/outbound/port)

notion image
 

스토리지 구성

notion image
 

인스턴스 생성 완료

notion image

생성된 인스턴스

notion image
 
 
퍼블릭 IPv4 주소 = 어디서든지 요청할 수 있는 공인 IP이자 유동 IP → 서비스로 사용 불가능
프리티어여도 컴퓨터를 빌리는 거는 비용이 들지 않지만 퍼블릭 IP 주소의 경우 돈이 나간다.
 
사설 IP 주소 = 이 컴퓨터도 어떤 공유기 안에 묶여있는 것 = 여기서 접속 안됨
외부에서 접근할 때 = 퍼블릭 IPv4 필요
같은 내부 컴퓨터끼리는 사설 IP 가능
 

EC2 서버에 접속하기

notion image
 

1. apt update

엔터 쳤을 때 통신이 일어나면서 아마존의 컴퓨터로 명령어를 실행한 것
sudo apt update
 
apt update = 메뉴판을 업데이트해서 메뉴 동기화
 
notion image
 

2. apt-cache search jdk

sudo apt-cache search jdk
메뉴판에서 jdk 찾기
notion image
 

3. | grep 21 (파이프라인)

 
이 결과값 다른 함수한테 넘기기 → 파이프라인
return 값을 모니터에 출력한 것
 
grep 21
where로 필터링한 것
sudo apt-cache search jdk | grep 21
notion image
 
jar 파일을 던져서 실행할거면 jdk 없이 jre만 있으면 된다.
깃허브에서 코드를 내려받아서 컴파일하면서 jar 파일을 구워내려면 jdk 필요하다.
 

4. apt install openjdk-21-jdk (JDK 설치 )

sudo apt install openjdk-21-jdk
notion image
 

spring 서버 배포

1. git clone

notion image
 
notion image
 
cd f + tab키
notion image
 
ls = list의 약자
ls -l : 자세히 보기
notion image
소유자 ubuntu
ubuntu로 로그인해서 다운받았기 때문
x = 실행파일
 
./ = 현재 폴더 내에
 
테스트 없이 jar 파일 굽기 프리티어에서는 컴퓨터 맛감..
 

git clone 후 파일 삭제 후 다시 git clone

notion image
 

실행 파일로 chmod

실행 파일이 아닌 gradlew를 실행 파일로 변경
notion image
 

gradlew 빌드

notion image
 

서버 실행

notion image
 

inbound 8080 포트 열기

notion image
 
notion image
 
notion image
 
notion image
8080 포트가 잘 열린걸 확인할 수 있다.
notion image
 
어디에서든지 접근 가능하다.
notion image
Share article

jay0628