열렬히.뛰기

6. AWS 서버 환경 만들기

웹 프로그래밍 > Spring > 스프링부트 공부 (1) > 6. AWS 서버 환경 만들기

6.1 클라우드와 AWS

외부에서 본인이 만든 서비스에 접근하려면 24시간 작동하는 서버가 필요하다.

  1. 집에서 pc를 24시간 구동
  2. 호스팅 서비스
  3. 클라우드 서비스

여기서는 클라우드 서비스, 그 중에서도 AWS를 사용한다.

잘 모른다면, 아래의 링크를 보는 것을 추천!

AWS 계정 만들기

6.2 EC2 인스턴스 생성

  • 리전 : 서울
  • EC2 → 인스턴스 시작

책과 EC2 홈페이지가 많이 다르다. 순서가 좀 뒤죽박죽이니 잘 보는게 좋다.

인스턴스 만들기 (구 UI에서)

  • 책과 같으나 이걸로 하려면 별도의 설정을 건드려야 한다.

인스턴스 만들기 (신 UI에서)

  • 이름 및 태그
    • 태그 넣기를 선택하고
    • 키에는 Name, 값에는 new_spring을 넣었다.
  • 애플리케이션 및 OS 이미지(AMI)
    • 책에서는 Amazon Linux 1 고르라고 하지만, 현재 리스트에는 없다.
    • 대안으로 “Amazon Linux 2 (HVM), Kernel 4.14, SSD Volume Type” 선택.
    • 아키텍쳐는 64비트, X86으로
  • 인스턴스는 t2.micro로
  • 키 페어(pem)
    • 무조건 만들어야 한다.
    • 관리하는 방법을 모른다면? 클릭
  • 네트워크 설정
    • 보안 그룹(방화벽) : 이게 굉장히 중요하다.

      7장에서의 RDS 설정과도 연결지점이 있다.

      편집 누르기

      1. 보안 그룹 이름, 설명 바꾸기
      2. 보안 그룹 규칙
    • 보안 그룹 규칙

      • 유형은 ssh
      • 소스 유형은 내 IP
        • 필요하다면 나중에 추가 해야 한다.
  • 스토리지 구성는 30GB로 (프리티어 최대값)
  • 고급 세부정보는 건드리지 않는다.

여기까지 되었으면 [인스턴스 시작]을 누른다.

이것저것 확인해보기

다시 [인스턴스] - [인스턴스] 로 돌아와서 본다.

아까 만든 인스턴스를 클릭해 보면 여러가지가 나온다.

  • IP
  • 도메인

인스턴스 삭제

만약 인스턴스를 삭제하고 싶다면? 클릭!

EIP 할당

  • EIP = Elastic IP = 탄력적 IP = 고정 IP
  • 요금을 아끼고자 인스턴스를 중지하고 다시 시작할 경우가 있다.
  • 이때 IP가 계속 바뀌기 때문에 고정 IP가 필요하다.
  1. [네트워크 및 보안] - [탄력적 IP]를 누른다.
  2. 오른쪽 위 [탄력적 IP 주소 할당] 클릭
  3. [할당] 클릭
  4. [탄력적 IP 주소 연결] 클릭 - 인스턴스 중 위에서 만든 거 선택
  5. 다시 [인스턴스] - [인스턴스]로 간다.
  6. 제대로 탄력적 IP 가 들어갔는지 확인

6.3 EC2 서버 접속하기

  • 윈도우 기준
  • 윈도우에서는 putty라는 프로그램을 사용한다.
  1. puttygen.exe
  2. [conversations] - [import key] - pem 키 선택
  3. [Generate] 누르기 (마우스 흔들라고 문구 나옴)
  4. [save private key] 누르고 저장
  5. putty.exe 실행
  6. Host Name에 ip 주소 입력하기
  7. [connection] - [SSH] - [Auth] 차례로 클릭
  8. [browse] 버튼 클릭
    • 아까 만든 ppk 파일 선택
  9. 다시 session 클릭
    • Saved session 밑에 이름 넣고 save 누르기
    • open 누르기
    • “예” 또는 Accept 클릭
  10. 까만 콘솔이 나오면서 다음과 같은 문구가 나오면 성공이다.
Using username "ec2-user".
Authenticating with public key "imported-openssh-key" from agent

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/

검은 창이 나왔다는 것은 다음과 같은 상황을 의미한다.

  • 아마존에서 만들어 준 리눅스 컴퓨터에
  • 온라인으로 접속한 상황

리눅스는 CUI 기반이므로 리눅스의 명령어에 익숙해지는 것이 좋다.

리눅스 명령어를 모른다면? 클릭!

여기서 종료하고 싶다면?

다음과 같은 명령어를 입력하면 된다.

sudo shutdown -h

추후 접속할 때

  1. 다시 아마존 EC2로 들어가서 인스턴스를 킨다.
  2. putty를 사용해 기존 버전을 누르고, open을 누르면 된다.

6.4 아마존 리눅스 1 서버 생성 설정

온라인 리눅스 컴퓨터에 프로젝트를 올리는게 우리의 목표.

그런데 이 컴퓨터에는 아무것도 없다. 따라서 이것저것 깔아야 한다.

아마존 리눅스에 자바 깔기

  • sudo yum install -y java-1.8.0-openjdk-devel.x86-64
  • sudo /usr/sbin/alternatives —config java
    • 선택화면 따라가기
  • java -version 누르고 버전 확인

아마존 리눅스 타임존 변경

  • sudo rm /etc/localtime
  • sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
  • date로 시간대 확인

아마존 리눅스 Hostname 변경

  • sudo vim /etc/sysconfig/network
  • a 눌러서 입력모드 전환
  • HOSTNAME=(이름) 입력해 주기
  • esc 눌러서 명령모드 전환
  • :wq! 눌러서 저장 & 종료
  • sudo reboot -h

만약 아마존 리눅스 2버전 이면 다음과 같이 설정해야 한다.

sudo hostnamectl set-hostname 원하는 이름

sudo reboot 명령어 했을 때 오류 & inactive 상태가 될 수 있다.

이 경우에는 껐다 키는 것이 더 나을 수 있다.

  • sudo shutdown
  • 아마존 EC2 홈페이지 > 인스턴스 상태 클릭
  • [인스턴스 중지] 누른 후 > [인스턴스 시작] 누르기

다음과 같이 코드가 나오면 성공이다.

https://aws.amazon.com/amazon-linux-2/[ec2-user@"등록한 명칭" ~]$

추가 등록

  • sudo vim /etc/hosts
  • a 눌러서 입력모드
  • 127.0.0.1 “host 이름”
  • esc 눌러서 명령모드 전환
  • :wq! 눌러서 저장 & 종료
  • curl “host 이름” 누르기
    • (7) Failed to connect to ... port 80 after 0 ms: Connection refused
    • 이 코드가 나오면 성공

여기서 종료하고 싶다면?

다음과 같은 명령어를 입력하면 된다.

sudo shutdown -h

추후 접속할 때

  1. 다시 아마존 EC2로 들어가서 인스턴스 상태를 누른다
  2. 인스턴스 중단 > 인스턴스 시작
  3. putty를 사용해 기존 버전을 누르고, open을 누르면 된다.