AWS 인스턴스 생성 및 설정(1)
AWS EC2 인스턴스 생성 및 환경 설정
AWS에서 프리티어로 제공하는 플랜에서는 다음과 같은 제한이 있다.
- 사양이
t2.micro
만 가능하다. - 월 750시간의 제한이 있다. 초과하면 비용 부과
(인스턴스 1대를 한달동안 끊지않고 돌릴 수 있다. 2대 초과시 비용 부과)
📞 EC2 인스턴스 생성 & 탄력적 IP 연결
- 본인의 리전을 서비스 지역으로 변경해준다. (
서울
)
ec2
에 접속 후 인스턴스 시작 버튼 클릭
- 왼쪽 하단 버튼에
프리티어만
버튼을 누르고 원하는 AMI를 선택한다.
(Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type)
- 선택 버튼을 누르면 다음과 같은 화면이 나오는데 프리티어는
t2.micro
유형만 선택이 가능하다.
- 인스턴스 구성은 넘어가고 스토리지 구성에서 크기를
30GiB
로 설정한다.(프리티어 최대 용량)
- 태그추가 > 키(Name), 값(인스턴스 표현할 이름) 입력
- 웹 콘솔에서 표기될 태그인 Name 태그를 등록한다. 태그는 해당 인스턴스를 표현하는 여러 이름으로 사용될 수 있다.
- 보안 그룹 추가 > [내 IP 설정], 기본 8080 포트 설정] > 검토 및 시작 클릭
- 보안 그룹은 방화벽을 이야기한다. 서버로
80포트
외에는 허용하지 않는다'는 역할을 하는 방화벽이 AWS에서는 보안 그룹으로 사용된다.
SSH
이면서 포트 항목에서22
인 경우AWS EC2에서 터미널로 접속할 때를 이야기한다.pem키
가 없으면 접속이 안 되니 전체 오픈(0.0.0.0/0, ::/0)하는 경우가 종종 있는데 이렇게 되면 이후 파일 공유디렉토리나 깃허브 등에실수로 pem키가 노출되는 순간 서버에서 가상화폐가 채굴되는 것을 볼 수 있을 것이다.
지정된 IP만 접속이 가능하도록 설정하고 다른 장소에서 접속할 경우 해당 장소 IP를 다시 능동적으로 SSH 규칙에 추가하는 것이 안전하다.
- 인스턴스 검토 > 시작하기 > pem키 생성 OR 선택 > 인스턴스 시작
- 인스턴스로 접근하기 위해서는
pem키
가 필요하다. 그래서 마지막 단계는 할당할 pem키를 선택해준다. 일종의 마스터 키이기 때문에 절대유출
하면 안된다. 잘 관리할 수 있는 디렉토리로 저장한다. 기존에 생성된 pem키가 있다면 선택하고 없으면 생성한다.
- 다음과 같이 인스턴스가 생성된걸 볼 수 있다.
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
연결을 해볼 예정이다.
Author And Source
이 문제에 관하여(AWS 인스턴스 생성 및 설정(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@do-hoon/AWS-인스턴스-생성-및-설정1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)