본문 바로가기
TIL _Today I Learned/2024.10

[DAY 65] AWS, Linux 란?

by gamdong2 2024. 10. 22.
[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2024.10.22

📕 학습 목록

  • Virtualization, Cloud Computing
  • EC2
  • EBS
  • AWS 인프라
  • AMI
  • Load Balancing, Auto Scaling
  • CloudWatch

 

📗 기억할 내용

1. 가상화

1) 가상화 (Virtualization)

Virtualization

① 정의

  • 하나의 물리적 서버나 컴퓨터 자원을 여러 개의 독립적인 가상 서버(Guest Machine)로 분할하여 사용하는 기술
  • 이를 통해 물리적인 하드웨어 하나에서 다수의 가상 시스템을 실행할 수 있음

② 하이퍼바이저 (Hypervisor)

  • 가상화의 핵심 구성 요소로, Host Machine과 Guest Machine 사이에서 중간 레이어로 작동
  • 여러 개의 가상 머신이 독립적으로 실행될 수 있도록 물리적 자원을 할당하고 관리
  • Hypervisor를 통해 각 가상 머신은 독립된 CPU, 메모리, 스토리지 등 자원을 사용하는 것처럼 작동

 

2) 클라우드 컴퓨팅 (Cloud Computing)

① 정의

  • 가상화 기술을 바탕으로, 사용자가 필요할 때만 IT 자원을 사용할 수 있도록 제공하는 온디맨드(On-Demand) 서비스
  • 즉, 가상화된 IT 리소스를 네트워크를 통해 제공하는 서비스 모델로, 사용자는 필요한 만큼의 자원만 사용하고, 사용한 만큼만 비용을 지불함

② 가상화와 클라우드컴퓨팅

  • 가상화는 클라우드 컴퓨팅의 핵심 기반 기술로, 하이퍼바이저를 통해 여러 가상 서버를 생성하여 사용자가 요구하는 리소스를 탄력적으로 제공할 수 있게 함
  • 이로 인해 클라우드 서비스 제공자는 대규모의 물리적 인프라를 보다 효율적으로 관리하고, 다양한 사용자에게 동시에 서비스를 제공

 

2. EC2 (Elastic Compute Cloud)

① 정의

  • AWS에서 제공하는 가상 서버(Virtual Machine) 서비스로, 사용자가 필요에 따라 서버를 생성, 크기 조정, 종료할 수 있음

② 특징

  • 탄력적 컴퓨팅 (Elastic Computing) : 사용자는 필요에 따라 서버를 생성하고, CPU나 메모리 등의 자원을 자유롭게 확장 또는 축소할 수 있음. 서버의 성능이나 크기를 즉시 조정할 수 있어, 트래픽이나 워크로드에 따른 유연한 대응이 가능
  • 온디맨드(On-Demand): 사용한 만큼만 비용을 지불하는 구조. 즉, 사용자는 서버를 실행한 시간 동안만 비용을 내고, 더 이상 사용하지 않을 때는 인스턴스를 종료해 비용을 절감할 수 있음
  • 다양한 인스턴스 타입: 다양한 용도의 컴퓨팅 요구를 충족하기 위해 여러 종류의 인스턴스(가상 서버)를 제공하며, 각 인스턴스는 CPU, 메모리, 스토리지 등 다양한 구성을 갖고 있음
  • 자동 확장: EC2는 사용자의 요구에 따라 자동으로 인스턴스의 수를 늘리거나 줄일 수 있는 기능을 제공. 이를 통해 트래픽 증가나 감소에 따라 자원을 유동적으로 조절할 수 있음

③ EC2 인스턴스

EC2 인스턴스

  • EC2 : AWS에서 제공하는 클라우드 기반의 가상 서버 서비스
  • EC2 인스턴스 : EC2 서비스를 통해 실행되는 개별 가상 서버(AWS의 물리적 서버에서 하이퍼바이저를 통해 생성된 여러 게스트 서버(가상 머신) 중 하나)

④ EC2에서 사용할 수 있는 운영 체제

