AWS 인스턴스 생성 및 설정(1)

김도훈 - DevOps Engineer·2022년 3월 26일
0

AWS

목록 보기
2/4

AWS EC2 인스턴스 생성 및 환경 설정


AWS에서 프리티어로 제공하는 플랜에서는 다음과 같은 제한이 있다.
  • 사양이 t2.micro만 가능하다.
  • 월 750시간의 제한이 있다. 초과하면 비용 부과
    (인스턴스 1대를 한달동안 끊지않고 돌릴 수 있다. 2대 초과시 비용 부과)

📞 EC2 인스턴스 생성 & 탄력적 IP 연결


  1. 본인의 리전을 서비스 지역으로 변경해준다. (서울)

  1. ec2에 접속 후 인스턴스 시작 버튼 클릭

  1. 왼쪽 하단 버튼에 프리티어만 버튼을 누르고 원하는 AMI를 선택한다.
    (Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type)

  1. 선택 버튼을 누르면 다음과 같은 화면이 나오는데 프리티어는 t2.micro유형만 선택이 가능하다.

  1. 인스턴스 구성은 넘어가고 스토리지 구성에서 크기를 30GiB로 설정한다.(프리티어 최대 용량)

  1. 태그추가 > 키(Name), 값(인스턴스 표현할 이름) 입력
  • 웹 콘솔에서 표기될 태그인 Name 태그를 등록한다. 태그는 해당 인스턴스를 표현하는 여러 이름으로 사용될 수 있다.

  1. 보안 그룹 추가 > [내 IP 설정], 기본 8080 포트 설정] > 검토 및 시작 클릭
  • 보안 그룹은 방화벽을 이야기한다. 서버로 80포트 외에는 허용하지 않는다'는 역할을 하는 방화벽이 AWS에서는 보안 그룹으로 사용된다.
    SSH이면서 포트 항목에서 22인 경우AWS EC2에서 터미널로 접속할 때를 이야기한다. pem키가 없으면 접속이 안 되니 전체 오픈(0.0.0.0/0, ::/0)하는 경우가 종종 있는데 이렇게 되면 이후 파일 공유디렉토리나 깃허브 등에 실수로 pem키가 노출되는 순간 서버에서 가상화폐가 채굴되는 것을 볼 수 있을 것이다.
    지정된 IP만 접속이 가능하도록 설정하고 다른 장소에서 접속할 경우 해당 장소 IP를 다시 능동적으로 SSH 규칙에 추가하는 것이 안전하다.

  1. 인스턴스 검토 > 시작하기 > pem키 생성 OR 선택 > 인스턴스 시작
  • 인스턴스로 접근하기 위해서는 pem키가 필요하다. 그래서 마지막 단계는 할당할 pem키를 선택해준다. 일종의 마스터 키이기 때문에 절대 유출하면 안된다. 잘 관리할 수 있는 디렉토리로 저장한다. 기존에 생성된 pem키가 있다면 선택하고 없으면 생성한다.

  1. 다음과 같이 인스턴스가 생성된걸 볼 수 있다.

  1. EIP 할당하기
  • 인스턴스도 하나의 서버이기 때문에 IP가 존재한다. 인스턴스 생성 시에 항상 새 IP를 할당하는데, 같은 인스턴스를 중지하고 다시 시작할 때도 새 IP가 할당된다.
    이런 번거로움을 해소하기 위해 인스턴스의 IP가 매번 변경되지 않고 고정 IP를 가지게 해야한다.

  • 왼쪽 사이드바에 탄력적 IP 클릭

  • 우측 상단 탄력적 IP 주소 할당 클릭

  • 할당 클릭

  • 탄력적 IP 주소 연결 클릭

  • 생성한 EC2 인스턴스 선택 후 연결을 하면 탄력적 IP가 할당 되었음을 확인할 수 있다.



🕹 EC2 서버 접속하기


1. pem키 복사하기

  • AWS와 같은 외부 서버로 SSH 접속을 하려면 다음과 같이 긴 명령어를 입력해야 한다.
