백엔드 개발자를 지망하고 있는 입장에서 도커, 함께 잘 쓰이는 Alphine Linux를 알아보기로 했다.
이번 수업을 들으며 처음 듣는 OS인데, 인터넷에 검색해보면 다음과 같이 소개한다.
-알파인 리눅스(Alpine Linux)는 경량 리눅스 배포판으로, 보안성과 속도가 뛰어나고 컨테이너와 가상 머신 환경에서의 사용에 적합하다는 특징이 있습니다. 이러한 특징들 때문에 도커(Docker)의 기본 이미지로 사용되는 등 컨테이너화된 애플리케이션 배포에 매우 유용합니다.
대략 읽어보니 키워드는 가벼움, 보안성, 속도, 컨테이너와 가상 머신 환경에서의 사용에 적합로 분류되는 듯하여 좀 더 자세히 알아보았다.
[경량화된 디자인]
-가볍게 설치가 가능한 경량화된 디자인을 제공합니다
-최소한의 시스템 리소스를 사용하면서도 빠르게 부팅, 응용 프로그램을 실행
-C 라이브러리를 Glibc가 아닌, Musl을 사용, 기본 셸로 Busybox 사용
-아래는 도커 컨테이너 이미지를 Ubuntu, Alphine Linux로 생성했을 때의 예시(Nginx web server 빌드), Ubuntu의 경우 73MB, Alphine Linux의 경우 6MB로 상당한 차이를 보임.
[높은 보안성]
-기본적으로 경량화된(압축된) 패키지를 사용하기에 가벼움, 따라서 보안 이슈, 취약점 등을 빠르게 체크하고 대응할 수 있음.(가볍기에 취약점일 생길 요소 자체가 상대적으로 적을 수밖에 없다)
-좀 더 자세히 알아보면 알파인 리눅스에서 제공되는 모든 유저 레벨(User land)의 바이너리들은 PIE(Position Independent Executables)로 컴파일이 되어 Stack Smashing Protection이 되어있다고 한다.(PIE는 리눅스 환경에서의 메모리 보호기법)
-2014년에 발견된 ShellShock 취약점에 의해, Bash가 기본적으로 설치되어있던 대부분의 리눅스 배포판은 이에 영향을 받았지만 알파인 리눅스는 이로부터 자유로웠음.(BusyBox를 기본 셸로 사용)
[빠른 패키지 관리 시스템]
-APK라는 고유의 패키지 매니저를 사용
-필요한 패키지를 빠르게 설치하고, 관리
-압축된 패키지를 사용하기 때문에, 이미지 크기를 줄이고 보안성을 높임
[참고]
https://velog.io/@dry8r3ad/why-alpine-linux
https://nickjanetakis.com/blog/the-3-biggest-wins-when-using-alpine-as-a-base-docker-image
'CS > 오픈소스SW개발방법및도구' 카테고리의 다른 글
| MVC 패턴에 대해 알아보기 (0) | 2023.06.05 |
|---|---|
| c++ UnitTest(Visual studio 2022 활용) (0) | 2023.05.19 |
| Draw.io를 이용한 FlowChart 만들어보기 (0) | 2023.04.09 |
| LINE TODAY 서비스 개발 및 도입에 활용된 애자일 기법 (0) | 2023.04.04 |
| Java에 대해 알아보자 (0) | 2023.03.22 |