운영체제 특징
Windows Windows Server 운영체제를 지원하며, Windows 애플리케이션과 서비스 실행에 최적화됨
Amazon Linux AWS에서 제공하는 경량화된 리눅스 배포판으로, EC2에 최적화되어 빠르고 안전한 성능 제공
Debian 안정성과 보안성이 뛰어난 오픈 소스 리눅스 배포판
CentOS Red Hat 기반의 커뮤니티 중심 리눅스 배포판으로 서버 환경에서 많이 사용됨
SUSE 엔터프라이즈 환경에서 많이 사용되는 리눅스 배포판
Red Hat 기업용 리눅스 배포판으로, 엔터프라이즈 애플리케이션 실행에 적합한 안정적인 운영체제
Ubuntu 사용자 친화적이며 개발자와 서버 환경에서 많이 사용되는 오픈 소스 리눅스 배포판
Mac macOS를 실행할 수 있으며, 주로 iOS 및 macOS 애플리케이션 개발 환경을 위해 사용됨

 
⑤ EC2 인스턴스 스토어

EC2 인스턴스 스토어
인스턴스가 종료되면 인스턴스 스토어에 저장된 데이터는 사라짐

  • EC2 인스턴스 스토어는 AWS EC2에서 제공하는 블록 수준 임시 스토리지로, 인스턴스가 생성되는 동안에만 데이터를 저장하는 용도로 사용됨. 주로 캐시나 임시 데이터와 같은 휘발성 데이터 저장에 적합
  • 주요 특징
    • 블록 수준 임시 스토리지: EC2 인스턴스에서 제공되는 블록 단위의 스토리지로, 휘발성 데이터 저장에 최적화되어 있음
    • 인스턴스 수명 동안만 지속: 인스턴스가 중지되거나 종료되면 인스턴스 스토어에 저장된 데이터는 사라짐. 즉, 인스턴스 수명 주기 동안에만 데이터를 유지
    • 물리적으로 연결된 디스크: 인스턴스 스토어는 인스턴스와 물리적으로 연결된 디스크를 사용하여 매우 빠른 속도로 데이터에 접근할 수 있음
    • Snapshot 기능 미지원: 일반적인 EBS(Elastic Block Store)와 달리, 인스턴스 스토어는 스냅샷 기능을 지원하지 않아 데이터 백업이 불가능
    • SSD/HDD: 인스턴스 스토어는 SSD 또는 HDD와 같은 스토리지 타입으로 제공되어, 다양한 속도 및 용량 요구를 충족할 수 있음
    • 캐시 및 임시 데이터에 적합: 주로 애플리케이션 캐시, 일시적인 계산 결과 저장 등 휘발성 데이터를 저장하는 데 적합

⑥ EC2 Life Cycle

  • EC2 인스턴스는 다양한 상태로 전환되며, 이를 통해 인스턴스의 Life Cycle 이 관리됨

EC2 Life Cycle

  •  EC2 Life Cycle 단계
  1. Pending (대기 중)
    • 인스턴스가 처음 Launch(시작)되면 Pending 상태로 들어감
    • 이 상태에서 AWS는 EC2 인스턴스를 프로비저닝하고, 필요한 하드웨어와 소프트웨어를 설정함. 설정이 완료되면 인스턴스가 실행됨
  2. Running (실행 중)
    • 인스턴스가 정상적으로 실행되고 있는 상태. 인스턴스가 사용자의 요청을 처리할 수 있
    • 사용자는 재부팅할 수 있으며, 인스턴스를 재부팅해도 인스턴스의 ID나 데이터는 그대로 유지됨
  3. Stopping (중지 중)
    • stop 명령 실행을 통해 인스턴스가 중지되는 과정의 상태(인스턴스가 완전히 중지될 때까지의 과도기적 상태)
    • 메모리와 CPU가 해제되지만, EBS 백업 볼륨에 저장된 데이터는 유지됨
  4. Stopped (정지됨)
    • 인스턴스가 완전히 중지된 상태
    • 인스턴스가 실행되지 않으며, 자원을 사용하지 않음. 하지만 EBS 기반의 인스턴스는 이 상태에서도 EBS에 저장된 데이터가 유지됨
    • Start 명령을 통해 인스턴스를 다시 Running(실행 중) 상태로 전환할 수 있음
  5. Shutting-down (종료 중)
    • Terminate 명령 실행을 통해 인스턴스가 Shutting-down 상태로 들어감
    • 인스턴스가 완전히 종료되기 전의 과도기적 상태
  6. Terminated (종료됨)
    • 인스턴스가 완전히 종료된 상태로, 이 상태에서는 인스턴스를 복원할 수 없음
    • EBS 볼륨도 기본 설정에 따라 삭제될 수 있음. 종료된 인스턴스는 다시 시작할 수 없고, 다시 실행하려면 새로운 인스턴스를 생성해야 함

