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

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

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

以前より、ロードマップにて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のサポート切れが間近になる中で、メジャーな言語がサポートされました。 これで新しいプラットフォームへの更新が進めやすくなったかと思いますので、ぜひともご検討ください。

以上です。