Web

1. AWS 서버 환경 구축 (AWS EC2)

kakaroo 2022. 3. 4. 19:00
반응형

article logo

 

외부에서 본인이 만든 서비스에 접근하려면 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를 등록 (인스턴스를 나타낼수 있는 값으로 등록)

Name Tag 등록

> 보안 그룹(방화벽) 구성

> 보안 그룹 이름 등록 > SSH : 22 : 내 IP 선택 (pem 키와 지정된 IP에서만 ssh접속 가능하도록)

> 사용자지정 TC : 8080 : 사용자 지정

EC2 보안그룹 생성

0.0.0.0/0 = 모든 IPv4 주소를 의미
::/0 = 모든 IPv6 주소를 의미

 > 인스턴스 검토

 

> 새 키 페어 생성, 키 페어 다운로드(pem key) -> 로컬디렉토리에 저장

--> 생성한 서버의 ubuntu(or linux) 진입하기 위한 파일

--> 해당 pem key를 puttygen 프로그램을 통해 ppk 파일로 생성

key pair 생성

> 인스턴스 생성시작페이지로 이동, 아래와 같이 인스턴스가 생성됨

EC2 인스턴스 생성

> 인스턴스 id를 클릭하여 EC2 목록으로 이동

> 인스턴스 생성이 다 되었으면 IP와 도메인이 할당된 것 확인 가능

인스턴스 상세 정보 - 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 정보 저장 > 서버 접속실행

ssh 접속 성공

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..

반응형