⑦ EC2 인스턴스 유형
 
 
 

3. EBS (Elastic Block Store)

1) 정의

  • EBS는 AWS EC2 인스턴스와 함께 사용되는 영구적인 블록 스토리지로, 고성능의 데이터 저장 및 복구 기능을 제공

2) 특징

  • EC2 인스턴스의 영구 블록 스토리지: EBS는 EC2 인스턴스에 연결되는 영구 스토리지로, 인스턴스가 종료되더라도 데이터를 유지
  • 가용 영역 내 자동 복제: 데이터는 같은 가용 영역(Availability Zone) 내에서 자동으로 복제되어 내구성과 안정성을 보장
  • 탄력적 성능 및 용량 제공: 사용자는 필요에 따라 스토리지 성능과 용량을 조정할 수 있음

3) 블록 스토리지

  • 블록 단위로 데이터 저장: EBS는 데이터를 블록 단위로 저장하여 더 빠르고 효율적인 데이터 관리가 가능
  • 고성능 / 낮은 지연률: 높은 성능과 짧은 응답 시간을 제공해 안정적인 데이터 처리 능력을 갖추고 있음
  • 영구적 데이터 저장: 데이터를 영구적으로 저장하며, 인스턴스가 중지되더라도 데이터는 보존됨
  • API 지원: AWS API를 통해 EBS 볼륨의 생성, 연결, 수정 작업을 쉽게 할 수 있음
  • EBS 볼륨 생성 / 연결 / 수정 용이: 볼륨을 생성하고 EC2 인스턴스에 쉽게 연결하거나 수정할 수 있는 유연성을 제공
  • 스냅샷 지원: EBS는 특정 시점의 데이터를 스냅샷으로 저장하여 백업 및 복구가 가능
[tip] 스냅샷 : 특정 시점의 데이터를 캡처하여 저장하는 방식으로, 백업 및 복구에 사용됨

 

4) 블록 스토리지 vs 객체 스토리지

  • 블록 스토리지 (Block Storage) : 데이터를 블록 단위로 나누어 저장하는 방식. 각 블록은 고유한 주소를 가지며, 사용자가 요청하는 데이터를 블록 단위로 읽고 씀
    • ex :  AWS EBS는 블록 스토리지의 대표적인 예로, EC2 인스턴스에 연결되어 데이터를 블록 단위로 읽고 씀. 파일 시스템이 이 블록을 관리하며, 사용자가 요청하는 데이터를 처리함
  • 객체 스토리지 (Object Storage) : 데이터를 객체 단위로 저장하는 방식. 여기서 객체는 파일의 데이터와 그 파일에 대한 메타데이터(파일 이름, 속성 등)를 포함한 단위로 저장됨
    • ex :  AWS S3에서 파일을 업로드하면, 해당 파일은 객체로 저장되며, 이 객체는 URL이나 키를 통해 접근 가능함. 각 객체는 고유 식별자와 함께 메타데이터를 가지고 있음
  EC2 인스턴스 스토어 EBS(Elastic Block Store) 객체 스토리지 (Object Storage)
