Search

EC2

대분류
DevOps/Tool
소분류
AWS
유형
가상 서버 인스턴스 제공 서비스
주요 레퍼런스
https://velog.io/@server30sopt/AWS-EC2-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC
속성
서버 서비스
최종 편집 일시
2025/01/13 18:23
생성 일시
2024/08/12 06:37
13 more properties

설명

Amazon Elastic Compute Cloud(Amazon EC2) 사용자가 액세스할 수 있는 AWS 리소스를 제어하는 권한 관리

사전 용어

인스턴스

가상 서버.

Amazon Machine Images (AMIs)

서버에 필요한 구성 요소(운영 체제와 추가 소프트웨어 포함)를 패키징하는 인스턴스용 사전 구성 템플릿.
EC2 인스턴스를 시작하는 데 필요한 정보가 들어있는 이미지 == EC2 복사본
사용 할 수 있는 대표적인 OS
Amazon Linux2
CentOS
Red Hat Enterprise Linux
Windows Server
Ubuntu

인스턴스 타입

인스턴스의 다양한 CPU, 메모리, 스토리지, 네트워킹 용량 및 그래픽 하드웨어 구성.

Amazon Elastic Block Store (EBS) 볼륨

Amazon Elastic Block Store(Amazon EBS)를 사용하는 데이터에 대한 영구 스토리지 볼륨.
데이터를 저장하는 역할 (가상 저장 장치)
개념
볼륨 ( volume ) : EBS의 가장 기본적인 형태로 OS에서 바로 사용 가능한 형태이다.
이미지 ( Image ) : AMI(Amazon Machine Image)를 줄여 부르는 말. OS가 설치된 형태이며 이 AMI로 EC2 인스턴스를 생성한다
스냅샷( Snapshot ) : EBS 볼륨의 전체 내용 중 특정 시점을 그대로 복사해 저장한 파일을 뜻한다. 따라서 EBS 볼륨의 백업 파일 성격을 가지고 있다. EBS 스냅샷은 EBS 볼륨을 백업하고 이전 내용으로 복원하고 싶을 때, 나만의 AMI를 생성하고 싶을 때, EBS 볼륨을 다른 리전으로 이전하고 싶을 때 사용한다.
IOPS(Input/Output Operation Per Second) : 저장 장치의 성능 측정 단위. AWS에서는 추가 비용을 지불하고 높은 성능(IOPS)의 EBS를 생성할 수 있다

인스턴스 스토어 볼륨

인스턴스를 중단, 최대 절전 모드로 전환 또는 종료할 때 삭제되는 임시 데이터용 스토리지 볼륨.

키 페어

인스턴스에 대한 보안 로그인 정보. 
AWS는 퍼블릭 키를 저장하고 사용자는 프라이빗 키를 안전한 장소에 저장합니다.

보안 그룹

인스턴스에 도달할 수 있는 프로토콜, 포트 및 소스 IP 범위와 인스턴스가 연결할 수 있는 대상 IP 범위를 지정할 수 있는 가상 방화벽.

인스턴스 생명 주기 ( Instance Life Cycle )

AMI로부터 실행이 되고나서 종료될 때까지 EC2가 거치는 과정

1) pending state

제일 처음 AMI가 실행이 되었을 때의 준비 상태
EC2를 가동하기 위해서 가상머신, ENI, EBS 등이 준비되는 과정이다.

2) running state

실제로 EC2를 사용할수 있는 상태를 말한다.
running 상태에서 할수 있는 것 3가지가 있는데 다음과 같다.
중지
인스턴스를 잠깐 멈춰두는 것
중지 중에는 인스턴트 요금 미청구
단 EBS 요금, 다른 구성 요소(Elastic IP 등)은 청구
중지 후 재 시작 할때 퍼블릭 IP가 변경됨 (프라이빗IP는 변경X, 해결하려면 탄력적 IP 사용)
EBS를 사용하는 인스턴스만 중지 가능
재부팅
인스턴스를 다시 시작 하는 것
중지하고 다시 시작과는 달리, 재부팅 시 퍼블릭IP 변동 X
최대 절전모드
메모리 내용을 보존해서 재 시작시 중단지점에서 시작할 수 있는 정지모드
어떤 프로그램을 실행시켰을 때 데이터를 하드디스크에서만 가져오는 것이 아니라 메모리에 올려놓는 것
컴퓨터/노트북의 최대 절전 모드와 같은 원리라고 보면 된다. 우리가 만일 프로그램을 이용하다 만일 프로그램이 켜 상태를 유지하면서 잠시 노트북을 꺼야한다면 최대 절전을 한다. 그리고 다시 노트북을 켰을때 아예 OS 재부팅되는게 아니라, 프로그램이 이어서 돌아가게 된다.

