EC2 리눅스 배포판 선택에 앞서, 어떤 걸 선택하면 좋을지 먼저 조사 후 작업을 진행해보려 한다.
Reference에 적혀있는데 테코블 블로그에 정리가 잘 되어있어서 적어보며 공부해 보았다.
리눅스란?
먼저 리눅스는 커널이라는 운영체제의 일종
운영체제는 컴퓨터 시스템 중앙에서 시스템을 구성하는 자원들을 관리하며 시스템을 작동시키는 구성요소라고 한다.
(Windows, MacOS 등)
운영체제는 CPU와 같은 자원 사용을 효율적으로 사용할 수 있게 도와주는 역할도 하고 있다.
커널이 바로 이런 역할을 하는데 메모리 위에 항상 상주하며 작동한다.
커널은 운영체제의 역할 중에서 프로그램들과 하드웨어 사이를 소통, 제어해주는 역할을 한다.
운영체제를 위한 커널에도 여러 종류가 있는데, 이 중 리눅스라는 커널을 선택하는 운영체제들이 있다.
➡️ 이를 통상적으로 운영체제로서의 리눅스라고 부른다고 한다.
하지만, 리눅스 커널만으로는 운영체제의 역할을 해낼 수 없기 때문에 이를 해결하기 위해 만든 GNU와 함께 사용하며,
GNU/Linux 라는 형태로 사용하게 된다. 실제로 운영체제로서 리눅스라고 부르는 것은 단순한 커널뿐만 아니라 여러 프로그램을 묶어서
배포하는 GNU/Linux에서 기능이 추가된 것이라고 볼 수 있다.
** GNU란 자유 소프트웨어에서 만든 프로젝트
리눅스 커널은 서버에서 많이 선택되는 Ubuntu, CentOS, RHEL(Red Hat Enterprice Linux) 뿐만 아니라 Android도 리눅스 커널을 채택하여 사용하고 있다.
리눅스 배포판
운영체제는 커널 이외의 다른 부분도 존재한다.
단순히 위에서 지칭한 리눅스는 사용자들이 많이 사용하는 Windows, MacOS 정도의 편의성에서는 못미치는 상태이다.
Ubuntu Server나 RHEL에서 제공하는 서버 관련 low level의 기능들조차 제공해주지 못한다.
순수하게 리눅스 커널 자체만 사용하는 것이 아닌 커널과 함게 해당 운영체제 목적에 맞는 여러 프로그램을 패키징하여 제공하는 것을 배포판이라고 한다. AWS의 운영체제 선택 창에서 보았던 Window Server를 제외한 많은 운영체제가 리눅스 커널을 사용하되, 목적에 따라 다양한 프로그램들을 함께 제공하는 배포판의 종류들이다.
배포판에 따라 서버 운영에 특화된 것, 일반 사용자에게 특화된 것, IoT와 같은 소형 장치들에 특화된 것들이 나뉘어서 제공된다.
apt와 yum
각각의 배포판에서는 운영체제 및 프로그램을 쉽게 관리할 수 있도록 저장소를 운영하고 있다. 저장소 및 저장소를 통해 설치된 프로그램의 버전 및 의존성을 관리해주는 패키지 매니저에 접근하는 명령어들은 배포판마다 각각 다르다. Ubuntu는 Debian 계열에 기반을 두어 apt명령어를 사용하고, Centos는 Fedora 계열에 기반을 두어 yum 명령어를 통해 각각의 리눅스 배포판의 저장소에 접근하여 해당 저장소 정보를 받아오게 된다.
CentOS, Fedora, RHEL차이
레드햇 계열 --> Fedora, RHEL, Centos
Fedora --> 레드햇이 후원하고 개발 공동체에 의해 진행되는 Linux 배포판이다. 새로운 기술과 SW를 실험하고 선도하는 것을 주요 목적으로 한다. 페도라의 주요 특징 중 하나는 보안을 중요시하고 이에 많은 투자를 한다는 점이라고 한다.
RHEL --> 레드햇 사가 개발하는 상업용 리눅스 배포판, 기업 환경에 맞게 안정성과 성능, 보안성을 최우선 목적으로 하고 있고, 철저하게 검증된 기능과 패키지만 배포본에 포함시킨다고 한다. 페도라 리눅스 배포판을 기반으로 하여 검증되고 안정화된 코드를 채택하여 개발된다. RHEL의 안정성은 유명하여 Oracle사의 Linux인 Oracle Linux도 RHEL을 기반으로 하고 있으며, 아마존 웹서비스에 사용되는 Amazon Linux AMI등에서도 사용되고 있다. (Amazon Linux 2022는 페도라에 기반한다는 기사가 있던데 이 부분은 잘 모르겠다)
CentOS --> RHEL의 소스를 가져와서 레드햇의 브랜드 로고를 제거하고 컴파일하여 만드는 배포본. RHEL의 소스를 거의 수정 없이 사용. 무료로 사용가능. 웹서버로 인기가 높으며, 업무의 중요도에 따라 RHEL과 혼용하여 사용 가능하다. 웹서버는 CentOS, WAS와 DBMS는 RHEL의 조합으로 사용 가능하다.
그래서 어떤 배포판을 선택하면 좋을까..?
Amazon Linux 2 가 CentOS와 별반 차이가 없고 아마존 사용할 거라면 아마존 리눅스 버전을 사용하라는 추천의 글을 하나 찾았다. [참고2]
클라우드 환경과 Docker 컨테이너에 최적화되어있고, 최신 Centos나 Ubuntu처럼 systemd 기반으로 서비스를 관리하게 되어있다고 한다 [참고3]
일단 Amazon Linux 2를 사용해 보아야겠다는 결론을 내리면서 글을 마무리.
Reference
[참고1]
https://tecoble.techcourse.co.kr/post/2021-09-13-linux-distribution/
[참고2]
https://www.pabburi.co.kr/content/linux_server/amazon-linux-2-%EC%82%AC%EC%9A%A9%ED%9B%84%EA%B8%B0/
[참고3]
https://www.lesstif.com/lpt/amazon-linux-2-ami-php-python-ruby-51283065.html
[참고4]
'Server > DevOps' 카테고리의 다른 글
[AWS] Jenkins CI/CD 구축하기_(2) (0) | 2022.08.25 |
---|---|
[AWS] Jenkins CI/CD 구축하기_(1) (0) | 2022.08.25 |
[AWS] EC2 Docker 설치 및 컨테이너 실행 (+NGINX) (0) | 2022.08.25 |
[AWS] EC2 생성 및 접속 (0) | 2022.08.25 |
DevOps 팀의 Phase1 기록 (0) | 2022.08.25 |
EC2 리눅스 배포판 선택에 앞서, 어떤 걸 선택하면 좋을지 먼저 조사 후 작업을 진행해보려 한다.
Reference에 적혀있는데 테코블 블로그에 정리가 잘 되어있어서 적어보며 공부해 보았다.
리눅스란?
먼저 리눅스는 커널이라는 운영체제의 일종
운영체제는 컴퓨터 시스템 중앙에서 시스템을 구성하는 자원들을 관리하며 시스템을 작동시키는 구성요소라고 한다.
(Windows, MacOS 등)
운영체제는 CPU와 같은 자원 사용을 효율적으로 사용할 수 있게 도와주는 역할도 하고 있다.
커널이 바로 이런 역할을 하는데 메모리 위에 항상 상주하며 작동한다.
커널은 운영체제의 역할 중에서 프로그램들과 하드웨어 사이를 소통, 제어해주는 역할을 한다.
운영체제를 위한 커널에도 여러 종류가 있는데, 이 중 리눅스라는 커널을 선택하는 운영체제들이 있다.
➡️ 이를 통상적으로 운영체제로서의 리눅스라고 부른다고 한다.
하지만, 리눅스 커널만으로는 운영체제의 역할을 해낼 수 없기 때문에 이를 해결하기 위해 만든 GNU와 함께 사용하며,
GNU/Linux 라는 형태로 사용하게 된다. 실제로 운영체제로서 리눅스라고 부르는 것은 단순한 커널뿐만 아니라 여러 프로그램을 묶어서
배포하는 GNU/Linux에서 기능이 추가된 것이라고 볼 수 있다.
** GNU란 자유 소프트웨어에서 만든 프로젝트
리눅스 커널은 서버에서 많이 선택되는 Ubuntu, CentOS, RHEL(Red Hat Enterprice Linux) 뿐만 아니라 Android도 리눅스 커널을 채택하여 사용하고 있다.
리눅스 배포판
운영체제는 커널 이외의 다른 부분도 존재한다.
단순히 위에서 지칭한 리눅스는 사용자들이 많이 사용하는 Windows, MacOS 정도의 편의성에서는 못미치는 상태이다.
Ubuntu Server나 RHEL에서 제공하는 서버 관련 low level의 기능들조차 제공해주지 못한다.
순수하게 리눅스 커널 자체만 사용하는 것이 아닌 커널과 함게 해당 운영체제 목적에 맞는 여러 프로그램을 패키징하여 제공하는 것을 배포판이라고 한다. AWS의 운영체제 선택 창에서 보았던 Window Server를 제외한 많은 운영체제가 리눅스 커널을 사용하되, 목적에 따라 다양한 프로그램들을 함께 제공하는 배포판의 종류들이다.
배포판에 따라 서버 운영에 특화된 것, 일반 사용자에게 특화된 것, IoT와 같은 소형 장치들에 특화된 것들이 나뉘어서 제공된다.
apt와 yum
각각의 배포판에서는 운영체제 및 프로그램을 쉽게 관리할 수 있도록 저장소를 운영하고 있다. 저장소 및 저장소를 통해 설치된 프로그램의 버전 및 의존성을 관리해주는 패키지 매니저에 접근하는 명령어들은 배포판마다 각각 다르다. Ubuntu는 Debian 계열에 기반을 두어 apt명령어를 사용하고, Centos는 Fedora 계열에 기반을 두어 yum 명령어를 통해 각각의 리눅스 배포판의 저장소에 접근하여 해당 저장소 정보를 받아오게 된다.
CentOS, Fedora, RHEL차이
레드햇 계열 --> Fedora, RHEL, Centos
Fedora --> 레드햇이 후원하고 개발 공동체에 의해 진행되는 Linux 배포판이다. 새로운 기술과 SW를 실험하고 선도하는 것을 주요 목적으로 한다. 페도라의 주요 특징 중 하나는 보안을 중요시하고 이에 많은 투자를 한다는 점이라고 한다.
RHEL --> 레드햇 사가 개발하는 상업용 리눅스 배포판, 기업 환경에 맞게 안정성과 성능, 보안성을 최우선 목적으로 하고 있고, 철저하게 검증된 기능과 패키지만 배포본에 포함시킨다고 한다. 페도라 리눅스 배포판을 기반으로 하여 검증되고 안정화된 코드를 채택하여 개발된다. RHEL의 안정성은 유명하여 Oracle사의 Linux인 Oracle Linux도 RHEL을 기반으로 하고 있으며, 아마존 웹서비스에 사용되는 Amazon Linux AMI등에서도 사용되고 있다. (Amazon Linux 2022는 페도라에 기반한다는 기사가 있던데 이 부분은 잘 모르겠다)
CentOS --> RHEL의 소스를 가져와서 레드햇의 브랜드 로고를 제거하고 컴파일하여 만드는 배포본. RHEL의 소스를 거의 수정 없이 사용. 무료로 사용가능. 웹서버로 인기가 높으며, 업무의 중요도에 따라 RHEL과 혼용하여 사용 가능하다. 웹서버는 CentOS, WAS와 DBMS는 RHEL의 조합으로 사용 가능하다.
그래서 어떤 배포판을 선택하면 좋을까..?
Amazon Linux 2 가 CentOS와 별반 차이가 없고 아마존 사용할 거라면 아마존 리눅스 버전을 사용하라는 추천의 글을 하나 찾았다. [참고2]
클라우드 환경과 Docker 컨테이너에 최적화되어있고, 최신 Centos나 Ubuntu처럼 systemd 기반으로 서비스를 관리하게 되어있다고 한다 [참고3]
일단 Amazon Linux 2를 사용해 보아야겠다는 결론을 내리면서 글을 마무리.
Reference
[참고1]
https://tecoble.techcourse.co.kr/post/2021-09-13-linux-distribution/
[참고2]
https://www.pabburi.co.kr/content/linux_server/amazon-linux-2-%EC%82%AC%EC%9A%A9%ED%9B%84%EA%B8%B0/
[참고3]
https://www.lesstif.com/lpt/amazon-linux-2-ami-php-python-ruby-51283065.html
[참고4]
'Server > DevOps' 카테고리의 다른 글
[AWS] Jenkins CI/CD 구축하기_(2) (0) | 2022.08.25 |
---|---|
[AWS] Jenkins CI/CD 구축하기_(1) (0) | 2022.08.25 |
[AWS] EC2 Docker 설치 및 컨테이너 실행 (+NGINX) (0) | 2022.08.25 |
[AWS] EC2 생성 및 접속 (0) | 2022.08.25 |
DevOps 팀의 Phase1 기록 (0) | 2022.08.25 |