EC2는 회사에 인프라 관리자가 있거나 자신이 가상 서버, 네트워크, 디스크 볼륨, 보안 그룹 등의 관리를 하드하게 해야하는 분에게 상대적으로 더 적합하다.
상세 설정을 통해서 비용이든 성능이든 이득을 얻을 수 있는 환경에서 일하고 있다면 EC2와 관련 서비스들의 유연한 환경설정은 큰 장점이기 때문이다.
또한 EC2는 네트워크 트래픽보다는 CPU 연산 위주의 프로젝트를 돌릴 때 더 유리하다.
무엇보다 서버를 껏다 켰다 하면서 과금되는 시간을 조절할수도 있다는 온디멘드 방식은 매우 매력적인 옵션이다.
그러나 뒤집어 이야기하면 세팅 하려고 정작 개발을 못하거나, 개발하는 시간보다 인프라 관리하는 시간이 더 들어야 하는 분에게는 주객이 전도된 상황이 생기게 된다.
Lightsail은 인프라 관리해줄 사람이 없고 혼자서 빠르게 웹서비스를 호스팅 해보려는 분에게 더 적합하다.
만일 라이트세일을 사용하다 서버 성능을 올리고 싶으면, 이미지를 떠서 고사양의 Lightsail 인스턴스를 만든다음 import하면 몇 분 안에 똑같이 생성되니 문제 없다.
Lightsail은 CPU 연산 위주의 작업보다 네트워크 트래픽에 더 중점을 두는 서비스에 적합하다.
둘에 대한 자세한 비교는 AWS 공식 문서를 통해 확인해 볼 수 있다 .
https://aws.amazon.com/ko/premiumsupport/knowledge-center/lightsail-differences-from-ec2/
Lightsail을 사용해보려 한다.
돋보기를 클릭하여 Lightsail을 찾는다.
Create instance를 클릭하여 인스턴스를 생성하도록 하자.
우리는 Ubuntu Linux를 생성할 예정이다.
Create New 클릭 => 서버에 접속하기 위한 키페어를 생성
키페어를 다운받으면 .pem 파일을 받을 것이다. 노출되지 않도록 꼭 유의 해야한다.
첫 3개월은 무료라고 한다. $3.5의 용량을 가진 인스턴스를 생성해보도록 한다.
<**참고** $3.5는 용량이 매우 적어요 .ㅠㅠ>
인스턴스가 생성되었다. 클릭하여 인스턴스의 정보를 볼 수 있다 .
Networking 탭에 들어와서 Add rule을 클릭한다.
필자는 톰캣이 포함되어있는 스프링부트 jar파일을 실행해보기 위해 8080포트를 추가로 뚫어주었다.
서버를 중지시켰다가 다시 실행되면 IP가 바뀌는 번거로움 때문에 static IP를 설정을 주었다.
이 후 실행해보도록 하자.
Connect 탭에 버튼을 클릭하여 연결하는 방법도 있고 현재 윈도우 환경이라 puTTy를 이용해도 좋지만 관리자 명령프롬프트(Cmd)를 사용해서 서버에 접근해보았다.
ssh -i 키파일 ubuntu@IP
다른 사람들을 보니 새로 ssh 폴더를 만들고 키파일을 복사해서 사용하던데 필자는 실행할 때 실행위치를 키파일을 포함하는 폴더의 위치에서 실행하였다. 하지만 전자의 방법이 추후 실행할 때 더 편리한 것 같다...
서버를 밀고 새로 작업하거나, 동일한 아이피로 다른 서버를 세팅하게 되면 아래와 같은 문제가 발생한다. 대충 읽어보면 중간자 공격에 위험이 있다고 뜨는데, 이러한 경고의 이유는 전자서명 중 하나인 ECDSA가 관련해서 일치하지 않는다이고, 이를 해소하기 위해서는 아래의 명령어를 입력한다. 처음 시도하는 것이라면 이런 오류는 뜨지 않을 것이다.
ssh-keygen -R ~.~.~.~
//접속할 서버의 아이피를 입력하자. 그럼 초기화되며 다시 접속이 가능해 진다.
다시 접속을 시도해보니 이번에는 다른 오류가 출력되었다.
UNIX계열에서는 chmod 로 워낙 간단하게 고칠 수 있지만, 윈도우 환경에서는 UI기반으로 작업을 진행했다...
(맥북 구매한지 3일차...)
1. 키.pem 파일의 속성 클릭
2. 보안 탭 이동
3. 고급 선택 후 상속 사용 안함 클릭
4. 명시적 사용 권한으로 변경 후 있는 유형 모두 제거
5. 추가 => 보안 주체 허용 => 개체 이름 입력 => 확인
6. 모두 확인을 누르고 다시 실행해보자.
여러개의 호스트를 사용할 수 있기 때문에 hostname을 수정하는 작업을 진행한다.
/etc/cloud/cloud.cfg를 수정
(hostnamectl의 set-hostname 작업을 허용한다.)
$ sudo nano /etc/cloud/cloud.cfg
preserve_hostname: true를 preserve_hostname: false로 변경한 후 저장한다.
systemd-logind.service를 재시작
$ sudo systemctl restart systemd-logind.service
$ sudo hostnamectl set-hostname [변경할 hostname]
재 실행 후 확인
$ sudo reboot now
실행 결과
현재 시간 변경
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
이후에는 도메인을 구매하여 이 서버에 연결하고 SSL 인증서를 발급받아 HTTPS에 띄우는 작업을 진행한다.
'IT' 카테고리의 다른 글
스프링부트 카카오 소셜 로그인 3(OAuth2User, OAuth2UserService) (1) | 2022.09.28 |
---|---|
스프링부트 카카오 소셜 로그인 2(OAuth 로그인 활성화 및 객체 등록) (0) | 2022.09.27 |
Spring Security User(UserDetail) 커스텀 (0) | 2022.09.26 |
스프링부트 카카오 소셜 로그인 1(셋팅 및 설정 작업) (0) | 2022.09.25 |
OAuth 2.0 (access Token 발급 과정) (0) | 2022.09.25 |