[AWS]AWD EC2 linux설정
in Study on AWS&Docker
윈도우가 아니라 리눅스로 설치해보자
두개 차이를 모르겠는데 맨 위의 AMI선택
이후 검토 및 시작이 아니라 다음으로 넘어가기를 누른다.
서버 1개쓰니까 딱히 별다른 설정 안하고 다음 누른다.
스토리지 구성에서 크기는 30GB로 하고 다음으로 넘어간다.
그리고 다음으로 넘어가서 태그 추가 후 Name을 키로 값으로 springboot2-webservice로 만들어준다
그리고 보안그룹인데 보안그룹은 방화벽을 얘기한다.
서버로 80포트 이외엔 허락하지 않는다는 방화벽이 AWS에서는 보안그룹으로 쓰인다.
이 보안그룹이 가장 중요하다
유형하옥에서 SSH이면서 포트학목에서는 22인 경우 AWS EC2에 터미널로 접속할 때 이야기.
pem키가 없으면 접속이 안되느 0.0.0.0 하는 경우 종종 발견하는데 이러면 파일공유 디렉토리나 pem키가 실수로 노출되면 서버에서 가상화폐가 채굴될 수 있다.
그리고 보안은 언제나 높으면 좋으니 pem키 관리와 지정된 IP에서만 ssh접속이 가능하도록 구성하는 것이 안전하다.
그래서 본인 IP를 기본적으로 추가하고(내 IP선택시 현재 접속IP가 자동 지정) 카페나 다른 곳이면 해당 IP를 다시 ssh 규칙에 추가하는 것이 좋다.
현재 기본인 8080을 추가하고 검토 및 시작을 클릭
검토 화면에서 보안그룹 경고하는데 8080이 전체 오픈되서 발생하는데 8080을 전체 여는건 위험한 일은 아니라 바로 시작한다.
이후 기존 키가 있다면 기존키 없으면 새 키를 선택해서 시작한다.
인스턴스도 하나의 서버라 IP가 존재한다. 인스턴스 생성시 항상 새 IPㄹㄹ 할당한다.
같은 인스턴스를 중지시키고 시작해도 새 IP가 할당된다.
요금을 아끼려 인스턴스 중지 후 다시 시작시 IP가 벼경되는데 이러면 매번 접속되는 IP가 변경되서 PC에 접근할때마다 IP주소를 확인해야 한다.
굉장히 번거로우므로 인스턴스 IP가 변경되지 않고 고정 IP를 가지게 해야한다.
고정 IP를할당한다.
EIP할당
AWS고정 IP를 Elastic IP라고 한다.
이후 새 주소 할당을 한다
그 뒤 EC2로 접속한다.
Window는 ssh에 접속하기엔 불편해서 putty를 사용한다.
실행파일은 putty.exe, puttygen.exe 2개 파일이다.
putty는 pem키로 사용이 안 되며, pem키를 ppk로 변환해야 한다
puttygen은 이 과정을 진행하는 클라이언트다.
puttygen에서 conversions->important key를 선택해서 pem키를 선택한다.
그리고 ppk를 저장할 위치와 이름을 등록한다.
ppk가 만들어진다.
HostName : username@public_Ip를 등록합니다. 우리가 생성한 Amazon Linux는 ec2-user가 username이라서 ec2-user@탄력적 IP주소를 등록
Port: ssh접속 포트인 22를 등록한다
Connection type : ssh를 선택한다.
위 browse에서 생성한 ppk선택해서 불러오고 session탭으로 이동해서 saved sessions에 설정을 저장하고 saved를 한다.
근데 위 host네임에 ec2-users이렇게 하니까 안 되길래 구글링 후 퍼블릭 ip4주소를 넣으니까 정상 작동했다
정상 작동시 경고창이나온다. 예를 눌러준다.
이제 해당 putty 접속 후 ec2-user를 넣으면 정상 로그인이 된다.
이후 접속해서 자바8, 타임존 변경 , 호스트네임(현제 접속한 서버 별명 등록)을 한다.
자바 8 설치
sudo yum install -y java-1.8.0-openjdk-devel.x86_64
설치 완료 후 인스턴스 java를 8로 변경
sudo /usr/sbin/alternatives --config java
타임존 변ㄴ경
EC2의 기본 타임존은 UTC, 이는 세계 표준 시간으로 한국의 시간대가 아니다. 한국과 9시간 차이가 발생하고 이렇게 되면 서버에서 수행되는 java애플리케이션에서 생성되는 시간도 9시간 차이가 나기 떄문에 꼭 수정해야한다.
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
kst로 변경을 확인할 수 있다.
HostName설정
여러 서버 관리 중일 경우 IP만으로 어떤 서비스의 서버인지 확인이 어렵다
그래서 어느서버가 어떤 서비스인지 확인하기 위해 HOSTNAME을 변경한다.
sudo vim /etc/sysconfig/network
위와 같은 화면이 나오게 되고 hostname부분을 원하는 서비스 명으로 변경한다
이후 sudo reboot로 재부팅을 해준다.
근데 putty에서는 위 에러가 뜨는데 아마 aws인스턴스가 실행중이라 그런가보다.
ec2에 rds등록
sudo yum install mysql
이후 mysql -u 계정 -p -h HOST주소 로 등록해준다.
mysql -u admin(사용자 이름) -p -h springboot2-webservice.c3wlv6jbqwu8.ap-northeast-2.rds.amazonaws.com(엔드포인트)
mysql -u admin --host springboot2-webservice.c3wlv6jbqwu8.ap-northeast-2.rds.amazonaws.com
근데 위 구문 넣어도 에러나길래 소스 부분을 anywhere ip4로 바꿨더니 정상 작동한다.