[アップデート] Elastic BeanstalkでAmazon Linux 2ベースのNode.js、PHP、Go、Rubyプラットフォームの一般提供が開始されました

Elastic Beanstalk で Amazon Linux 2ベースのNode.js、PHP、Go、Rubyプラットフォーム対応がGAとなりました! めでたい。
2020.05.01

以前より、ロードマップにてAmazon Linux 2のサポートが進んでいましたが、一気に4つの言語でGA開始となりました。

AWS Elastic Beanstalk Announces General Availability of Amazon Linux 2 Based Node.js, PHP, Go, and Ruby Platforms

PHPアプリケーションで試してみる

業務の都合で個人的に首を長くして待っていたのがPHPプラットフォームのサポートだったので、PHPで試してみたいと思います。

今回はコンソールから作ります。「プラットフォームのブランチ」にAmazon Linux2を選択することができます。最新の「PHP7.4 runnning on 64bit Amazon Linux 2」を選択します!

01-select-platform

「プラットフォームのブランチ」のプルダウンを見ると、「PHP7.2」「PHP7.3」「PHP7.4」がAmazon Linux2で利用できます。以前まで提供されていたベータ版、deprecatedとなった旧バージョンも表示されています。

02-supported

サンプルアプリケーションの作成が完了すると、プラットフォームの表示でPHP7.4、Amazon Linux2を確認できます。メニューの「環境に移動する」というリンクをクリックしてアプリケーションを確認してみましょう。

04-dashboard

サンプル画面が表示できました。

03-sample-php-app

サーバ内部を確認してみる

サーバにログインしてもう少し見てみます。
下記はpstreeの結果です。WebサーバはApacheではなくnginxに変わっています。

systemd─┬─acpid
        ├─2*[agetty]
        ├─amazon-ssm-agen───6*[{amazon-ssm-agen}]
        ├─atd
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─2*[dhclient]
        ├─gssproxy───5*[{gssproxy}]
        ├─lsmd
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─nginx───nginx
        ├─php-fpm───5*[php-fpm]
        ├─python───3*[{python}]
        ├─rngd
        ├─rpcbind
        ├─rsyslogd───2*[{rsyslogd}]
        ├─ruby───10*[{ruby}]
        ├─sshd───sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        └─systemd-udevd

yumコマンドで各種パッケージの詳細を見てみましょう。
PHPは7.4.4がインストールされていました。

Name        : php
Arch        : x86_64
Version     : 7.4.4
Release     : 1.amzn2
Size        : 3.2 M
Repo        : amzn2extra-php7.4/2/x86_64
Summary     : PHP scripting language for creating dynamic web sites
URL         : http://www.php.net/
License     : PHP and Zend and BSD and MIT and ASL 1.0
Description : PHP is an HTML-embedded scripting language. PHP attempts to make it
            : easy for developers to write dynamically generated web pages. PHP also
            : offers built-in database integration for several commercial and
            : non-commercial database management systems, so writing a
            : database-enabled webpage with PHP is fairly simple. The most common
            : use of PHP coding is probably as a replacement for CGI scripts.
            :
            : The php package contains the module (often referred to as mod_php)
            : which adds support for the PHP language to Apache HTTP Server. This
            : is not the supported way of running PHP, the php-fpm package should be
            : used instead.
Name        : php-fpm
Arch        : x86_64
Version     : 7.4.4
Release     : 1.amzn2
Size        : 6.1 M
Repo        : installed
From repo   : amzn2extra-php7.4
Summary     : PHP FastCGI Process Manager
URL         : http://www.php.net/
License     : PHP and Zend and BSD and MIT and ASL 1.0
Description : PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI
            : implementation with some additional features useful for sites of
            : any size, especially busier sites.

その他にインストールされていたPHP関連パッケージです。

php-xml-7.4.4-1.amzn2.x86_64
php-bcmath-7.4.4-1.amzn2.x86_64
php-gd-7.4.4-1.amzn2.x86_64
php-pdo-7.4.4-1.amzn2.x86_64
php-odbc-7.4.4-1.amzn2.x86_64
php-soap-7.4.4-1.amzn2.x86_64
php-json-7.4.4-1.amzn2.x86_64
php-cli-7.4.4-1.amzn2.x86_64
php-process-7.4.4-1.amzn2.x86_64
php-fpm-7.4.4-1.amzn2.x86_64
php-devel-7.4.4-1.amzn2.x86_64
php-intl-7.4.4-1.amzn2.x86_64
php-mbstring-7.4.4-1.amzn2.x86_64
php-mysqlnd-7.4.4-1.amzn2.x86_64
php-opcache-7.4.4-1.amzn2.x86_64
php-pgsql-7.4.4-1.amzn2.x86_64
php-xmlrpc-7.4.4-1.amzn2.x86_64
php-sodium-7.4.4-1.amzn2.x86_64
php-common-7.4.4-1.amzn2.x86_64
php-pear-1.10.7-3.amzn2.0.1.noarch

composerは1.9.3となっていました。

composer.phar -V
Composer version 1.9.3 2020-02-04 12:58:49

Nginxは1.16.1のバージョンです。

Name        : nginx
Arch        : x86_64
Epoch       : 1
Version     : 1.16.1
Release     : 1.amzn2.0.1
Size        : 1.6 M
Repo        : installed
From repo   : amzn2extra-nginx1
Summary     : A high performance web server and reverse proxy server
URL         : http://nginx.org/
License     : BSD
Description : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
            : IMAP protocols, with a strong focus on high concurrency, performance and low
            : memory usage.

他の言語のプラットフォームについては、下記に一覧が記載されているのでご確認ください。

Release: Elastic Beanstalk general availability of additional Amazon Linux 2 platforms on April 30, 2020 - AWS Elastic Beanstalk

最後に

Amazon Linuxのサポート切れが間近になる中で、メジャーな言語がサポートされました。
これで新しいプラットフォームへの更新が進めやすくなったかと思いますので、ぜひともご検討ください。

以上です。