AWS 環境で、CoreOS Container Linux (Stable Channel)の最新版が利用出来るか確認してみた

2017.04.27

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

CoreOS とは?

CoreOS Container Linux とは、運用に掛かるオーバーヘッドを最小限にしかつ 大規模な環境で運用されることを想定しデザインされた主要なコンテナー Operating System です。

詳細については、以下をご参照ください。

はじめに

まずは結論から、2017/4/27 現在 AMI の最新版を利用した環境は CoreOS Container Linux (Stable Channel)の最新版が利用可能です。

以下に背景と、検証結果を示します。 筆者は以前、自前のコンテナーアプリケーション(GitLab)を運用するために KVM Guest 環境で CoreOS を運用していました。 個人で利用するクリティカルでは無いサービスでしたが、アプリケーションの更新と合わせて インフラ側(Linux Geust OS)も定期的に更新しないといけないため、少しでも楽をすべく CoreOS を利用しておりました。

今回は、CoreOS on AWS ということで、AWS 上でも CoreOS(Stable Channel) が 利用出来ることを確認してみます。 アジアパシフィック (東京)リージョンで、HVM(Hardware-assisted VM)が利用できる AMI の最新版は、2017/4/27 現在 ami-8284aee5 のようです。

CoreOS-AMI

詳細については、以下をご参照ください。

CoreOS のリリースノートを確認する限り、各コンポーネントのバージョンは 以下のとおりです。

  • kernel : 4.9.24
  • rkt : 1.25.0
  • docker : 1.12.6

詳細については、以下のリリースノートを参照ください。

起動確認

では、実際に起動して確認してみましょう。

デフォルト設定の場合、ssh で接続するユーザ名は "core" を指定します。

Container Linux by CoreOS stable (1353.7.0)
core@ip-172-31-30-187 ~ $ cat /etc/os-release 
NAME="Container Linux by CoreOS"
ID=coreos
VERSION=1353.7.0
VERSION_ID=1353.7.0
BUILD_ID=2017-04-26-2154
PRETTY_NAME="Container Linux by CoreOS 1353.7.0 (Ladybug)"
ANSI_COLOR="38;5;75"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://issues.coreos.com"
core@ip-172-31-30-187 ~ $ uname -a
Linux ip-172-31-30-187.ap-northeast-1.compute.internal 4.9.24-coreos #1 SMP Wed Apr 26 21:44:23 UTC 2017 x86_64 Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz GenuineIntel GNU/Linux
core@ip-172-31-30-187 ~ $ docker -v
Docker version 1.12.6, build d5236f0
core@ip-172-31-30-187 ~ $ rkt version
rkt Version: 1.25.0
appc Version: 0.8.10
Go Version: go1.7.5
Go OS/Arch: linux/amd64
Features: -TPM +SDJOURNAL
core@ip-172-31-30-187 ~ $

確かに、リリースノートに記載されたとおりの 環境構成でした。

さいごに

今回は、CoreOS を EC2 インスタンスとして1台のみを起動し 起動の確認を実施しただけですが、クラスタ環境を構成しコンテナを運用しないと CoreOS の魅力は発揮されないものと思われます。

CoreOS のドキュメントを参照していると、kube-aws CLI というツールが提供されており、 AWS CloudFormation を利用して AWS へのクラスタ展開を自動化しているとのこと このツールを利用すると、Kubernetes が自動的にサービス毎の ELB をプロビジョニング出来るようです。

詳細については、以下のドキュメントを参照してください。

次回は、kube-aws を利用した Kubernetes 環境の構築を試してみたいと思います。

ではでは