우테코 레벨2 AWS - 배포
셋팅한 이후의 명령어
ssh 접속
- 로컬에 key파일(
.pem
) 있는 곳으로 이동
ssh -i {자신의 키파일} ubuntu@{자기 인스턴스의 퍼블릭IP}
cd {프로젝트 폴더 이동}/build/libs
java -jar {프로젝트-SNAPSHOT}.jar &
REST 명령어 실행해보기
curl -X POST "{자신의_인스턴스_주소:포트번호}/api/products" \
-H 'Content-Type: application/json' \
-d '{"name": "치킨", "price": 10000,"imageUrl": "test"}'
처음부터 셋팅하기
aws 셋팅
- 인스턴스 시작
- 이름 및 태그에
ec2-닉네임
- OS 선택 ubuntu
- 인스턴스 유형(
성능
)에 t3.micro 선택 - 키페어 생성 눌러서
key-닉네임.pem
된 것 로컬에 보관 - 네트워크 설정에서
TECHCOURSE
선택 , 서브넷 정보는TRAINING
- 퍼블릭IP 비활성화에서 활성화로 변경
- 방화벽 기존 보안 그룹으로 선택
- 보안그룹은
SG_DEFAULT
로
key 등록하기
cd {자신의 키파일 있는 디렉터리 위치}
ssh -i {자신의 키파일} ubuntu@{자기 인스턴스의 퍼블릭IP}
key 등록 오류 나는 경우 아래 명령어 실행
chmod 400 {key 파일}
wget -O- https://apt.corretto.aws/corretto.key | sudo apt-key add -
sudo add-apt-repository 'deb https://apt.corretto.aws stable main'
sudo apt-get update
sudo apt-get install -y java-11-amazon-corretto-jdk
레포지토리 가져오기
mkdir repository
cd repository
git clone https://github.com/woowacourse/jwp-shopping-cart.git
cd jwp-shopping-cart
./gradlew bootJar #jar 파일 생성
프로젝트 실행
cd build/libs
java -jar jwp-shopping-cart-0.0.1-SNAPSHOT.jar &
실행시 포트 번호 사용중일 경우
lsof -i :8080 # 8080으로 사용중인 포트 번호 검색
kill -9 {PID 번호}
예시
프로젝트 실행 확인하기
curl -X POST "{자신의_인스턴스_주소:포트번호}/api/products" \
-H 'Content-Type: application/json' \
-d '{"name": "치킨", "price": 10000,"imageUrl": "test"}'
주의사항
절대 키 노출하면 안됀다 깃헙 푸시할때 키 노출하면 단속된다 !
그외 크루들에게 공유받은 자료
스컬이 준 자료
터미널로 ec2 접속할때마다 ssh 명령어 입력하기 귀찮으면 이거 한번 해보세요. vi aws.c 를 입력해 aws.c라는 파일을 생성한다. i를 누르고 아래 코드를 입력한다.
#include <stdio.h>
#include <stdlib.h>
int main(void) {
system("ssh -i key-skull.pem ubuntu@15.164.166.148");
return 0;
}
- 인증서와 IP를 자신걸로 바꾼다.
- esc를 누르고 :wq를 입력해 나온다.
- gcc -g aws.c -o aws를 입력한다.
- ./aws를 입력해 자신의 인스턴스에 접속한다.
AWS - 2
제이슨 수업
- 사이더 CIDR
- ping : ip 계층까지 요청이 가는지 확인하는 것 !
- telnet : port 번호까지!
- ping
-4
: Use IPv4 only.
application.[yml/properties]
에 id/pw 정보는 비워두고- 서버가 run할 때 해당 id/pw 정보가 올라가게끔 해야 한다
제이슨
인스턴스를 껐다 켜도 데이터가 휘발되지 않게 만들기 페어당 DB EC2 인스턴스는 하나 이름: ec2-크루1-크루2-db VPC: TECHCOURSE 서브넷: TRAINING 퍼블릭 IP 자동 할당: 비활성화 보안 그룹: SG-DEFAULT-DB 태그: Key: Role, Value: student MySQL 접속 정보가 GitHub에 노출되지 않도록 관리하기