Skip to content

AWS EC2

Seongbeen Kim edited this page May 15, 2021 · 2 revisions

1. EC2란?

2. EC2를 선택한 이유

  • 외부에서도 접근이 가능한 24시간 작동하는 서버
  • 로그 관리, 모니터링, 네트워크 관리 등을 기본적으로 지원
  • 가입 시 1년간 무료(프리티어)로 이용 가능
  • 많은 기업에서 AWS를 사용하므로 추후에 AWS 사용 경험이 도움이 된다고 생각

3. EC2 인스턴스 생성

1. 인스턴스 시작

ec2 instance create

2. AMI 설정

ec2 ami

  • Amazon Linux 2 AMI를 선택한 이유
    • Amazon이 개발하고 있기 때문에 지원받기 쉽다.
    • AWS의 각종 서비스와 상성이 좋다.
    • Amazon 독자적인 개발 레포지터리를 사용하여 yum이 빠르다.
    • 결과적으로, AWS를 사용하는데 AWS에서 지원하는 운영체제를 선택하지 않을 이유가 없다.

3. 인스턴스 유형 선택

  • 프리티어에서 사용할 수 있는 t2.micro 선택 후 다음 버튼 클릭

ec2 instance type

4. 인스턴스 세부정보 구성

  • 별다른 설정없이 다음 버튼 클릭

ec2 instance detail

5. 스토리지 구성

  • 프리티어에서 최대 30GB 까지 이용가능하기 때문에 30으로 변경 후 다음 버튼 클릭

    ec2 storage

6. 태그 추가

  • 웹 콘솔에 표기될 Name 태그 추가. EC2에 이름을 붙인다는 개념

    ec2 tag

7. 보안 그룹 추가

  • 보안 그룹 이름 변경 + SSH 내 IP로 설정 + 사용자 지정 TCP 포트 8080 설정 + HTTPS 설정

    ec2 firewall

    • 지정된 IP에서만 SSH 접속 가능하도록 하는 편이 좋다.
      • 다른 장소에서 접속해야 할 경우에는 해당 장소의 IP를 SSH에 추가한다.

8. 인스턴스 검토

  • 시작하기 버튼 클릭

    ec2 instance check

  • pem 키는 인스턴스 접근을 위해 필요하기 때문에, 절대 유출되면 안된다. 그러므로 키 페어 다운로드 후 안전한 장소에 저장해야한다.

    ec2 pem

9. 인스턴스 생성 완료

ec2 created

4. EC2 설정

1. 탄력적 IP 주소 할당

  • 인스턴스 생성 시, 중지 및 다시 시작 시 새 IP가 할당된다. 이렇게 매번 IP가 변경되기 때문에 이를 고정 IP를 가지게 설정해주기 위해 탄력적 IP를 할당해야 한다.

    ec2 elastic ip

2. 탄력적 IP를 인스턴스에 연결

ec2 eip connection

3. 탄력적 IP 인스턴스 연결 확인

  • 인스턴스 탭에서 인스턴스 클릭 후 생성된 인스턴스 정보 확인

    ec2 eip ec2 connection

5. EC2 서버 접속

1. SSH 접속

  • SSH 접속 시 매번 ssh -i {pem키 위치} {EC2 IP 주소} 를 입력해줘야 한다.
    • 이러한 번거로움없이 SSH 접속을 가능하게 하기 위해서 다운로드 받은 pem 키 파일을 ~./ssh/로 복사해준다.
      1. cp Downloads/springboot2-kodesalon.pem ~/.ssh/ : pem키 파일 .ssh 디렉토리로 복사

      2. cd ~/.ssh : .ssh 디렉토리로 이동

      3. chmod 600 ~/.ssh/springboot2-kodesalon.pem : pem 키 파일 권한 변경

      4. ll | grep springboot2 : springboot2 라는 이름이 들어간 파일 확인

        ll | grep springboot2
      5. vi config : config 파일 생성 및 수정

        vi config
        • HostName : 탄력적 IP 주소 입력
        • User : User 이름 입력
        • IdentityFile : pem 키 경로 입력
      6. chmod 700 ~/.ssh/config : config 파일 권한 변경

      7. ll | grep config : config 라는 이름이 들어간 파일 확인

        ll | grep config
      8. ssh springboot2-kodesalon : ssh 접속
        ec2 ssh connect
        ssh connected

        • 다음부터는 위의 명령어를 통해서만 접속하면 된다.

2. EC2 서버 설정

  1. Java 11 설치

    • 프로젝트가 Java 11을 사용하므로 Java 11을 설치해줘야 한다.
      1. sudo yum install java-11-amazon-corretto : Amazon Linux 2용 Amazon Corretto 11 설치

      2. java -version : java 버전 확인

        java -version
  2. 타임존 변경

    • 기본 서버 시간은 미국 시간대이므로 한국 시간대로 변경을 해줘야 한다.
      1. sudo rm /etc/localtime : 기존 존재하던 시간대 삭제

      2. sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime : Seoul시간대 정보를 localtime으로 연결

        localtime
  3. Hostname 변경

    • IP만으로 어떤 서비스의 서버인지 확인이 어렵기 때문에, 어느 서비스인지 명확하게 표현하기 위해서 Hostname을 변경해준다.
      1. sudo hostnamectl set-hostname springboot2-kodesalon : springboot2-kodesalon으로 hostname 변경

      2. sudo reboot : 변경을 적용하기 위해 서버 재부팅

        hostname

참조

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

Amazon Linux 2용 Amazon Corretto 11 설치 지침

Amazon Linux 인스턴스에서 호스트 이름 변경

Clone this wiki locally