Amazon Linux 2 とは?使い勝手をレビューします!

Amazon Linux

このページに来たということは、
 Amazon Linux 2という名前を知っている、興味がある
 しかし、Amazon Linux 2を使ったことがなく、イマイチ取っつきにくいと思っている
方だと(勝手に)思っています。

そこで、私が使ってみた結果を書いていきたいと思います!

総括

・(自分のような)Linux中級以上であれば問題なく使える

・パッケージマネージャーはyumなので、アプリの追加/削除は簡単

・パッケージは最小限が入っていて、自分で欲しいモノを追加する運用
 フルスクラッチから作り上げていくのが好きな人にはオススメ
 逆にパッケージ追加がめんどくさい人はUbuntuなどを選ぶ方が無難

・メモリ使用量は起動直後で70MBと非常に小さいと感じた

・kernelバージョンは4.xとやや古め
 5.xの機能が欲しい場合はUbuntuを使う方がいい

使ってみて、使う前に持っていた
 得体の知れないとっつきにくさ
は解消されました。

私は普段Ubuntu/Archを使うことが多いのですが、GUIレスであるUbuntu ServerのCentOS版みたいな印象です。

パッケージマネージャーはyumなので、主要なパッケージは
 sudo yum install (パッケージ名)
で簡単に入れられます。
インターネットの情報も豊富にあり、基本的な運用で困ることはなさそうです。

また、yumなのでCentOS/Fedora系のテクニックを転用できるのも大きなメリットですね。
まず「Amazon Linux 2 + (キーワード)」で検索し、見つからなかったら「CentOS + (キーワード)」や「Fedora + (キーワード)」で検索すると見つかる可能性が出てきます!

ディスクやメモリの使用量も少ないのは、課金だけでなくセキュリティ面でも嬉しいポイント。

一つ気になるのは、kernelのバージョンが4.xと少し古いものを採用していたこと。
5.xでの追加機能を使いたい場合はUbuntuなど別ディストリビューションを選ぶことになります。

ただ、古いということは、「枯れている」ので、安定した運用が期待できます。
新規性より安定性を取りたい場合にはベストチョイスと言えるでしょう。

Amazon Linux 2とは

簡単に言うと、
 Amazonが作ったAWSのためのLinuxディストリビューション
です。

このページによれば、インスタンス数は50万を超え一位です。

AWSの説明ページで、

Amazon Linux 2 は Amazon Linux の次世代バージョンで、アマゾン ウェブ サービス (AWS) が提供する Linux サーバーオペレーティングシステムです。

https://aws.amazon.com/jp/amazon-linux-2/

とある通り、AWSで使うことを第一に想定したLinuxディストリビューションです。

ただ、VirtualBox向けvdiなどの仮想マシンイメージDockerイメージも配布していて、オンプレミス環境でも気軽に試せるようになっています。
AWSで動かすと課金されるので、その前のお試しとしては最適ですね。

Amazon Linux 2インスタンスを作る

このブログサーバーはlightsailで動かしていて、なにげにEC2は初めてだったりします。

EC2のページに移動し「インスタンスを起動」を選択。



OSの種類を選択するところで、Amazon Linux 2を選択します。
 たぶん初期状態ですでに選択されているはず。



CPUやメモリを指定します。
今回はとりあえず動かすことが目的なので、t2.microで。
AWSを作って1年以内の方は無料枠があるのがいいですよね。



確認画面です。
そのまま「起動」するとインスタンスが作成され、起動します。



どのキーペアを使うかを聞かれます。
puttyやteratermなどでSSHしなければキーペアを使わないと思いますが、一応作っておきます。
 不要なら一通り作業後に削除してOK。



無事に起動しました。
 なんて簡単なんだ…

Amazon Linux 2を動かしてみる

思いつくままに適当に動かしてみます。

まずはSSHログインしないと話にならないので。
今回はブラウザー経由で入ります。
puttyなどのSSHソフトで入る際は先ほど作ったキーペアで公開鍵認証方式を設定しましょう。

インスタンスにチェックを入れ「接続」を選びます。



「接続」します。



無事接続できましたね!

kernelバージョン

4.14と少し古め。
同じコマンドでUbuntuでは5.xでした。
Amazon Linux 2は安定志向なのでしょうか?

メモリ使用量

freeのusedベースですが75MBです。
かなり少ない気がします。



ちなみにUbuntu Server 20.04だとこんな感じ。
149MBと、Amazon Linux 2の約2倍です。

ディスク使用量

duで。
1.4GBと出ました。



Ubuntuでも同様に試してみました。
やはりAmazon Linux 2の方が小さいですね。
 その分パッケージ数はUbuntuの方が上なのでしょう。

sysbenchの結果

sysbenchは使ったことないのですが、簡単にベンチできますよということでやってみました。

結論から言うと、Amazon Linux 2とUbuntuとで大した差はありませんでした。
まあ当たり前か。
ほとんど同じパフォーマンスということで画像は省略します。

それぞれへのインストール方法は以下の記事を参照しました。
 Amazon Linux 2
 Ubuntu

nextcloud環境を構築する

ここではとりあえずnextcloudを起動するところまでをやってみます。

基本的な作業手順は↓に書いたやつで。



必要なパッケージのインストール。
yumだとPHPの5.xという古いバージョンが入り、nextcloudの動作要件を満たさないので、まずPHP7.3を入れ、その後に必要なエクステンションを入れていきます。

sudo yum install httpd
sudo amazon-linux-extras install php7.3
sudo yum install php-mysql php-zip php-xml php-mbstring php-gd php-curl 



