AWS 콘솔 system log = dmesg 인가
요약
- AWS Console의 "인스턴스 로그 읽기" 기능은 커널 링 버퍼(dmesg)를 직접 읽는 것이 아니고 EC2의 부팅 과정에서 콘솔(/dev/ttyS0)에 출력된 로그를 AWS에서 캡처하여 제공하는 방식
참고: 콘솔 출력(/dev/ttyS0)등은 사용자/프로세스 레벨이 아니므로 stdout,stderr랑 관련이 없음
커널 로그 저장 및 출력 순서
graph TD
A["커널 이벤트 발생<br>(하드웨어 인식, 드라이버 로딩, 오류 등)"]
B["커널 내부 printk() 함수 호출로 메시지 생성"]
C["커널 링 버퍼(kernel ring buffer)에 메시지 저장<br/>(메모리 저장)"]
D["커널 링 버퍼 내용을 콘솔(/dev/console 등)에 출력"]
E["사용자 공간에서 dmesg 명령어로 조회 가능"]
F["AWS 가상화 계층에서 콘솔 출력 캡처"]
G["AWS Console에서 '인스턴스 로그 읽기'로 제공"]
A --> B
B --> C
C --> D
C --> E
D --> F
F --> G
subgraph 커널 공간
A --> B["커널 내부 printk() 함수 호출로 메시지 생성"] --> C["커널 링 버퍼(kernel ring buffer)에 메시지 저장"]
C --> D
end
D --> F
F --> G
C --> E
AWS Console의 로그는 일부 커널 메시지만 포함되며 커널 링 버퍼의 전체 내용과 완전히 동일하지는 않음
참고: EFI 시스템에서 부팅 순서
| 단계 | 설명 | 비고 |
|---|---|---|
| 1 | UEFI 펌웨어가 ESP(EFI 시스템 파티션)의 GRUB EFI 애플리케이션(grubx64.efi)을 직접 실행 | EFI 파티션 사용 |
| 2 | grubx64.efi가 grub.cfg를 읽어 부팅 메뉴 구성 | grub.cfg 설정 파일 참조 |
| 3 | GRUB가 커널 이미지를 메모리에 로드 | 리눅스 커널(vmlinuz)과 초기 램디스크(initrd) |
| 4 | 커널이 로드되며 커널 링 버퍼가 생성되어 메시지 기록 준비 | 링 버퍼(dmesg)가 초기화됨 |
| 5 | 커널 실행 시작, 하드웨어 초기화 등 부팅 진행 | init 프로세스(systemd 등) 실행 |