Amazon Linux 2 AMI 에 PHP, Python, Ruby 배포 환경 구성

개요

아마존의 차세대 리눅스 배포판인 Amazon Linux 2 LTS 를 17년 12월부터 EC2 에서 사용할 수 있게 되었습니다.

신규로 EC2 인스턴스를 생성할 일이 있었는데 새로운 인스턴스는 Amazon Linux 2를 사용하는게 좋을 것 같아서 이 AMI를 선택했는데 기존  Amazon Linux AMI와 여러 가지 차이점이 있는 것 같아서 기억 보존 차원에서 정리해 봅니다.


AMI1 과 차이점

기존 AMI 1과 가장 큰 차이점은 커널 버전이 매우 높고(4.9) 클라우드 환경과 Docker 컨테이너에 최적화되어 있고 5년간의 지원을 제공하는 LTS 버전이라는 점입니다.

시스템 관리자 입장에서는 최신 CentOS 이나 Ubuntu 처럼 systemd 기반으로 서비스를 관리하게 되어 있고 Amazon Linux Extras repository를 통해 최신 패키지를 지원하고 있습니다.

자세한 설명은 https://aws.amazon.com/ko/about-aws/whats-new/2017/12/introducing-amazon-linux-2/ 를 참고하세요.

extra  저장소 설정

extra 저장소 관리를 위해 amazon-linux-extras 라는 명령어가 추가되었습니다.


아무 옵션 없이 실행하면 extra 패키지 저장소 목록과 현황을 표시합니다. 

$ amazon-linux-extras
 0  ansible2   disabled  [ =2.4.2 ]
  1  emacs   disabled  [ =25.3 ]
  2  memcached1.5   disabled  [ =1.5.1 ]
  3  nginx1.12   disabled  [ =1.12.2 ]
  4  postgresql9.6   disabled  [ =9.6.6 ]
  5  python3   disabled  [ =3.6.2 ]
  6  redis4.0   disabled  [ =4.0.5 ]
  7  R3.4   disabled  [ =3.4.3 ]
  8  rust1   disabled  [ =1.22.1 ]
  9  vim   disabled  [ =8.0 ]
 10  golang1.9   disabled  [ =1.9.2 ]
 11  ruby2.4   disabled  [ =2.4.2 ]
 12  nano   disabled  [ =2.9.1 ]
 13  php7.2   disabled  [ =7.2.0 ]
 14  lamp-mariadb10.2-php7.2   disabled  [ =10.2.10_7.2.0 ]


패키지를 사용하려면  install 명령과 저장소 이름을 지정합니다. 다음은 python, php, redis와 nginx 저장소를 설치합니다.

$ amazon-linux-extras install python3 php7.2 nginx1.12 redis4.0

설치가 완료되었다면 amazon-linux-extras 를 옵션없이 실행하면 해당 패키지의 저장소 목록이 enabled 로 변경된 것을 확인할 수 있습니다.


0 ansible2 disabled [ =2.4.2 ]
1 emacs disabled [ =25.3 ]
2 memcached1.5 disabled [ =1.5.1 ]
3 nginx1.12=latest enabled [ =1.12.2 ]
4 postgresql9.6 disabled [ =9.6.6 ]
5 python3=latest enabled [ =3.6.2 ]
6 redis4.0 disabled [ =4.0.5 ]
7 R3.4 disabled [ =3.4.3 ]
8 rust1 disabled [ =1.22.1 ]
9 vim disabled [ =8.0 ]
10 golang1.9 disabled [ =1.9.2 ]
11 ruby2.4 disabled [ =2.4.2 ]
12 nano disabled [ =2.9.1 ]
13 php7.2=latest enabled [ =7.2.0 ]
14 lamp-mariadb10.2-php7.2 disabled [ =10.2.10_7.2.0 ]


저장소 설치가 완료되면 extra에 있는 패키지가 시스템의 기본 패키지가 되므로 버전을 명시하지 않아도 됩니다.

예로 extra 저장소 미설치시 yum info php 로 확인한 PHP 의 버전은 5.4이지만 extra 를 설치하면 7.2가 됩니다.

라라벨을 위한 PHP 패키지 설치

 Click here to expand...


설치가 끝나면 yum list installed 명령어로 설치된 패키지를 확인할 수 있습니다.

$ yum list installed|grep php
php-cli.x86_64                    7.2.0-3.amzn2.1          @amzn2extra-php7.2
php-common.x86_64                 7.2.0-3.amzn2.1          @amzn2extra-php7.2
php-fpm.x86_64                    7.2.0-3.amzn2.1          @amzn2extra-php7.2
php-gd.x86_64                     7.2.0-3.amzn2.1          @amzn2extra-php7.2
php-json.x86_64                   7.2.0-3.amzn2.1          @amzn2extra-php7.2
php-mbstring.x86_64               7.2.0-3.amzn2.1          @amzn2extra-php7.2
php-mysqlnd.x86_64                7.2.0-3.amzn2.1          @amzn2extra-php7.2
php-opcache.x86_64                7.2.0-3.amzn2.1          @amzn2extra-php7.2
php-pdo.x86_64                    7.2.0-3.amzn2.1          @amzn2extra-php7.2
php-xml.x86_64                    7.2.0-3.amzn2.1          @amzn2extra-php7.2


같이 보기 


Ref