amazon-linux-extrasはAmazon Linuxならではの追加パッケージを入れられるコマンドです。
2021/02/01現在で入れられるパッケージは以下でした。

   0  ansible2                 available    \
         [ =2.4.2  =2.4.6  =2.8  =stable ]
   2  httpd_modules            available    [ =1.0  =stable ]
   3  memcached1.5             available    \
         [ =1.5.1  =1.5.16  =1.5.17 ]
   5  postgresql9.6            available    \
         [ =9.6.6  =9.6.8  =stable ]
   6  postgresql10             available    [ =10  =stable ]
   8  redis4.0                 available    \
         [ =4.0.5  =4.0.10  =stable ]
   9  R3.4                     available    [ =3.4.3  =stable ]
  10  rust1                    available    \
         [ =1.22.1  =1.26.0  =1.26.1  =1.27.2  =1.31.0  =1.38.0
           =stable ]
  11  vim                      available    [ =8.0  =stable ]
   _  php7.2                   available    \
         [ =7.2.0  =7.2.4  =7.2.5  =7.2.8  =7.2.11  =7.2.13  =7.2.14
           =7.2.16  =7.2.17  =7.2.19  =7.2.21  =7.2.22  =7.2.23
           =7.2.24  =7.2.26  =stable ]
   _  lamp-mariadb10.2-php7.2  available    \
         [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5
           =10.2.10_7.2.8  =10.2.10_7.2.11  =10.2.10_7.2.13
           =10.2.10_7.2.14  =10.2.10_7.2.16  =10.2.10_7.2.17
           =10.2.10_7.2.19  =10.2.10_7.2.22  =10.2.10_7.2.23
           =10.2.10_7.2.24  =stable ]
  18  libreoffice              available    \
         [ =5.0.6.2_15  =5.3.6.1  =stable ]
  19  gimp                     available    [ =2.8.22 ]
  20  docker=latest            enabled      \
         [ =17.12.1  =18.03.1  =18.06.1  =18.09.9  =stable ]
  21  mate-desktop1.x          available    \
         [ =1.19.0  =1.20.0  =stable ]
  22  GraphicsMagick1.3        available    \
         [ =1.3.29  =1.3.32  =1.3.34  =stable ]
  23  tomcat8.5                available    \
         [ =8.5.31  =8.5.32  =8.5.38  =8.5.40  =8.5.42  =8.5.50
           =stable ]
  24  epel                     available    [ =7.11  =stable ]
  25  testing                  available    [ =1.0  =stable ]
  26  ecs                      available    [ =stable ]
  27  corretto8                available    \
         [ =1.8.0_192  =1.8.0_202  =1.8.0_212  =1.8.0_222  =1.8.0_232
           =1.8.0_242  =stable ]
  28  firecracker              available    [ =0.11  =stable ]
  29  golang1.11               available    \
         [ =1.11.3  =1.11.11  =1.11.13  =stable ]
  30  squid4                   available    [ =4  =stable ]
  31  php7.3=latest            enabled      \
         [ =7.3.2  =7.3.3  =7.3.4  =7.3.6  =7.3.8  =7.3.9  =7.3.10
           =7.3.11  =7.3.13  =stable ]
  32  lustre2.10               available    \
         [ =2.10.5  =2.10.8  =stable ]
  33  java-openjdk11           available    [ =11  =stable ]
  34  lynis                    available    [ =stable ]
  35  kernel-ng                available    [ =stable ]
  36  BCC                      available    [ =0.x  =stable ]
  37  mono                     available    [ =5.x  =stable ]
  38  nginx1                   available    [ =stable ]
  39  ruby2.6                  available    [ =2.6  =stable ]
  40  mock                     available    [ =stable ]
  41  postgresql11             available    [ =11  =stable ]
   _  php7.4                   available    [ =stable ]
  43  livepatch                available    [ =stable ]
  44  python3.8                available    [ =stable ]
  45  haproxy2                 available    [ =stable ]
  46  collectd                 available    [ =stable ]
  47  aws-nitro-enclaves-cli   available    [ =stable ]
  48  R4                       available    [ =stable ]
  49  kernel-5.4               available    [ =stable ]
  50  selinux-ng               available    [ =stable ]



nextcloudの最新版をダウンロードして/var/www/html/に展開します。

wget https://download.nextcloud.com/server/releases/latest.zip
cd /var/www/html/
sudo unzip /home/ec2-user/latest.zip
sudo chown -R apache:apache nextcloud



ここまででnextcloud起動準備はできました。
EC2はデフォルトでSSH以外のポートを閉じているので、HTTP/HTTPSポートを開けます。

インスタンス一覧のページで該当インスタンスを選択。



セキュリティグループを選択。



インバウンドルールにHTTPとHTTPSを許可するルールを追加します。
↓で「ルールを追加」をクリック。



タイプに「HTTP」
ソースに「任意の場所」
を指定します。



これをHTTPとHTTPSに対して実施すれば終わりです。
以下のようになっていると思います。



ここまででnextcloudに外部からアクセスできるようになっているはずです。
http://<Amazon Linux 2のIPアドレス>/nextcloud/ でアクセスしてみましょう。

ということで、nextcloudサーバーがものの10分で作れてしまいました…
なんて簡単なんだ…

終わりに

いかがでしたか。

自分自身がAmazon Linux 2をよくわかっていなかったので、どんなものか掴むためにやったことをまとめてみました!

この記事があなたのAWS/Amazon Linuxに対する抵抗感減少に貢献できれば幸いです!

この記事を書いた人

組込ソフト歴15年の外資系エンジニア。
前職で組込Linuxを使った商品設計/品質確保の業務に従事。
Raspberry Piが好き。
株式投資で年50万円を稼ぐ。
妻は香港人(国際結婚)。

Please follow me
Amazon Linux
Please follow me

Comments

タイトルとURLをコピーしました