Amazon Linuxの特徴とCentOSとの違い まとめ

Linux
519件のシェア(そこそこ話題の記事)

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

はじめに

Amazon EC2でLinuxサーバを新規構築する場合は弊社ではAmazon Linuxをお勧めすることが多いです。その理由としてはAWSのツールが最初から入っていてAmazonのサポートも受けやすいからです。Amazon Linuxを使ったことがない方はどんなディストリビューションなのか特徴を知りたいのではないかと思いますので、CentOSとの違いも含めまとめてみました。以下はAWS公式サイトのページになります。

Amazon Linux AMI

Amazon Linuxの特徴

Amazon LinuxはRedHat系のディストリビューションになります。CentOSやRHELを使ったことがある方なら同じように使えるのではないかと思います。CentOSとの比較をしながらAmazon Linuxの特徴を見ていきたいと思います。CentOSはAWS MarketPlaceにあるCentOSの公式AMIからのインストールを前提としています。

centos7ami-2

バージョンに関して

CentOSはメジャーバージョンとマイナーバージョンを使ったバージョン表記になっています。X.Yのような形式です。Amazon Linuxはこのようなバージョン表記はされていません。何年何月リリース版のような表記になっており、アップデートするとこの年月が更新されます。現在の最新は2015.09ですが、古いAPIから作成したEC2インスタンスでもsudo yum updateでアップデートすれば同じになります。バージョンは以下のコマンドで確認できます。カーネルを更新したい場合はsudo yum update kernel -yで更新できます。

$ cat /etc/system-release
Amazon Linux AMI release 2015.09

CentOSはアップデートしてもメジャーバージョンまではアップデートされませんがAmazon Linuxの場合は常に最新になります。古いバージョンで固定したい場合はyumの設定ファイルを編集することで固定することが可能です。以下の記事をご覧ください。

Amazon Linuxのリリースバージョンを固定する

インストール済みソフトウェアに関して

最初に書いた通りAmazon LinuxはAWS CLIなどAWSで使えるツールが最初から /opt/aws 以下にインストールされています。Amazon LinuxのyumリポジトリではAWS CLIもパッケージになっているのでyum updateで更新することができます。他のリポジトリを追加したい場合は以下のページの手順でリポジトリを追加できます。

リポジトリの追加

あとはcloud-initが最初からインストールされています。cloud-initというのはUserDataに設定したOSの設定情報を自動で起動時に反映してくれるツールになります。EC2を起動する際にManagement Consoleの以下のテキストエリアからUserDataを設定することができます。

userdata-2

Amazon LinuxはCentOS6と近い構成になっておりCentOS7のsystemd、firewalldのパッケージはAmazon Linuxのyumリポジトリにはありません。これらのパッケージが使いたい場合はCentOSを使うことになります。firewalldは公式のAMIから起動した場合でもデフォルトでインストールされていないのでインストールしましょう。またロケールの設定をlocalectlコマンド、タイムゾーンの設定をtimedatectlコマンドで行うことができますのでそのあたりもAmazon Linuxとは違う点になります。その他にはCentOS7からcloud-initが最初からインストールされるようになっています。 EC2上のCentOS7に関する記事は以下をご覧ください。

Amazon EC2 CentOS 7 AMIファーストインプレッション

systemdやfirewalldに関する記事は以下をご覧ください。

systemd超入門
【初心者向け】CentOS 7インスタンスの初期設定手順

Amazon Linux AMI Security Centerに関して

Amazon Linuxには独自のセキュリティセンターがあり、こちらから脆弱性への対応方法などを確認できます。

Amazon Linux AMI Security Center

cve20150721_1

SELinuxに関して

CentOS7はデフォルトでSELinuxが有効になっているのに対し、Amazon Linuxの場合は無効になっています。getenforceで確認してみました。

$getenforce
Disabled

以下のサイトに有効にする手順がまとまっていました。
Amazon LinuxでSELinuxを有効にする。

デフォルトユーザーに関して

Amazon Linuxの場合はec2-userユーザで秘密鍵を使ってSSHログインしますが、CentOS7の公式AMIはcenotsでログインできました。因みにCentOS6のデフォルトユーザはrootだそうです。

Amazon Linuxの料金に関して

Amazon LinuxとCentOSは同じでOSの利用料は無料になります。RHELはこの2つとは違いライセンス料込みになります。どれくらいライセンス料がかかるかというとオンデマンドインスタンスの場合はvCPUが4までであれば1時間当たり$0.06プラスでvCPUが8以上になると$0.13プラスになるようです。1時間当たり$0.06プラスというのは1か月間にすると約43ドルです。

料金 - Amazon EC2

おわりに

Amazon Linuxの特徴で調べたことは以上になります。私は古いAWSをアップデートすると最新のAMIから起動した場合と同じになる、ということを知らなかったので結構驚きましたが、AWSの連携が容易なのでこれからも積極的に使っていきたいと思います。あまりメジャーなディストリビューションではないと思いますのでサードパーティのミドルウェアを利用する際は動作保証をしっかり確認しましょう。

AWS Cloud Roadshow 2017 福岡