참고자료 ) 클라우드 서비스 개발자를 위한 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 쓰기

linux는 처음 관리자명 정해져있음 = root
root의 비밀번호 key로 전달.

MobaXterm 설치


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

인스턴스 시작
OS 및 OS 버전 선택

컴퓨터 성능 선택

키페어 생성

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

스토리지 구성

인스턴스 생성 완료

생성된 인스턴스

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

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

2. apt-cache search jdk
sudo apt-cache search jdk
메뉴판에서 jdk 찾기

3. | grep 21 (파이프라인)
이 결과값 다른 함수한테 넘기기 → 파이프라인
return 값을 모니터에 출력한 것
grep 21
where로 필터링한 것
sudo apt-cache search jdk | grep 21

jar 파일을 던져서 실행할거면 jdk 없이 jre만 있으면 된다.
깃허브에서 코드를 내려받아서 컴파일하면서 jar 파일을 구워내려면 jdk 필요하다.
4. apt install openjdk-21-jdk (JDK 설치 )
sudo apt install openjdk-21-jdk

spring 서버 배포
1. git clone


cd f + tab키

ls = list의 약자
ls -l : 자세히 보기

소유자 ubuntu
ubuntu로 로그인해서 다운받았기 때문
x = 실행파일
./ = 현재 폴더 내에
테스트 없이 jar 파일 굽기 프리티어에서는 컴퓨터 맛감..
git clone 후 파일 삭제 후 다시 git clone

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

gradlew 빌드

서버 실행

inbound 8080 포트 열기




8080 포트가 잘 열린걸 확인할 수 있다.

어디에서든지 접근 가능하다.

Share article