스토리지
유형
블록 스토리지 (임시 저장소) 블록 스토리지 (영구 저장소) 객체 스토리지
지속성 인스턴스가 종료되면 데이터 삭제 인스턴스 중지/종료 시에도 데이터 유지 데이터는 영구적으로 저장되며, 삭제하지 않는 한 유지됨
데이터
구조
블록 단위로 데이터를 저장 블록 단위로 데이터를 저장 객체 단위로 데이터를 저장 (메타데이터 포함)
접근 방식 인스턴스에 직접 연결된 로컬 스토리지 네트워크를 통해 EC2 인스턴스에 연결 API 또는 URL을 통해 접근 (HTTP/HTTPS)
데이터 복제 복제 기능 없음 가용 영역 내에서 자동 복제 리전 간 복제 가능
스냅샷 및
백업 지원
스냅샷 기능 미지원 스냅샷 지원, 특정 시점의 데이터를 백업 및 복구 가능 버전 관리 및 스냅샷 기능으로 데이터 백업 및 복구 가능
용도 캐시, 임시 데이터 저장에 적합 데이터베이스, 애플리케이션, 파일 시스템 등 영구 데이터 저장에 적합 비정형 데이터(이미지, 비디오, 백업 파일 등) 저장에 적합
데이터
수정
데이터를 블록 단위로 수정 가능 데이터를 블록 단위로 수정 가능 객체 전체를 교체해야 수정 가능
디스크
유형
SSD/HDD SSD/HDD 선택 가능 디스크 유형 없음 (인터넷 상의 스토리지, 물리적 저장소 선택 불필요)
비용 모델 인스턴스와 함께 사용되며 추가 비용 발생 없음 사용한 용량에 따라 비용 발생 사용한 데이터의 양 및 요청 수에 따라 비용 발생
접근 속도 고속, 저지연 로컬 스토리지 고성능, 낮은 지연률 제공 비교적 느림 (주로 비정형 대용량 데이터를 다룸)
데이터
저장 방식
블록 단위로 데이터 저장, 인스턴스 종료 시 데이터 삭제 블록 단위로 데이터 저장, 영구적인 데이터 저장 객체 단위로 메타데이터와 함께 저장
API 지원 지원 안 함 API 지원으로 볼륨 생성/수정/연결 가능 API 지원으로 객체 업로드/다운로드, 관리 가능
파일 형태로
저장 여부
파일 시스템을 통해 파일 형태로 저장 가능 파일 시스템을 통해 파일 형태로 저장 가능 객체 단위로 저장, 파일은 객체로 변환하여 저장
주요
사용 사례
임시 파일, 캐시 데이터, 로컬 스토리지로 활용 데이터베이스, 애플리케이션 데이터, 파일 시스템, 영구 데이터 저장에 적합 백업 파일, 이미지/비디오 저장, 대규모 비정형 데이터 저장에 적합

 

4. AWS 인프라

1) 리전, 가용영역

  리전(Region) 가용 영역(Availability Zone, AZ)
정의 특정 지리적 위치에 있는 데이터 센터 그룹 리전 내에서 물리적으로 분리된 데이터 센터
범위 전 세계적으로 여러 리전이 존재 한 리전 내에 여러 AZ가 존재
독립성 각 리전은 완전히 독립된 운영 환경 AZ는 같은 리전 내에 있지만 물리적으로 분리
사용 목적 지리적 위치 선택, 데이터 주권 확보 고가용성 보장, 장애 복구
[tip] EC2 인스턴스와 EBS 간의 관계 다이어그램

가용 영역 내에서 EC2 인스턴스 - EBS의 관계

- 가용 영역 내에서 다양한 EC2 인스턴스와 EBS의 상호 연결성을 설명
- 한 EC2 인스턴스가 여러 EBS 볼륨에 연결될 수 있으며, 그로 인해 더 많은 스토리지 공간이나 성능을 제공받을 수 있음
- 하나의 EBS 볼륨이 여러 EC2 인스턴스에서 공유되거나 다르게 사용될 수 있음

- 리전 : 여러 가용영역(AZ)으로 구성되며, 각 AZ는 물리적으로 독립된 데이터 센터임
- E2 인스턴스 : 특정 리전 내의 가용영역에서 실행되며, 필요에 따라 여러 AZ에 걸쳐 배포하여 고가용성을 보장할 수 있음
- EBS : AWS EC2 인스턴스에 사용되며, 특정 가용영역에 위치한 인스턴스와 연결됨. EBS 볼륨은 AZ에 종속되지만, 스냅샷을 사용하여 다른 가용영역이나 리전으로 데이터를 복사할 수 있음
- E2 인스턴스와 EBS는 각각 인스턴스와 스토리지로 사용되며, EBS는 가용영역 내의 인스턴스에 연결되지만, 스냅샷 기능을 통해 리전이나 AZ를 넘어 데이터를 백업 및 복제할 수 있음

 
2) 키페어, 포트 번호

  • 키페어 : 접속 권한을 인증하는 수단
  • 포트 번호 : 접속하는 서비스나 경로를 지정하는 역할
  • EC2 인스턴스 접속 시 둘 다 필요할 수 있음. 먼저 포트 번호를 통해 올바른 경로로 접속한 뒤, 키페어로 인증을 받아야 최종적으로 서버에 접근
  키 페어 (Key Pair) 포트 번호 (Port Number)
