【AWS】EC2入門/CentOSを利用する前に知っておいてほしいこと
はじめに
2013年6月27日にAWS MarketplaceでCentOS 6.4のAMI(起動可能なサーバイメージ)が提供開始されました。AWS Marketplaceに登録されたことで、簡単にCentOSを利用することができます。
CentOS 6.4 now available on AWS Marketplace
「CentOSのAMIがMarketplaceに登録されると何がうれしいの?」という疑問を持たれた方は、都元さんが「EC2上でCentOSを使う 〜 AWS Marketplaceを利用してみる」にその理由を書いています。
Community AMIからCentOSを検索しても、世界中のAWSユーザが公開する様々な目的のAMIが大量に表示されてしまい、自分の目的に合ったAMIや、最もシンプルな構成のプレーンなAMIを見つけ出すのはかなり困難と言って良いでしょう。 (中略) Marketplaceでは、本家CentOS.orgが提供する純正のAMIが提供されています。
公式というのはやはり安心しますね。それでは公式のCentOSとはどんなものなのでしょうか?
CentOS Cloud/AWS Wiki
CentOS公式のWiki「Cloud/AWS CentOS Wiki」にて、AWSでCentOSを使用する際の注意点がまとまっています。
インストールされているパッケージ
CentOSをAWS上で動かすための最低限のパッケージと、SSHでログインするための環境のみが構成されています。本当に最低限でunzipコマンドも入っていないです。足りなかったらyumで入れましょう。
CentOS起動後にどんなパッケージ(RPM)がインストールされているのか調べたい場合は、次のコマンドを実行してください。
# rpm -qa | sort
6種類のAMIの違い
CentOS バージョン6のAMIは6種類用意されています。32bit版、64bit版でそれぞれ3種類ずつです。それぞれ3種類のAMIの違いは以下の通りです。
- CentOS 6.3(2012-07-09) ... 6.3リリース時の状態(その後にリリースされたセキュリティアップデートは含んでいない)
- CentOS 6.4(2013-03-09) ... 6.4リリース時の状態(その後にリリースされたセキュリティアップデートは含んでいない)
- CentOS 6(2013-05-27)... 推奨。セキュリティアップデートも含んでいる。
ということなので、64bit版のCentOSを使うときには「CentOS 6 (x86_64)」を使いましょう。そしてログインしたらまずyum updateして最新のセキュリティアップデートをインストールしましょう。
AWSコマンドラインツールのセットアップ
Amazon Linuxと違い、CentOSにはAWS用コマンドラインツール(apitools類)がインストールされていません(yumでも提供されていないようです)。コマンドラインツールはEC2操作用、Route53操作用、ELB操作用・・・とAWSのサービスごとにツールが分かれています。その中から必要なものをインストールするわけですが、ツールによってRPMで提供されていたり、ZIPで提供されていたりとバラバラです。
そのため、EC2のインスタンス操作とAMIを操作するためのツールをインストールする手順をまとめたページが提供されているのですが・・・
「Cloud/AWS/AmazonCLI CentOS Wiki」
ザッと読んでみましたがパッケージがRPMとして提供されていないので、やはり手間がかかってしまいますね。ちょっと難易度が高い感じです。
CentOS AMIの注意事項
Wikiの「Image Builder Notes」に6つの注意事項が書かれています。
- EC2インスタンスに t1.micro を選べば、AWSの無料枠のおかげで無料でCentOS環境が使える。(新規にAWSアカウント作成してから1年以内の場合)
- OSには root でログインし、sshは秘密鍵認証によるログインのみが有効(つまりパスワードログインはできない)。
- ルート領域にはEBSが使われていて容量は8GB。
- selinuxが有効になっている(!)
- タイムゾーンは UTC になっている。
- 初回起動時にrootパスワードは自動生成され、ロックされる。つまり個々のマシンイメージで異なるrootパスワードになることが保証されている。
日本語環境
Wikiの「Know Issues」には「言語環境は英語しか含めていない」とあり、yumのupdateをするとエラーがでると書いてあります。
# yum update -y (中略) /usr/share/locale/ja/LC_MESSAGES/bash.mo: No such file or directory
このエラーは無視して良いと書いてありますので気にしないでおきましょう。また普段使う分には日本語ファイル名を扱えますし、dateコマンドでも日本語表記になっていました。
# touch 日本語.txt # ls -l *.txt -rw-r--r--. 1 root root 0 2013-08-16 02:32 日本語.txt # date 2013年 8月 16日 金曜日 02:33:03 UTC
まとめ
既存の環境をAWSへ移行するお客様からよく聞かれるのが「いまCentOSを使っているんですが、AmazonLinuxに変更して大丈夫ですか?」というご質問です。Amazon LinuxはほぼCentOSと同じと考えて良いと思います。AWSのツールが最初から入っていますし、Amazonのサポートも受けやすいですので特に理由がなければAmazon Linuxをオススメしています。
Amazon Linuxが使えない事情があるとすればCentOSにのみ提供されているリポジトリやRPMを使いたいという場合でしょうか。またお客様によっては、ローカルの開発環境と本番環境を厳密に一致させたいというご要望があり、その場合はCentOSを利用することもあります。
AWSはEC2だけでなく、周辺のサービスと組み合わせることで真価を発揮します。サービスを利用するためにはコマンドラインツールやSDKが必要になってきますが、環境構築に思わぬ手間がかかるかもしれません。その点を考慮の上CentOSを選択していただければ良いかと思います。今後AWSネイティブなCentOSの公式AMIや、CentOS用Amazonリポジトリがでてくると嬉しいですね!