ssh -i pem 키 위치 EC2의 탄력적 IP 주소
  • 매번 입력하기 귀찮으므로 쉽게 접속할 수 있도록 설정을 할것이다. 위에서 받은 pem키를 ~/.ssh/ 디렉토리로 옮겨 놓으면 ssh 실행 시 pem 키 파일을 자동으로 읽어 접속을 진행한다.
  • 이후부터는 별도로 pem 키 위치를 명령어로 지정할 필요가 없다.

2. ~/.ssh로 이동 및 파일 목록 확인

- cd ~/.ssh/
- ll

위의 명령어를 입력하면 사진과같이 pem 파일이 복사가 된 것을 확인할 수 있다.


3. pem 키 권한 변경

  • 복사되었다면 pem 키의 권한을 변경해주자. chmod는 [file | directory][user (rwx)][group (rwx)][others (rwx)]로 구성 된다. 각 권한은 r= 4, w= 2, x=1으로 나타내진다.
chmod 600 ~/.ssh/{pem 키 이름}
=======================================
ex) chmod 600 ~/.ssh/moamoa-deploy.pem

4. config 파일 생성 및 권한 설정

  • 권한을 변경하였다면 config 파일 생성 후 본인이 원하는 Host로 등록한다. Host를 앞으로 접속할 키 값으로 보면 된다. Host 외에 HostName은 탄력적 IP 주소를 사용하면 된다. 해당 파일 설정 완료 후 실행 권한이 필요하므로 권한 설정을 해준다.

  • i : 입력, :wq 저장 후 종료

vim ~/.ssh/config
# moamoa-deploy
Host test
		HostName [고정 IP 주소]
        User ec2-user
        IdentityFile ~/.ssh/moamoa-deploy.pem
  • 권한 설정
chmod 700 ~/.ssh/config

5. EC2 접속

이제 ssh[Host 이름]으로 EC2에 접속해보자. 다음과 같이 나온다면 성공



📀 AWS EC2 서버 생성시 설정


1. Java 11 설치

yum으로 설치 가능한 Java는 버전 8까지 가능하다.

yum list java*jkd-devel


  • Java 11 설치하기

Java 11은 직접 설치를 해줘야 한다. 설치 방법은 두 가지가 있다. 나는 아마존에서 제공하는 AWS Corretto를 이용해서 다운을 받을 것이다. 왜냐하면 오라클에서는 ec2에 파일을 직접 받아 .sh파일 수정 후 직접 실행해줘야 되어서 좀 더 귀찮기 때문이다.

  • AWS Corretto 다운 방법은 아래와 같다.
wgethttps://corretto.aws/downloads/latest/amazon-corretto-11-x64-al2-jdk.rpm -O jdk11.rpm

또는

curl -L https://corretto.aws/downloads/latest/amazon-corretto-11-x64-al2-jdk.rpm -o jdk11.rpm
  • JDK 11을 설치해주고 Yes를 입력하면 설치가 완료된다.
sudo yum localinstall jdk11.rmp

해당 명령어로 jdk 버전을 11로 변경해준다.

sudo /usr/sbin/alternatives --config java
java -version


2. Time Zone 변경

  • EC2 서버의 기본 타임존은 UTC이다. 이는 세계 표준 시간으로 한국의 시간대가 아니다. 즉, 한국의 시간과 9시간의 차이가 발생한다.
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul/etc/localtime
  • date 변경된 타임존을 확인해본다.

3. hostname 설정

  • 여러 서버를 관리 중일 경우 IP만으로 어떤 서비스의 서버인지 확인이 어렵기 때문에 각 서버가 어느 서비스인지 표현하기 위해 Hostname을 변경하는것이 좋다.
sudo hostnamectl set-hostname <변경할 hostname>
cat /etc/hostname 으로 hostname 확인

sudo reboot 변경한 후 서버를 재부팅 시켜준다



참고 : https://loosie.tistory.com/407

다음편에서는 RDS 설정 및 EC2 연결을 해볼 예정이다.

profile
Email:ehgns5669@gmail.com

0개의 댓글