정의 - 비대칭 암호화 방식의 공개 키와 개인 키 쌍
- EC2 인스턴스에 보안 접속을 위해 사용
네트워크에서 특정 서비스나 애플리케이션이 데이터를 주고받을 수 있는 논리적 접속 지점
역할 EC2 인스턴스에 SSH 또는 RDP로 안전하게 접속하기 위한 인증 수단 네트워크 상에서 어떤 서비스에 접근할 것인지를 결정하는 통신 포트를 지정
형식 - 공개 키와 개인 키의 쌍으로 구성
- 사용자가 EC2 인스턴스를 생성할 때 키 페어를 생성하거나 지정
- 숫자로 구성되며, 0~65535의 범위에서 할당
- 일반적으로 잘 알려진 서비스에 고유 번호가 할당됨 (예: HTTP는 80, SSH는 22)
보안 목적 - SSH/RDP 접속 시 개인 키를 통해 인스턴스에 접속할 수 있는 사용자를 인증 방화벽 설정을 통해 특정 포트 번호로의 접근을 허용하거나 차단하여 보안을 강화
사용 예시 EC2 인스턴스에 SSH로 접속할 때 키 페어를 사용하여 인증 후 접속 EC2 인스턴스에서 웹 애플리케이션을 제공하려면 포트 80 또는 443을 열어야 함
어떻게 작동하는가 - 개인 키는 사용자에게만 제공되며, 공개 키는 EC2 인스턴스에 저장됨
- SSH/RDP 접속 시 개인 키로 인증을 완료
네트워크 트래픽은 지정된 포트를 통해 인스턴스에 도달하며, 보안 그룹에서 허용된 포트만 접근 허용
주요 서비스 EC2 인스턴스에 대한 접속 인증 (SSH, RDP) HTTP, HTTPS, SSH, FTP 등 다양한 네트워크 서비스에 대한 접근 통제

* 프로토콜 : 컴퓨터나 네트워크 장치들이 서로 통신할 때 따르는 규칙이나 약속. 컴퓨터들 간의 공통된 언어
 * SSH(Secure Shell) : 네트워크 상에서 보안된 원격 접속을 제공하는 프로토콜. SSH는 암호화를 사용하여 원격 서버와 클라이언트 간의 통신을 안전하게 보호함. 주로 리눅스 또는 유닉스 기반 시스템에 원격으로 로그인하고, 명령을 실행하거나 파일을 전송하는 데 사용됨

[tip] 대표적인 포트 번호
포트 번호 프로토콜 / 서비스 설명
22 SSH (Secure Shell) 원격 서버에 안전하게 접속하는 프로토콜
80 HTTP (HyperText Transfer Protocol) 웹사이트의 비암호화된 트래픽을 처리하는 프로토콜
443 HTTPS (HTTP Secure) 암호화된 웹사이트 트래픽을 처리하는 프로토콜
3306 MySQL, MariaDB 데이터베이스 연결을 위한 포트
5000 Custom / Flask 서버 Flask와 같은 웹 애플리케이션 개발에서 자주 사용
8080 HTTP Alternative HTTP의 대체 포트로 자주 사용됨
8888 HTTP Alternative HTTP의 대체 포트로 자주 사용됨

 

5. AMI(Amazon Machine Image)

1) 정의

  • AWS EC2 인스턴스를 생성하고 실행하는 데 필요한 모든 정보를 포함하고 있는 이미지 파일
  • 이를 통해 사용자는 동일한 구성으로 여러 개의 EC2 인스턴스를 생성할 수 있으며, 인스턴스의 템플릿 역할을 함

2) 특징

  • 인스턴스 시작에 필요한 정보 제공: AMI는 EC2 인스턴스를 시작할 때 필요한 운영 체제, 애플리케이션, 설정 등을 포함하여, 사용자가 EC2 인스턴스를 쉽게 설정할 수 있도록 함
  • 여러 인스턴스 시작 가능: 동일한 AMI를 사용하여 동일한 설정과 구성을 가진 여러 개의 EC2 인스턴스를 생성할 수 있음

 

6. ELB (Elastic Load Balancing) vs Auto Scaling

로드 밸런싱과 오토 스케일링의 상관관계:

