AWS에서 만든 VPS(Virtual Private Server)로 기존 EC2보다 저렴하다는 장점이 있다.
또한 웹 서비스에 필요한 주요 기능들을 한 곳에서 쉽게 관리할 수 있게 구성되어 있어 입문자들도 쉽게 사용할 수 있다.
sudo hostnamectl set-hostname 호스트이름
sudo timedatectl set-timezone Asia/Seoul
yum list | grep java-17
를 입력하면 다음과 같이 java 17버전 목록이 보이는데, headless가 붙은 파일을 설치한다.sudo yum install java-17-amazon-corretto-headless
까지만 입력하면 Java 17버전이 설치된다.java -version
을 입력해서 버전이 나온다면 잘 설치된 것이다.sudo amazon-linux-extras install mariadb10.5
를 입력하면 아마존 라이브러리에서 쉽게 mariaDB 10.5버전을 설치할 수 있다.
mariadb -V
또는 mysql -V
를 통해 잘 설치되었는지 확인한다.
설치가 잘 되었다면 다음과 같이 system상에서 mariadb가 동작하고 있는지 확인하고, inactive (dead)로 되어 있다면 sudo systemctl start mariadb
를 통해 활성화한다.
sudo mysqladmin -u root -p password
를 입력하여 password를 설정해준 뒤에 mysql -u root -p
입력 후 password를 입력하면 mysql이 실행된다.
AWS Lightsail에서 생성한 인스턴스의 고정 IP를 생성하면, 내 컴퓨터의 MySQL Workbench에서 해당 IP를 가지고 커넥션을 생성할 수 있다.
아까 생성한 인스턴스에 들어가면 네트워킹 항목이 있는데, 해당 항목에서 퍼블릭 IP 부근에 있는 고정 IP 연결을 클릭하여 이름은 임의로 작성하고 생성 및 연결하면 된다.
고정 IP를 생성했으면 다음으로 규칙 추가를 눌러 3306 port를 다음과 같이 추가한다.
외부에서 DB에 접속할 수 있도록 권한을 가진 계정을 생성한다.
create user '사용자이름' identified by '패스워드';
user mysql;
select user, host from user;
이렇게 계정을 생성하면 DB에 접속할 수 있게 된다.
생성한 고정 IP와 password를 가지고 MySQL Workbench에서 커넥션을 생성한다.
다음과 같이 입력하면 스키마를 생성할 수 있는 권한을 받아올 수 있다.
grant all privileges on *.* to '사용자이름'@'%' with grant option;
flush privileges
https://filezilla-project.org/
위 filezilla 사이트에서 client 버전을 설치한다.
IntelliJ에서 Gradle - Tasks - build에 있는 boot.jar를 실행하면 jar 파일을 다운로드 받을 수 있다.
다운로드 받은 jar 파일은 프로젝트 폴더에서 build - libs에 위치한다.
설치한 파일질라를 실행하고나서 파일 - 사이트 관리자
에 들어간 후 새 사이트를 다음과 같이 생성 및 연결한다.
기본 키 다운로드
를 클릭하여 다운 받은 파일을 업로드실행은 되는데 'http://고정 ip:8080' 경로로 접속이 안된다면 인스턴스 네트워킹 항목에서 8080포트를 추가한다.
하지만 이렇게 하면 명령창을 닫았을 때 서버도 같이 내려가는데,
nohup java -jar 파일명 &
를 입력하면 명령창을 꺼도 서버가 내려가지 않는다.
만약 서버를 끄고 싶다면 명령창에 ps -ef | grep 사용자이름
을 입력하여 실행중인 프로세스를 찾고, 해당 프로세스 번호를 다음과 같이 입력하여 종료한다.
kill -9 번호
이렇게 내가 만든 서버를 배포해보았다.
처음에는 Elastic Beanstalk로 시도했다가 뭔가 알 수 없는 이유로 계속 실패해서 Lightsail을 사용했다.
배포는 어찌어찌 따라해서 성공했지만, AWS에 대해 많은 공부가 필요하다고 느꼈다.