Amazon Linux 2023이 GA되었습니다!

2023/03/15에 GA된 Amazon Linux 2023에 대한 소개와 기존의 Amazon Linux 2와 차이점에 대한 블로그입니다.
2023.03.31

안녕하세요 DA사업본부 송영진입니다. 지난 2023/03/15일자로 Amazon Linux 2023이 GA되었습니다.

오늘은 Amazon Linux 2023와 기존의 Amazon Linux 2의 차이점에 대해 알아보도록 하겠습니다.

Amazon Linux 2023(이하 AL2023)은 AWS용 Linux 기반 운영 체제로 EC2 인스턴스의 AMI로 생성이 가능합니다.

그럼 이제 어떤 점이 달라졌는지 알아보겠습니다.

Amazon Linux 2와 차이점

출시 주기

기존의 Amazon Linux AMI와 Amazon Linux 2는 각각 2010년, 2017년에 출시되어 EOL이 있었으나 연장되는 일이 있었는데요, 이번 AL2023dl GA되면서 2년마다 새로운 AMI를 출시하고 EOL은 각각 5년으로 하겠다는 공식문서의 선언이 있었습니다.

표준 지원 단계에서는 분기마다 마이너 릴리스가 이루어지지만 유지 단계에서는 보안 업데이트나 중요한 버그 수정만 이루어지게 되겠습니다.

앞으로 더욱 EC2 인스턴스의 관리 주기가 2년으로 짧아지게 되겠네요.

기반

기존의 AL2는 CentOS와 RHEL를 기반으로 작성된 Linux였으나 이번 AL2023에서는 페도라를 기반으로 작성되었지만 여전히 페도라의 특정 버전과는 호환되지 않습니다.

OpenSSL

AL2에서 설지되어있던 OpenSSL의 버전은 1.0.2였으나 AL2023에서는 디폴트로 설치되어있는 버전이 OpenSSL 3이 되겠습니다.

EBS볼륨

기본으로 사용되던 EBS 볼륨이 gp2에서 gp3으로 바뀌었습니다. 이 부분은 인스턴스를 생성할 때 확인 하실 수 있습니다.

이러한 변경점 이외에도 다양한 변경이 있습니다.

데이터 엔지니어가 확인해야 할 Python의 변경점

위와 같은 변경 외에도 데이터 엔지니어가 EC2를 사용 할 때 이거 바꿔서 사용해야했다 했던 점이 몇가지 있는데요 한 번 짚어보겠습니다.

내장 Python 버전 변경

기본적으로 내장되어있던 Python2.7 버전이 삭제되고 Python3의 버전이 3.9.16이 되었습니다.

python이라는 명령어 대신 python3으로 3이라는 버전을 명시해줘야 Python이 실행되게 되었습니다.

내장 pip가 없다

이건 조금 당황스러운 부분이었는데요; python3 명령어로 Python을 사용할 수는 있지만 pip나 pip3 명령어를 실행해도 command not found에러가 뜨길래 다음과 같은 명령어로 pip를 설치해야합니다.

python3 -m ensurepip --default-pip

이후에 pip의 버전 21.3.1이 인스톨 된 것을 확인 할 수 있었습니다.

내장 Python 패키지

pip는 없었지만 pip를 인스톨 한 후 패키지를 확인하니 리스트가 상당히 차이가 났는데요 다음과 같습니다

AL2

Package           Version
----------------- -------
aws-cfn-bootstrap 2.0
docutils          0.14
lockfile          0.11.0
pip               20.2.2
pystache          0.5.4
python-daemon     2.2.3
setuptools        49.1.3
simplejson        3.2.0

AL2023

Package              Version
-------------------- --------
attrs                20.3.0
aws-cfn-bootstrap    2.0
awscli               2.9.19
awscrt               0.16.7
Babel                2.9.1
cffi                 1.14.5
chardet              4.0.0
chevron              0.13.1
cloud-init           22.2.2
colorama             0.4.4
configobj            5.0.6
cryptography         36.0.1
dbus-python          1.2.18
distro               1.5.0
docutils             0.16
ec2-hibinit-agent    1.0.2
gpg                  1.15.1
idna                 2.10
Jinja2               2.11.3
jmespath             0.10.0
jsonpatch            1.21
jsonpointer          2.0
jsonschema           3.2.0
libcomps             0.1.18
lockfile             0.12.2
MarkupSafe           1.1.1
netifaces            0.10.6
oauthlib             3.0.2
pip                  21.3.1
ply                  3.11
prettytable          0.7.2
prompt-toolkit       3.0.24
pycparser            2.20
pyrsistent           0.17.3
pyserial             3.4
PySocks              1.7.1
python-daemon        2.3.0
python-dateutil      2.8.1
pytz                 2022.7.1
PyYAML               5.4.1
release-notification 1.2
requests             2.25.1
rpm                  4.16.1.3
ruamel.yaml          0.16.6
ruamel.yaml.clib     0.1.2
selinux              3.4
sepolicy             3.4
setools              4.4.1
setuptools           59.6.0
six                  1.15.0
support-info         1.0
urllib3              1.25.10
wcwidth              0.2.5

패키지 수가 차이가 많이 나죠? 여러가지 패키지가 내장되어있으나 데이터 엔지니어들의 친구 numpy와 pandas가 없는건 아쉬운 부분입니다. 물론 pandas는 무겁기 때문에 필요 없는 분들께는 정말로 필요가 없습니다 ㅋㅋㅋㅋ

물론 Python 뿐만 아니라 다른 다양한 패키지의 업데이트가 있으므로 모든 패키지의 변화를 확인하고 싶으신 분은 다음 공식 문서를 참조해주시길 바랍니다.

 

마지막으로

오늘은 Amazon Linux 2023에 대해서 알아보고, 기존의 Amazon Linux 2와 다른 점을 몇가지 짚어보았습니다. 저도 Glue Job을 쓰기엔 메모리가 부족하다던가 Lambda로 대응이 안될 작업을 처리할 때는 EC2 인스턴스를 사용하곤 합니다. 그 때 가장 많이 사용하는 AMI가 Amazon Linux 2였습니다.

하지만 내장된 Python의 버전이 낮다던가 자주 사용하는 라이브러리가 없다던가 했기 때문에 제가 필요한 것들을 넣어서 AMI를 새로 만들어서 사용하곤 했는데요, 이번 AL2023이 출시되었으니 몇몇 부분은 자동으로 해결 된 부분이 있습니다. 그리고 보안 업데이트라던가 EBS로 gp3가 기본적으로 사용된다던가 하는 부분이 마음에 들어서 빨리 마이그레이션을 해야겠다고 생각합니다.

하지만 EOL이 5년 고정이니 이런 작업을 몇년 주기로 계속 해야 한다고 생각하니 귀찮은 부분이 없지는 않네요...

여러분들도 이러한 새로운 내용을 숙지해두셔서 도움이 되었으면 좋겠습니다. 감사합니다!