• 로드 밸런싱은 여러 서버로 트래픽을 분산시켜서 서버들이 고르게 트래픽을 처리할 수 있도록 돕고, 오토 스케일링은 서버의 수를 동적으로 조정해 필요할 때는 서버를 추가하고 불필요할 때는 서버를 줄이는 역할을 합니다.
• 이 두 가지가 함께 사용되면, 증가하는 트래픽을 자동으로 처리할 수 있도록 로드 밸런싱으로 트래픽을 분산하고, 오토 스케일링으로 서버를 자동으로 추가해 리소스를 효율적으로 관리할 수 있습니다.

요약:

• 로드 밸런싱: 서버에 들어오는 트래픽을 여러 서버에 분산시키는 역할.
• 오토 스케일링: 서버 리소스의 수를 트래픽에 따라 자동으로 조정하는 역할.
• 상호 보완: 로드 밸런싱은 트래픽 분산을, 오토 스케일링은 필요한 서버를 자동으로 추가/제거하여 성능과 비용을 최적화합니다.

 

 

7. Cloud Watch

Cloud Watch

1) 정의

  • AWS 리소스와 애플리케이션에서 발생하는 운영 데이터와 로그를 수집하고 시각화하여, 리소스 상태를 모니터링하고 경보 설정을 통해 중요한 문제를 실시간으로 탐지할 수 있는 서비스

2) 주요 기능   "AWS 리소스 모니터링"

  • AWS 리소스 지표 수집: EC2, RDS, Lambda 등에서 발생하는 성능 지표를 자동으로 수집
  • 시각화 및 대시보드: 지표를 시각화하여 대시보드에서 모니터링
  • 로그 관리: 로그를 중앙에서 관리하고 문제 탐지 및 분석
  • 경보 설정: 특정 지표가 임계값을 초과할 때 경보를 설정하여 자동으로 알림을 받거나 대응
  • 대시보드 구성: 사용자 맞춤형 대시보드를 구성해 시스템 상태를 직관적으로 파악 가능

 
 

📘AWS 실습

[EC2 인스턴스]

1) 인스턴스 생성

① EC2 → 인스턴스

② 인스턴스 시작

  • Launch an instance
    1. 이름 설정
    2. AMI 선택 : Ubuntu
    3. 인스턴스 유형 : t2.micro
    4. 새 키 페어(인증키) 생성 : RSA, .pem → 키 페어가 다운로드 됨(.pem)
    5. 네트워크 설정 : 편집 → 보안 그룹 이름 설정, 인바운드 보안 그룹 규칙 추가(22, 80, 443, 5000, 8888)
    6. 스토리지 구성 : 32GiB

⇨ "요약" 으로 검토 후 인스턴스 시작

인스턴스 시작
인스턴스 유형 선택
키 페어 생성
키 페어 이름 설정
네트워크 설정
인바운드 보안 그룹 규칙 추가
스토리지 구성

 

요약으로 확인
생성된인스턴스 확인

③ 생성된 인스턴스 정보 확인

  • 보안
    • 인바운드 : 밖에서 안으로 들어옴; 포트 범위를 지정해서 허용하는게 안전함
    • 아웃바운드 : 안에서 밖으로 나감; 포트 범위를 전체로 설정해도 괜찮음 

인스턴스 체크 시 나타나는 창

2) 인스턴스 연결

① 인스턴스 ID → 상태 변경(중지, 재부팅, 종료) 및 연결 가능

인스턴스 ID 클릭 시 나타나는 창

② 인스턴스에 연결 : 콘솔 / 웹 / 터미널

  • EC2 인스턴스 연결 (기본 웹 콘솔): AWS 콘솔에서 제공하는 기본 연결 옵션으로, 클릭 몇 번만으로 인스턴스에 바로 접근할 수 있는 방법
  • Session Manager: AWS Systems Manager의 Session Manager를 통해 웹 기반으로 인스턴스에 접속하는 방법으로, SSH 키 없이도 보안 그룹이나 포트 설정 없이 연결 가능
  • SSH 클라이언트: SSH 클라이언트(터미널, VS Code 플러그인)를 통해 개인 키(Key Pair)를 사용하여 인스턴스에 안전하게 접속하는 방식
  • EC2 직렬 콘솔: 네트워크 연결이 불가능한 상황에서도 직접 인스턴스의 콘솔에 접근할 수 있는 방법으로, 인스턴스의 부팅 과정 문제 해결 등에 유용

콘솔로 EC2 인스턴스 연결

[tip] 시스템 관리 명령어

