このページに来たということは、
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に対する抵抗感減少に貢献できれば幸いです!
Comments