EC2 (Elastic Compute Cloud)

Ryu·2022년 2월 11일
0

AWS

목록 보기
3/12

EC2 생성

지금까지 EC2를 생성하기 위해 총 6단계를 진행하였다.

  • 기존에 요구사항에서 정의한 스팩을 기준으로 Linux 2 AMI와 t2.miccro, EBS 8GB를 설정

단계 3에서 Auto-assign Public IP를 Disable로 설정하였다.
웹 서버를 Private Subnet에 생성하기 때문에 Public IP를 할당하지 않는다 하지만 이로 인해 SSH로 접근이 불가능한데 이를 위해서 Public Subnet에 Bastion Host를 EC2로 생성하여 웹 서버로 연결할 것이다.
(※ Bastion Host를 생성할 때에는 Auto-assign Public IP를 Enable로 설정)

단계 4에서 SG를 설정하는데 나중에 변경이 가능하여 넘어갔다

여기까지 완료하여 Launch를 선택하면 키 생성 창이 생긴다.

기존에 키가 있다면 기존 키를 사용하고 없다면 새로 키를 다운.
키를 다운 받으면 Launch Instances 버튼이 활성화 되어 선택하고 EC2 생성

아래와 같이 EC2가 생성된 것을 확인

위와 같은 방식으로 Bastion Host 인스턴스를 생성 후 보안 그룹 설정

보안 그룹 설정 화면

Private Subnet에 생성한 인스턴스에 접근 설정 웹 서버 보안 그룹

  • Bastion Host 보안 그룹 → Inbound : SSH – TCP –
  • Bastion Host 보안 그룹 → Inbound : SSH – TCP – 0.0.0.0/0

위와 같이 설정 시 Bastion Host만 웹 서버에 접근이 가능하다. 이 후 보안 그룹은 필요 시 수정.

아래와 같이 Bastion 인스턴스에는 Public IP가 생성된 것을 확인

EC2 접속

웹 서버에 접속하기 위해 Bastion Host 인스턴스에 접속한다.

Connect로 접속 후 위에 커맨드 복사

Amazon Linux의 경우 Host Name을 ec2-user로 접속
운영체제 각각의 Host Name이 상이 하므로 반드시 확인 후 접속

Putty와 같은 툴이 있지만 여기서는 윈도우 CMD를 사용

Bastion Host로 접속 성공.

SSH로 접근하기 위해서는 기존에 다운받은 키와 IP주소 확인

또한, SSH 명령어로 EC2에 접속하기 위해서는 반드시 키의 위치에서 명령어를 사용하여야 한다.

Bastion Host에서 웹 서버 키를 저장할 디렉터리 생성 후 경로 확인

# 로컬에서 인스턴스로 파일 복사하는 명령어 (※ 로컬에서 명령어 입력)

scp -i [pem파일경로] [업로드할 파일 이름] [ec2-user계정명]@[ec2 instance의 public DNS]:~/[경로]
scp -i "C:\Users\Bastionkey.pem" test1.pem ec2-user@54.180.156.109:/home/ec2-user/test

아래와 같이 웹 서버 키가 복사되어 test 위치에 있는 것을 확인

Bastion Host에서 웹 서버 인스턴스 접근

SSH -i 명령어를 통해 웹 서버 인스턴스에 접근을 시도 했지만 Permission denied로 접근을 못 하였다.

sudo 명령어를 통해 root권한으로 SSH로 접근하여 웹 서버 인스턴스에 접속

EC2 Apache 2.4.x 패키지 설치

# Apache 2.4.x 설치 명령어
sudo yum update –y
sudo yum install httpd -y

# Apache 상태 확인 및 동작
sudo systemctl start httpd
sudo systemctl status httpd

# 데몬 자동 실행 명령어
sudo systemctl enable httpd

아래와 같이 Apache가 설치된 것을 확인

EC2 Tomcat 8.x 패키지 설치

위와 같이 tomcat*을 검색 했을 때, Amazon Linux 2에서는 tomcat8.x 패키지가 없는 것을 확인.

이를 해결하기 위해 Amazon Extra 라이브러리에서 tomcat8.x 버전의 패키지를 설치

# amazon-linux-extra 설치 및 확인 명령어
sudo yum install -y amazon-linux-extras
which amazon-linux-extras

# Extras 라이브러리 확인 명령어
amazon-linux-extras

# Tomcat 8.x 설치 명령어
sudo amazon-linux-extras enable tomcat8.5
sudo yum clean metadata && sudo yum install tomcat
sudo yum install tomcat-webapps -y
sudo yum install tomcat-admin-webapps -y

# Tomcat 8.x 상태 확인 및 동작
sudo systemctl start tomcat
sudo systemctl status tomcat

# 데몬 자동 실행 명령어
sudo systemctl enable tomcat

아래와 같이 Tomcat이 설치된 것을 확인

EC2 MySQL 5.7.x 패키지 설치

# MySQL 5.7.x 설치 명령어
sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo yum localinstall mysql57-community-release-el7-11.noarch.rpm -y
sudo yum install mysql-community-server -y

# MySQL 상태 확인 및 동작
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service

# MySQL 초기 비밀번호 확인 명령어
sudo grep 'temporary' /var/log/mysqld.log
비밀번호 : 7!oOj0AJnjDh

아래와 같이 MySQL이 설치된 것을 확인

패키지 자동 실행 및 버전 확인

# 패키지 버전 확인 명령어
httpd -v
tomcat version
mysql --version

EC2 Image 생성

기존에 인스턴스를 생성할 때 운영체제를 Amazon Linux 2를 선택하였다. 하지만 이미 여러 패키지를 설치한 나만의 인스턴스를 처음부터 다시 생성하기에는 많은 시간적 낭비가 발생한다.

그래서 AWS에서는 이미 만든 인스턴스를 이미지로 저장한 후 생성된 이미지를 선택하여 인스턴스를 생성할 수 있다.

이미지로 인스턴스 생성과 추가 인스턴스에 볼륨을 추가

아래와 같이 Images → AMIs에서 생성한 이미지를 확인할 수 있다.

생성한 이미지로 WEB02 인스턴스 생성 (추가 디스크 10 GiB)

# 추가 디스크 설정 명령어
sudo mkfs -t ext3 /dev/sdb          → ext3로 디스크 포맷
sudo mkdir /mnt/data-store          → 새 스토리지 볼륨을 위한 디렉터리 생성
sudo mount /dev/sdb /mnt/data-store → 새 스토리지 볼륨을 디렉터리에 매칭

새로 생성한 WEB02 인스턴스 동작 확인

Can Do It
brb

profile
Let me start

0개의 댓글