2022年,AWSを図解で学ぼう~最短1日で基礎が身に付く(図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書 連動企画)

第4回 コンテナを学ぶ1日~クラウドネイティブにしないと,そのAWS生きませんよ。さぁ,コンテナを学ぼう

この記事を読むのに必要な時間:およそ 2 分

前回は,Amazon EC2を扱いました。

「AWSと言えばEC2!」と言っても過言ではない有名なサービスですが,最近では,EC2をそのまま使うことは減ってきています。キーワードはクラウドネイティブ(クラウドを前提とした考え方⁠⁠。第4回では,クラウドの良さを活かす考え方とコンテナ関連のサービス(AmazonECS,AmazonEKS,AWS Fargate)について解説します。

クラウドネイティブな設計とマネージドサービス

クラウドを導入する場合,現在使っているサーバ構成をそのままクラウドに持って行こうと考えがちです。しかし,このような考え方では,クラウドの良さを活かすことはできません。

クラウドの良さとは,一言で表すならば「身軽さと手離れの良さ」です。

いつでも,どこからでも,サーバを操作することができて,使うも使わないも,ボタン一つで構築できます。サーバの規模も,増減が自在で,変更も容易です。大変身軽な存在です。

また,マネージドサービス(AWSが自動で管理するサービスの総称)ならば,よく使われるソフトウェアのアップデートやスケーリング(サーバーの台数を変更すること)を自動でやってくれたり,各種監視サービスも充実していたりするので,手離れも良いです。

こうした特徴を活かすには,⁠それ前提の設計」でなければなりません。

たとえば,ソフトウェアのアップデートを自動でやってくれるのに,アップデートされたら困るようなシステムの作り方では,その機能を使うわけにはいかないでしょう。AWSがスケーリングに対応しているのに,自分の作った構成が,対応していなければ,豚に真珠です。

そもそも,クラウド向きのシステムではないケースもあります,⁠サーバの規模を自在に変えられる」ことがメリットだとしても,サーバ使用量がほとんど変わらないシステムならば,⁠使う意味がある」とは言いがたいのではないでしょうか。

「なんとなく,格好いいから」⁠時代はクラウドだから」と,安易にクラウドを検討する人も居ますが,サーバの料金は,そのプロジェクトのランニングコストに大きく関わります。⁠クラウドが必要ならば使い,使うならばクラウドを前提とした設計する」と考えることが肝要です。

画像

クラウドを活かすコンテナサービスECS

クラウドは,コンテナと組み合わせると,より一層,強みを発揮します。

コンテナというとわかりづらいかもしれませんが,Dockerというと,聞いたことがあるのではないでしょうか。Dockerは,Docker社の提供する「パソコンやサーバ上に隔離したプログラムの実行環境を作れる仕組み」であり,その隔離したゾーンを「コンテナ(container⁠⁠」と言います。

EC2では,マーケットプレイスから,AMIを入手して,インスタンスを作りましたが,Dockerの場合も似たような仕組みです。Docker HUBと呼ばれるところから,イメージを入手して,それを金型として,コンテナを作成します。

AWSでもコンテナを使えるサービスを提供しており,それが,Amazon Elastic Container Service (Amazon ECS)です。ECSでは,ECR(Amazon EC2 Container Registry)からイメージを入手し,コンテナを作成します。

ただ,注意したいのが,コンテナを実行する場所(作る場所)は,ECSではなく,EC2やAWS Fargate(ファーゲート)であるということです。ECS単体では,使えません。

 コンテナによって実行環境を隔離する

図 コンテナによって実行環境を隔離する(図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書 より引用)

Kubernetes互換のEKS

コンテナといえば,Kubernetes(クーベネティス)を使いたいという方もいらっしゃるでしょう。

Kubernetesは,K8Sとも略すコンテナのオーケストレーションソフトです。複数のサーバにまたがるよな大規模システムにおいて,コンテナを自動で管理するのに便利なソフトウェアです。

AWSにも,Amazon Elastic Kubernetes Service(EKS)という互換のサービスがあります。こちらも,ECSと同じで,コンテナはEC2やFargateに作ります。

コンテナを作る場所はEC2やFargete

コンテナを作る場所はEC2やFargete(図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書 より引用)

マネージドという考え方

冒頭で,⁠最近では,EC2をそのまま使うことは減ってきています」と書きましたが,これはどういうことかというと,EC2はマネージドサービスではありません。アンマネージドサービス(AWSが自動で管理しないサービス)です。

つまり,自分で管理するサービスなのです。そうすると,クラウドの良さの1つである「手離れの良さ」が活かしきれません。

そのため,最近では,EC2をそのまま使うのではなく,マネージドのサービスと組み合わせ,⁠いかに,自動でサーバを運用していくか」を考えた設計にする傾向にあります。その代表的なサービスの一つが,ECSやEKSといったコンテナサービスです。

また,コンテナを作る場所も,EC2とFargateの2つを紹介していますが,EC2がアンマネージドサービスであるのに対し,Fargateはマネージドサービスであるため,自分でインスタンスを管理する必要がありません。コンテナで何か実行するには,コンテナ自体を動かすための実行エンジンや,その実行エンジンを動かすためのOSなどをインスタンスにインストールしておく必要があるのですが,Fargateなら,そうしたこともAWSがやってくれるので,我々は「ヨロシク!」と任せればいいのです。

画像

今回は,AWSのお話なので,AWSを使うことを前提で解説をしていますが,プロジェクトによって求められるインフラはさまざまです。AWSが向いている場合もあれば,そうでないこともあるでしょう。

しかし,⁠手離れの良さ」は,人手不足のIT業界において,AWSと関係なく取り入れていくべき考え方です。AWSをきっかけに,こうした思想も触れていくとよりスムーズにシステムを構築できるようになるでしょう。

文中の図は図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書より引用しております。おかげさまで発売後わずか2年ですが,10刷を迎える大ヒットとなりました。

この連載は,その10刷記念として企画されたものです。書籍のほうもよろしくお願いしますね!

著者プロフィール

小笠原種高(おがさわらしげたか)

愛称はニャゴロウ陛下。同人はモウフカブール。

パソコンで遊んでるように見えて仕事してると見せかける仕事。サーバとか,DBの本を書いていると言う噂と,毎日昼寝しているという噂があります。

著書:
『仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん』(マイナビ出版)
『図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書』(技術評論社)

Twitter:@shigetaka256