외부에서 본인이 만든 서비스에 접근하려면 24시간 작동하는 서버가 필수입니다.
일반적으로 비용은 호스팅 서비스나 집 PC를 이용하는 것이 저렴하나 특정시간에만 트래픽이 몰린다면 유동적으로 사양을 늘릴수 있는 클라우드가 유리합니다.
AWS의 EC2는 서버 장비를 대여하는 것이지만, 실제로는 그 안의 로그관리, 모니터링, 하드웨어 교체, 네트워크 관리 등을 기본적으로 지원하고 있습니다.
그럼, AWS 서버환경을 만들어 보겠습니다.
1. AWS 회원가입
http://aws.amazon.com/ko/ 에서 무료계정 생성 (준비물: Master 혹은 Visa card)
2. 콘솔 로그인 > EC2 인스턴스 생성
EC2(Elastic Computer Cloud)는 AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버입니다. 보통 AWS에서 리눅스 서버 혹은 윈도우 서버를 사용한다 라고 하면 이 EC2를 이야기 하는 것입니다.
https://console.aws.amazon.com/console/home?region=us-east-1 위 1에서 가입한 정보를 이용해 콘솔 로그인
서비스 찾기 > EC2 > 인스턴스 시작 > AMI(Amazone Machine Image) 리눅스 1 선택
> 무료 제공하는 프리티어 플랜에서는 t2.micro 만 가능 > 인스턴스 세부정보 구성
> 인스턴스 개수 1 > 스토리지 추가 > 30G (프리티어 Max) > 태그 추가
> Name tag를 등록 (인스턴스를 나타낼수 있는 값으로 등록)
> 보안 그룹(방화벽) 구성
> 보안 그룹 이름 등록 > SSH : 22 : 내 IP 선택 (pem 키와 지정된 IP에서만 ssh접속 가능하도록)
> 사용자지정 TC : 8080 : 사용자 지정
0.0.0.0/0 = 모든 IPv4 주소를 의미
::/0 = 모든 IPv6 주소를 의미
> 인스턴스 검토
> 새 키 페어 생성, 키 페어 다운로드(pem key) -> 로컬디렉토리에 저장
--> 생성한 서버의 ubuntu(or linux) 진입하기 위한 파일
--> 해당 pem key를 puttygen 프로그램을 통해 ppk 파일로 생성
> 인스턴스 생성시작페이지로 이동, 아래와 같이 인스턴스가 생성됨
> 인스턴스 id를 클릭하여 EC2 목록으로 이동
> 인스턴스 생성이 다 되었으면 IP와 도메인이 할당된 것 확인 가능
AWS의 public IP는 동적 IP입니다. 우리는 고정 IP가 필요합니다.
아래 조건을 충족해야 무료이며, 그게 아니면 시간당 요금이 부과됩니다.
- 인스턴스에 연결된 탄력적 IP 주소가 하나뿐이다.
- 탄력적 IP 주소가 EC2 인스턴스에 연결되어 있는 상태이다.
- 탄력적 IP 주소가 연결된 인스턴스가 실행중이다.
AWS의 고정 IP 를 EIP(Elastic IP, 탄력적 IP)라고 합니다. 서버 IP로 사용할 고정 IP를 할당해야 합니다.
탄력적 IP > 탄력적 IP 주소 할당 > 범위 VPC, Amazon 풀 > 할당 > 탄력적 IP가 발급됨
> 새주소할당 옆의 작업 목록 열어 주소 연결 > 생성한 EC2 이름과 IP를 선택해 연결 (리소스유형: 인스턴스)
> 좌측 인스턴스 목록에서 인스턴스 선택 > 탄력적 IP가 연결되었는지 확인
3. EC2 서버에 접속
putty.exe/puttygen.exe 활용
3.1 puttygen.exe 으로 기존 pem key를 ppk 파일로 변환
import key > SSH-2 RSA 선택된 상태에서 generate > RSA 상태로 Save private key > ppk 파일 저장
3.2 putty.exe로 서버 접속
Host name : username@public_ip 등록 (ec2-user@EIP)
-> 아래 pem 파일 뒤의 부분을 복사해서 Putty의 HostName으로 입력합니다.
port : SSH , Port : 22
Connection > SSH > Auth > Private key에 저장한 ppk 파일을 load
session 정보 저장 > 서버 접속실행
3.3 설정
Java 설치
#sudo apt-get install -y java-1.8.0-openjdk_devel.x86_64
#sudo /usr/sbin/alternatives --config java //Java 버전 변경
#sudo apt-get remove java-1.7.0-openjdk
Apache 서버 설치
#sudo apt-get install apache2
아파치 서버가 실행이 되면 위에서 설정한 탄력적 IP로 접속시 아래와 같이 Apache main page가 load 됩니다.
타임존 변경
#sudo rm /etc/localtime
#sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
#date
호스트 네임 변경
서버 접속시 IP만 노출되어 어떤 서버인지 구분이 어렵습니다.
#sudo vim /etc/sysconfig/network
HOSTNAME 만 적절하게 변경
#sudo reboot
#sudo vim /etc/hosts //호스트 주소를 찾을 때 가장 먼저 검색해보는 /etc/hosts 수정
127.0.0.1 등록한 hostname 등록
#curl 등록한 호스트 이름
실패 : could not resolve host
성공 : failed to connect to..
'Web' 카테고리의 다른 글
3. AWS - EC2 서버에 프로젝트 배포 (0) | 2022.03.05 |
---|---|
2. AWS - RDS 환경 구축 (0) | 2022.03.04 |
1. SpringBoot - JPA server using MySQL (0) | 2022.02.18 |
Android에서 SpringBoot JPA 서버와 연동하기 (0) | 2022.02.17 |
Spring Boot - Eclipse Maven으로 Spring Web Layer 실습 (0) | 2022.02.14 |