범주 명령어 설명
파일 및 디렉토리 관리 dir 현재 디렉토리의 파일 목록을 보여줌 (Windows에서 사용)
ls -all 현재 디렉토리의 모든 파일 및 숨김 파일을 포함한 목록을 자세히 출력
ll ls -l과 동일하게, 파일 목록을 상세히 출력 (파일 권한, 소유자, 크기, 수정 시간 등)
mkdir 새로운 디렉토리를 생성
cd 디렉토리 이동
pwd 현재 작업 중인 디렉토리 경로를 출력
nano, vim, vi 텍스트 편집기 (Nano는 간단한 편집기, Vim과 Vi는 강력한 편집 기능을 제공)
cat 파일 내용을 화면에 출력
rm 파일 또는 디렉토리를 삭제
cp 파일 또는 디렉토리를 복사
chmod 파일/디렉토리의 권한(rwx)을 변경 (읽기, 쓰기, 실행 권한)
chown 파일/디렉토리의 소유자를 변경
사용자 관리 useradd 새 사용자를 생성 (일반적으로 adduser 명령어를 더 자주 사용)
adduser 새 사용자를 추가하는 명령어 (useradd의 사용자 친화적 버전)
sudo 관리자 권한으로 명령어를 실행
passwd 사용자의 비밀번호를 변경
su 다른 사용자로 전환 (주로 root 사용자로 전환할 때 사용)
root 리눅스 시스템의 최고 권한 사용자로서 시스템 전체를 관리할 수 있는 계정
시스템 관리 및 패키지 설치 sudo apt update 시스템의 패키지 목록을 업데이트 (APT 패키지 관리자)
sudo apt install python3-pip Python 패키지 관리 도구(pip)를 설치
sudo apt install python3-venv Python 가상환경을 설치
sudo apt install python3 Python 3 설치
sudo apt install cmatrix CMatrix(터미널에서 '해킹' 느낌의 시각 효과를 제공하는 프로그램) 설치
cmatrix, cmatrix -sB -u -C red CMatrix 실행, 다양한 옵션을 추가해 색상 및 출력 모드 변경 (예: 빨간색으로 시각화)
sudo apt install nginx Nginx 웹 서버를 설치
sudo systemctl start nginx Nginx 서버를 시작
네트워크 관리 ipconfig 네트워크 설정 및 IP 주소 정보를 출력 (Windows 명령어)
netstat 네트워크 연결, 라우팅 테이블, 인터페이스 상태를 출력
netstat -anot 모든 네트워크 연결과 포트 상태를 출력하는 확장 명령
ssh-keygen SSH 키 쌍을 생성하여 원격 접속을 위한 보안 인증 방식 설정
cd .ssh SSH 키 파일이 저장된 디렉토리로 이동
방화벽 관리 ufw 간단한 방화벽 관리 도구 (Ubuntu에서 사용)
ufw status 현재 방화벽 상태 확인
ufw disable 방화벽을 비활성화
기타 ctrl + d 터미널을 로그아웃 또는 종료
ctrl + x nano 편집기에서 파일 저장 후 종료
ctrl + c 명령어 강제 중단
vi main.py vi 편집기로 main.py 파일을 열어 수정

 

[tip2] NANO vs VIM(VI) 명령어

기능 NANO 명령어 VIM(VI) 명령어
파일 열기 nano 파일이름 vim 파일이름 또는 vi 파일이름
파일 저장 Ctrl + O :w (명령 모드에서)
파일 저장 후 종료 Ctrl + X :wq 또는 ZZ
저장 없이 종료 Ctrl + X + n :q!
텍스트 편집 바로 입력 가능 i (편집 모드로 전환)
편집 모드 종료 N/A Esc
복사하기 Alt + 6 yy (현재 줄 복사)
붙여넣기 Ctrl + U p (명령 모드에서 붙여넣기)
잘라내기 Ctrl + K dd (현재 줄 잘라내기)
취소 Alt + U u (명령 모드에서)
찾기 Ctrl + W /찾을단어
찾아 다음으로 이동 Ctrl + W + Ctrl + W n (다음 결과로 이동)
대체하기 Ctrl + \ :%s/찾을단어/대체할단어/g
특정 줄로 이동 Ctrl + _ :줄번호
화면 위로 스크롤 Ctrl + Y Ctrl + u
화면 아래로 스크롤 Ctrl + V Ctrl + d

 

 

 

 

 

 

 

 

 

 

 

 

📙 내일 일정

  • aws 실습