APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【初心者向け】クラウドネイティブとは?

はじめに

こんにちは、ACS事業部の小原です。
みなさんはクラウドネイティブという言葉を聞いたことがありますか?
未経験でITインフラ業界に入り、現在はありがたいことにクラウドネイティブを身近に感じる環境に身を置いています。
入社前はAzureのあの字も知らなかった私が、ようやくクラウドネイティブな領域に足を踏み入れたので、
あの頃の自分へ向けて書いてみました。

クラウドネイティブとは?

まずは概念についておさえましょう。
クラウドネイティブとは、一言で表すと、アプリケーションを作成、運用するための新しいアプローチのことです。
これは、パブリッククラウド(AzureやAWS、GCPなど)、プライベートクラウド、あるいはその両者の組み合わせ(ハイブリッドクラウド)など、近代的で変化が激しい環境においてもうまく機能します。
このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、宣言型APIがあります。
これらを使うことにより、システムは頑強になり、エラーからの回復や変更の管理、システムの状況の把握(可観測性)が容易になります。また、エンジニアは重要な変更を「少ない手間で、頻繁に、予測通りに」行うことができます。

実は、上の文章はCloud Native Computing Foundation(以下CNCFと記載)という組織のクラウドネイティブの定義をもとにしています。
CNCFは、このような新しいアプローチをもっと広めるために、特定のベンダーに依存しないオープンソース(OSS)のプロジェクトを支援しています。ありがたいことに、誰でも新しい技術の恩恵を受けられるようになるのです。

クラウドコンピューティングとの違い

クラウドコンピューティングは、単にハードウェアやストレージなどのリソースをオンプレ(実機)ではなく、インターネット経由で提供するサービスを指します。
ユーザーが自分自身で物理的なインフラを保持・管理する必要がなく、必要なものを必要なだけ利用できます。

一方クラウドネイティブは、クラウドの特性を最大限に生かしたクラウドコンピューティングの環境で、最高のパフォーマンスを発揮できるようなアプリの設計と運用のベストプラクティスを定義します。

具体的なアプローチについて

これだけでは、「じゃあ実際どんな事してるの?」という点が不明瞭なので、いくつか例として紹介します。

コンテナ化

Dockerをはじめとするツールを用いて、仮想的な環境をOS上に作って動作させる仮想化技術です。
従来のVirtual Machineとは違い、ほかのアプリケーションへの影響を気にすることなくアプリの開発・実行が可能になります。
宣伝ではないですが、この本にはとてもお世話になりました。

www.amazon.co.jp

www.docker.com

有志が日本語で作成しているドキュメントもあります。 docs.docker.jp

マイクロサービス

マイクロサービスで構築されているサービスはLINEやAmazonなどが代表例です。
AmazonのようなECサイトを例にします。決済やユーザー管理、商品のデータベースなどたくさんの機能がありますが、
これらの機能が独立しながら、組み合わさってAmazonという大きなサービスを構成しています。
従来のモノリシック(ここでは割愛)な構築と比べ、障害がおこったときの影響が他に波及しにくい点や開発・改修を素早く行える点がメリットです。しかし、小さなサービスがたくさんあることで複雑な構成になってしまうデメリットもあります。

サービスメッシュ

マイクロサービスのデメリットを解決するために欠かせないのがサービスメッシュです。これはマイクロサービスの各サービスがお互いにどのように通信するかを管理する仕組みです。通信の安全性や速度等を確保し、開発者がそれぞれの小さなプログラムの作成に専念できるようにします。OSSのIstioが代表的ですね。

istio.io

宣言型API

コンテナオーケストレーションツールであるKubernetesなど使用されています。
ざっくり言うと、具体的な命令を与えるのではなく、「あるべき姿」を指示しています。
従来の命令型APIでは、不具合が起きればそれを解決するコマンドを実行したりして直すのですが、宣言型は「あるべき姿」を指示しているので不具合があれば自律的に不具合から立ち直ってくれます。

kubernetes.io

おわりに

ここまで紹介したツールや機能、メリットデメリットはほんの一部です。
私自身も触ったことがないものをあげるとキリがないくらいたくさんのものが存在しています。
OSSである点も有効活用して、今後は色々触りつつ皆さんに紹介できればと思います!


私達ACS事業部はAzure・AKSなどのクラウドネイティブ技術を活用した内製化のご支援をしております。ご相談等ありましたらぜひご連絡ください。

www.ap-com.co.jp

また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp

本記事の投稿者: 小原陽希