[AWS] 리눅스

최재원's avatar
Aug 31, 2025
[AWS] 리눅스

🐧 리눅스와 쉘, 네트워크 기본 정리

1. 🖥️ 터미널과 쉘

  • 터미널: 명령어를 입력하는 인터페이스
  • 쉘(Shell): 명령어 해석기, 입력된 명령을 OS에 전달
  • 명령어 체계는 OS 계열마다 다름 (ex. 유닉스, 리눅스, 윈도우)

2. 🧱 리눅스 개요

  • 리눅스(Linux): 유닉스에서 파생된 오픈소스 운영체제
  • 용도 차이
    • 유닉스: 주로 대형 서버 컴퓨터용
    • 리눅스: 개인용 컴퓨터에 적합
  • 라이선스: GPL (소스코드 공개 의무, 자유 사용/배포 가능)

3. 🧠 리눅스 구조

  • 커널(Kernel): OS의 핵심, 하드웨어 자원 제어 및 최적화
  • 쉘 및 명령어: 사용자 ↔ 커널을 연결하는 수단
    • 명령어를 통해 시스템 설정, 프로세스 제어 등 가능

4. 🌱 리눅스 배포판 계열

📦 Red Hat 계열 (RPM 기반)

  • Red Hat → 엔터프라이즈/서버용
  • CentOS: Red Hat 무료판 (→ CentOS Stream으로 전환됨)
  • Amazon Linux: AWS에서 최적화한 리눅스
  • → 특징: 패키지 매니저 yum 또는 dnf 사용

📦 Debian 계열 (DEB 기반)

  • Debian: 안정성 중심
  • Ubuntu: 사용자 친화적, 데스크탑/클라우드에서 인기
  • Raspberry Pi OS (구 Raspbian): 라즈베리 파이용
  • → 특징: 패키지 매니저 apt 사용

📦 Alpine 계열 (APK 기반)

Alpine Linux는 도커(Docker) 컨테이너 환경에서 특히 인기가 많은 경량 리눅스 배포판입니다. 다른 배포판들과는 근본적으로 다른 C 라이브러리를 사용하며, 최소한의 기능만을 담고 있어 작은 크기와 높은 보안성이 특징입니다.
  • Alpine Linux: 작고 가벼운 컨테이너 환경에 최적화된 리눅스입니다.
특징:
  • 패키지 매니저 apk 사용: apk는 Alpine Package Keeper의 약자로, 매우 빠르고 가벼운 패키지 관리자입니다.
  • musl libc 사용: 대부분의 다른 리눅스 배포판이 사용하는 glibc 대신 musl C 라이브러리를 사용합니다. 이 덕분에 이미지 크기가 극적으로 작아지지만, 가끔 glibc 기반으로 빌드된 일부 프로그램에서 호환성 문제가 발생할 수 있습니다.
  • 보안 중심: 최소한의 패키지만 포함하여 공격 표면이 적습니다.
이로써 리눅스 배포판 계열을 크게 세 가지로 분류할 수 있습니다.
  • Red Hat 계열: RPM 기반, yum 또는 dnf 사용 (엔터프라이즈/서버에 적합)
  • Debian 계열: DEB 기반, apt 사용 (데스크톱/클라우드에 적합)
  • Alpine 계열: APK 기반, apk 사용 (컨테이너/경량 환경에 적합)

5. 🌐 네트워크 기본 개념

포트와 통신

  • 포트 번호: 통신 통로, 특정 서비스를 식별
    • 예: 22번 포트 → SSH (터미널 접속용)

인바운드 / 아웃바운드

  • 인바운드(Inbound): 외부 요청을 받는 방향
    • 기본적으로 닫혀 있음 (보안)
    • 요청 시 반드시 인증 필요
  • 아웃바운드(Outbound): 외부로 요청을 보내는 방향
    • 기본적으로 모두 열려 있음
    • 요청한 쪽만 응답 받기 때문에 추가 인증은 없음

6. 🧩 원격 접속과 인증

  • 원격 터미널 접속 방식 예시
    • Telnet: 오래된 방식, 보안 약함
    • SSH: 현재 표준, 보안성 뛰어남 (22번 포트 사용)
  • 인증 방식
      1. ID / Password
      1. 공개키(Public Key) 방식
  • 인증 성공 → 세션(Session) 연결 → 터미널 명령어 사용 가능
 
Share article

jjack1