AWS API 서버 띄우기 까지 - 2
해당 글은 의식의 흐름대로 작성 이 되어있다.
AWS 사이트에 가입을 굳이 설명할 필요는 없으므로 생략!
도메인 구입!
Route53에서 도메인까지 구입할 수 있다.
누가 sangoh.com
을 쓰고 있기에.. sangoh.net
으로 하기로 했다.
이제 도메인을 삿으니 기다리면 된다..
(카드에 돈있는지 확인 필수)
echo 서버 만들기
도메인 승인 떨어질때 까지 할일이 없으니 echo 서버를 만들자! Spring Boot로 만들고 다음과 같은 코드를 추가하였다.
@RestController
public class Controller {
@GetMapping("/echo/{text}")
@ResponseBody
public String echo(@PathVariable("text") String text) {
return text;
}
}
이제 echo 서버를 도커 이미지로 꿉기!
굳이 도커를 안해도 되지만 AWS EC2 서버에 쉽게? 배포하기 위해서이다.
다음과 같은 DockerFile
을 만들고
FROM openjdk:8-jre-alpine
VOLUME /tmp
EXPOSE 8080
ARG JAR_FILE=/build/libs/*.jar
ADD ${JAR_FILE} spring-boot.jar
ENTRYPOINT ["java","-jar","/spring-boot.jar"]
전체 소스를 원하신다면 여기 Github
gradlew bild
명령어로 .jar 파일을 만들고 docker build -t spring-echo .
로 Image를 만든다.
잘 되는지 확인하기 위해 docker run -d -p 8080:8080 spring-echo
명령으로 컨테이너를 실행 후
cmd창에 다음 같은 명령어를 입력한다.
>curl http://localhost:8080/echo/hoho
hoho
으흠, 잘 작동한다.!
이미지도 Docker Hub에 올리자
docker push spring-echo
명령을 입력해서 Docker Hub에 이미지를 올렸다.
원한다면 private 혹은 직접만든 저장소에 올려도 된다.
AWS EC2 ubuntu서버 띄우기
하는 방법은 검색하면 많이 나오니 설명은 pass
AWS EC2 서버 보안그룹..
인스턴스의 상세정보를 보다보면 보인그룹이라는 것으 보일 것이다.
거기에 들어가서 인바운드 규칙에 우리가 사용할 8080포트를 열어줘야한다.
AWS EC2 접속하기
window 로컬에 우분투를 설치하였다.
Ubuntu의 home 디렉토리에서 /mnt
폴더에 접근하면 window의 파일들을 볼 수 있다.
cp [원본파일] [복사될 파일이름]
명령어로 .pem 파일을 복사 후 ssh
명령으로 접속하면 된다.
(이럴때는 맥을 쓰고 싶어진다.. 한번도 안써봤지만.. 아님 Window 서버로 열껄 그랬나…)
EC2 우분투 서버에 접속 후…
sudo apt-get update
명령으로 설치된 파일들을 업데이트 해준다.sudo apt-get install docker.io
명령으로 도커를 설치해준다.sudo docker run -p 8080:8080 -d [Docker Hub ID]/spring-echo
컨테이너를 띄운다.sudo docker ps
명령으로 컨테이너가 잘 띄워젔는지 확인
도메인 연결
호스트 영역 > 도메인 선택 > 레코드 세팅 > 레코드 세트 생성 > ip 입력