3) shutting-down state

인스턴스 종료 중
설정에 따라 EBS도 같이 종료 시킬 수도 있고 EBS는 남기고 인스턴스만 종료 할 수 있다.

4) terminated state

완전히 종료, 인스턴스가 영구적으로 삭제된다
인스턴스 미사용시 중지시켜두기만 해도 많은 비용 절감 할수 있다.

인스턴스 생성

1.
단계1: ec2 접속
2.
단계2: Launch Instance
3.
단계3: Namge and tags
생성될 인스턴스 이름
4.
단계4: Application and OS Images
생성될 인스턴스에 설치될 OS
select Ubuntu Server
결과 확인
5.
Instance type
생성될 인스턴스의 스펙(CPU & RAM 등)
t2.micro: 무료 인스턴스(컴퓨터)
6.
Key pair
생성될 인스턴스에 접속할 열쇠
Create key pair
생성된 key pair로 세팅됨
다운로드된 파일 확인
7.
Network settings
Inbound Security Group Rules: ssh 확인
8.
Configure storage & Launch instance
9.
생성된 인스턴스 및 Running 상태 확인

보안 그룹

인스턴스 연결

AWS 인스턴스에서 연결

인스턴스 연결
키페어는 필요없음
프라이빗 IP 주소와 해당 접속 IP가 일치하는지 확인

CLI에서 연결

1.
Git Bash/Powershell 열기
2.
identity 폴더 생성
mkdir -p ~/identity # 폴더 생성 ls ~/identity # 폴더 확인
Bash
복사
3.
key pair 파일 확인
ls ~/Downloads/*.pem
Shell
복사
4.
key pair 파일 이동
# 파일 이동 mv ~/Downloads/hello-ec2-keypair.pem ~/identity/hello-ec2-keypair.pem # 결과 확인 ls ~/identity
Shell
복사
맥 - 권한 변경
# pem 키 권한 변경 -> 600이 아닐 경우 보안 취약으로 판단 chmod 600 ~/identity/hello-ec2-keypair.pem
Shell
복사
5.
인스턴스 Public IP 복사
인스턴스 Public IP는 서버를 stop할때마다 변경됨!!
6.
ssh key 만들기
ssh-keygen -t rsa # enter 세 번 탁! 탁! 탁!
Shell
복사
7.
ssh config 생성
# ssh key 확인 ls ~/.ssh # ssh config 생성 및 작성 vim ~/.ssh/config
Shell
복사
8.
ssh config 작성 후 저장
# 아래 내용 추가 후 저장 Host hello-ec2 HostName 43.202.33.26 # 인스턴스의 Public IP 복사해서 넣기 User ubuntu IdentityFile ~/identity/hello-ec2-keypair.pem
Shell
복사
9.
ssh config 생성
# ssh config 확인 ls ~/.ssh
Bash
복사
맥 - 권한 변경
# config 파일 권한 수정 chmod 440 ~/.ssh/config
Shell
복사
10.
접속
# hello-ec2 접속 ssh hello-ec2 # 진짜 연결하시겠습니까? yes 입력 후 Enter Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Shell
복사
11.
접속 확인
Private IP와 Shell에 표시된 IP가 같은지 확인
12.
접속 종료
exit
Shell
복사

VS Code에서 연결

1.
ssh/config파일 존재 여부 확인
2.
Dev Containers 설치
3.
Connect to Hos
4.
접속 Host 선택
5.
OS 선택
6.
접속 확인
7.
home 디렉토리 선택
8.
접속 인가
9.
IP 확인
10.
접속 종료

보안 그룹(Security Group)

1.
Instance의 Security Group 확인
2.
Inbound rules 확인
외부에서 내부(ec2)에 접속할 수 있는 Rule 정의
3.
Outbound rules 확인
내부(ec2)에서 외부로 접속할 수 있는 Rule 정의

NGINX

1.
ec2 접속
2.
apt-get update(ubuntu) / yum update(redhat - Centos, amazon)
~$ sudo apt-get update
Shell
복사
3.
install nginx
sudo apt-get install nginx -y
Shell
복사
4.
nginx server 실행 확인 및 시작
systemctl status nginx sudo systemctl start nginx
Shell
복사
5.
Public IP 확인 (아직은 접속 안됌)
6.
Inbound rules 변경
Nginx Server(http TCP) Port: 80
apachi port : 8080
7.
nginx 접속