본문 바로가기
프로젝트/ClimbLabs

AWS EC2 서버 생성 및 설정방법

by 에어컨조아 2021. 12. 14.

AWS에 서버를 만들기 위해서는 EC2를 생성해야 합니다.

1.EC2를 만들때에는 크게 주의할 것은 없고 Amazon Linux 2 AMI로 생성합니다. 그 이유는 Amazon에서 관리하고있는 리눅스 이기때문에 AWS 서비스와의 호환성이 좋으며, 아마존 독자 개발 레포지토리를 사용하므로 속도가 빠릅니다. 참고로 Amazon Linux 2 는 기본적으로 센토스OS입니다.
2. 만들면 pem키를 잘 관리하도록 합니다.
3. 인스턴스를 만들었으면 외부에서 접근할 수 있도록 탄력적 IP를 연결시킵니다.
4. 그런다음 인바운드 규칙을 설정하여 외부에서 http 요청이 들어오면 수신할 수 있도록 설정합니다.

  • 보안그룹을 선택 하여 인바운드 설정을 수정합니다.
  • EC2이기때문에 기본적으로 외부에서 들어오는 요청을 수신하기위해 Http, Https를 0.0.0.0/0로 설정합니다.
  • ssh 는 접속할 pc의 ip를 설정해줍니다.
  1. 마지막으로 S3를 사용하려면 보안 자격 증명에서 역할을 등록하여 해당 인스턴스에 등록해줍니다.(이전포스팅 참고)

EC2의 설정이 완료되었으면 이젠 윈도우에서 EC2에 접속하겠습니다.

1.Conversions를 눌러 import key를 선택 합니다.
2. EC2를 만들때 받은 pem key를 선택합니다.
3. Save private key를 눌러 putty를 통한 접속키를 발급합니다.
4. putty에 Connections → SSH → Auth에 저장한 접속키를 설정한뒤 Access 하면됩니다.
5. 이때 Host Name은 AMI에서 기본으로 설정해준 ec2-user를 사용합니다.(ec2-user@ip주소)

EC2 설정

모든 외부설정이 완료된 EC2에 접속했다면 이제부턴 EC2의 내부 설정을 해보겠습니다.

자바설치

sudo yum install -y java-1.8.0-openjdk-devel.x86_64 // 자바8 설치
java -version // 버전확인

TimeZone 설정

sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

HostName 설정

EC2 서버가 여러대일 경우 ip만으로는 해당 서비스가 어떤 서비스인지 확인할 수 없으므로 의미있는 이름을 지어줍니다.

sudo vim /etc/sysconfig/network

HOSTNAME={호스트명}
sudo vim /etc/hostname // 기존에 작성되어있던 hostname을 제거 후 새로작성

호스트 설정까지 끝났으면 서버를 재시작 해줍니다. (sudo reboot)

다시 서버에 접속하면 ip로 보였던 것이 변경한 hostname으로 보이는 것을 확인할 수 있습니다.

마지막으로 hostname을 변경했으니 해당 hostname을 /etc/hosts에 등록해줍니다.

sudo vim /etc/hosts

등록하는 이유는 Mysql(MariaDB)내부적으로 새로운 connection 요청이 들어오면 클라이언트의 ip주소를 이용하여 hostname이 host_cache테이블에 있는지 확인한다고 합니다. 이때 host_cache테이블에 없으면 ip주소를 통해 hostname을 알아내려고 시도를 하게되는데 이게 오래걸리면 connection_timeout이 발생할 수 있다고 합니다. (자세한건 여기에)

마지막으로 설정한 hostname이 잘 등록되었는지 확인해보겠습니다.

curl 호스트 네임

위 그림처럼 80포트로 실행된 application이 없으므로 연결할 수 없다는 메시지가 나오면 성공한겁니다. 만약 could not resolve host에러가 발생한다면 hostname등록이 실패한 것임으로 다시 확인해봅니다.

Reference

도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스

'프로젝트 > ClimbLabs' 카테고리의 다른 글

JdbcSQLSyntaxErrorException 에러 해결과정  (0) 2021.12.16

댓글