AMBL株式会社 Security LABの技術顧問をしている松本亮介と申します。
SNSなどではまつもとりーという名前で活動しています。前回も簡単にご紹介しましたが、Security LABは2021年の10月に設立されたチームで、設立の経緯や活動については、「FinTech・金融業界のセキュリティ知識の普及とセキュリティ投資の適正化を目指すSecurity LABを設立」という記事や、「Security LAB設立の背景セキュリティには翻訳が必要だ!」でも紹介されていますので、改めてそちらもご覧いただけると幸いです。
さて本連載では、「大規模クラウドやWebホスティングサービスから学ぶ実践的なLinuxのセキュリティと仮想化技術」というタイトルで、Linuxのセキュリティやリソース制御、パフォーマンス、運用技術について解説していきます。
前回は連載の第2回として、この連載で具体的にどのような話題について解説していくかを紹介しつつ、筆者の自己紹介を兼ねて専門領域の取り組みも紹介しました。連載の話題と筆者のバックグラウンドを知ることで、より安心して連載を通読頂けるようになると考えたからです。
第3回の本記事では、Linuxのセキュリティや仮想化技術、それらに関する運用技術やリソース管理、パフォーマンスを学ぶために、「1. Webサーバのセキュリティと運用技術の背景」について、クラウド・Webホスティング技術のセキュリティと運用技術の歴史的背景に基づいてご説明します。
■クラウドサービスとWebホスティングサービスの背景
20年以上前にWebホスティングサービスが提供され始め、その流れの中で、約15年前からクラウドサービスが普及し始めました。Amazonは2004年にAmazon Simple Queue Service(SQS)を開始し、Googleは2011年にクラウドコンピューティングサービスを一般公開しました。その後、クラウドサービスやWebホスティングサービスの個人利用も始まり、レンタルサーバをはじめとしたWebホスティングサービスの低価格化と品質の競争が始まりました。
サービスの自由度の高さと利用者のITリテラシーの高まりにより、ホスティングサービスより自由度の高いクラウドサービスの普及が更に加速しました。一方で、自由度の高さゆえに、OSやライブラリ、アプリケーション等のバージョン管理等、個人での運用保守が追いつかないこともあり、脆弱性が顕在化したソフトウェアをきっかけとして、セキュリティインシデントに繋がりはじめました。
そのような背景の中、クラウド・Webホスティング事業者としては、個人が使えて、かつ、セキュリティも担保できるように、さらなるサービスの低価格化と品質向上の競争が始まります。システムの基盤技術や運用技術の研究開発、安定化と、自由度がありつつ利用者に手間をかけないサービスを提供することの両立が目標となっていました。
さらなるWebサーバの高集積マルチテナント方式に注目が集まります。「高集積マルチテナント方式」とは、Webサービスのハードウェアコストや運用管理コストを低減するために、複数のユーザを同じサーバーに同居させる仕組みです。
この方式は、当然ながらセキュリティを担保しながらホストの収容効率を高めることが重要になります。その上で、低価格化とホスト運用代行を実現して、安定性のあるサービスを目指す必要があります。その代表的なサービスとしてGMOペパボ株式会社のロリポップが挙げられます。
(ロリポップについてはこんな記事を書いています。「セキュリティと性能要件を同時に満たすWebサーバホスティング技術の最新動向 」
Webサーバの高集積マルチテナント方式は以下の博士論文で定義されています。
松本亮介,Web サーバの高集積マルチテナントアーキテ クチャに関する研究,博士学位論文(京都大学:2017年5月).
■Webホスティングサービスの概要と方向性
Webホスティングサービスは、日本国内では「レンタルサーバー」と呼ばれたりしていますが、クラウドサービスが世に現れる前後のこの20年の間に、多くのWebビジネスを支えてきました。Webビジネスを展開する企業(ホスト)は、レンタルサーバーにWebコンテンツを配置するだけでインターネット上に様々なコンテンツを配信できて、コンテンツ以外は全てレンタルサーバー事業者が面倒を見てくれる大変便利なサービスとして、インターネットの一つの歴史を築きました。
Webホスティングサービスは、利用者がWebアプリケーションを始めとするWebコンテンツを各ユーザ領域に自由に配置できます。基本的にホスティングサービス事業者は、お客様が配置したWebコンテンツを操作することはできないため、OSやミドルウェアの基盤技術によって、サービス環境の安定性やセキュリティを維持する必要があり、OSに近い基盤技術の理解が求められます。
例えば、マルチテナント環境のように、単一のOS上に複数のホストを仮想的に収容する環境においては、OSレベルでのセキュリティの担保が必要になります。また、特徴として、クラウドサービスにおけるOSレベルでホストを提供する環境と比較すると、Webコンテンツ以外は事業者側で保守・運用を行うため、利用者の自由度は低くなります。
さらに、クラウドサービスとホスティングサービスの良いところを両立する「マネージド・サービス」と呼ばれるサービスもリリースされており、豊富なミドルウェアや言語の選択ができたり、リソースを自動的にスケーリングさせるような機能もあります。
■Webホスティングサービスから学ぶ技術は面白い
さて、本連載ではWebホスティングサービスの仕組みを題材に、セキュリティやパフォーマンス、運用技術等について学んでいきます。それはなぜか?単純に、Webホスティングサービスから学ぶ技術は面白いと思っているからです。
前述の通り、Webホスティング事業者はコンテンツを直接触る事ができません。そのためWebホスティングサービス事業者のノウハウには、ホストのセキュリティや安定性を維持するために、ミドルウェアやOSレイヤー、あるいはシステム設計やハードウェアをいかに管理するかといった要素技術と、いかにも人間らしい取り組みの苦悩が詰まっています。私はそれを技術的な背景や要素技術から読者の皆様に伝えたいと思っています。
以降は、クラウドサービスや自由度の高いIaaS(Infrastructure as a Service)において、本来必要な運用技術やセキュリティ技術をサービスとして提供しているWebホスティングサービスのアーキテクチャを軸に、実践的なセキュリティと仮想化技術、リソース管理や運用技術について述べます。
クラウドサービスよりもOSやミドルウェアのソフトウェア開発・運用に近いホスティングサービスの技術を詳細に知ることで、普遍的に活用できる体系的な知識を実践的な技術情報から習得できるようにします。得に、Webサーバのマルチテナント方式に着目して、関連技術について述べていきます。
■Webサーバの高集積マルチテナント方式に関する知識
高集積マルチテナント方式の信頼性で重要なポイントとして、「セキュリティ」、「リソース分離」、「運用技術の改善」、「大量のドメインの扱い」が挙げられます。
- セキュリティ
運用が困難になっても、性能が低下しすぎてもいけません - リソース管理
テナント間でリソース干渉によって低パフォーマンスや不安定性などユーザ体験が低下してはいけません - 運用技術
リソース干渉の運用コストが高まり、結果的にシステム全体のコストが高くなってはいけません
- 大量のドメインの扱い
ミドルウェアの平易な拡張や大量のTLS証明書やドメイン管理などが重要
このようにWebサーバの高集積マルチテナント方式に関する技術は、プロセスのセキュリティや性能、リソース管理や運用技術の宝庫です。
Webホスティングサービスというユースケースに基づいて、これらを紐解いていくことで、OSやミドルウェア、システムプログラミングの知識がついたり、Webアプリケーションよりも比較的低レイヤーの知識が習得できます。また、システムコールの観点で、性能の評価やチューニングを行うことについても知ることができるため、実践的な観点からLinuxのセキュリティや運用技術、仮想化技術を学ぶのに都合の良い題材と言えます。
■まとめ
本連載の第3回は、Linuxのセキュリティや仮想化技術、それらに関する運用技術やリソース管理、パフォーマンスを学ぶための題材となる、クラウド・ホスティングサービスに関する背景や高集積マルチテナント方式の概要についてご説明しました。
今後連載で取り上げる内容は以下の通りです。今回は1の内容について言及しました。
連載を通じてLinuxの要素技術やセキュリティを学ぶとともに、ご不明な点があればお気軽にTwitterの @matsumotory にご連絡頂いて、関連する技術や知見の意見交換ができれば幸いです。
次回は、「2.WebサーバとWebホスティングシステムの基礎知識」と、「3.セキュリティとリソース分離」、運用技術の概要にもう少しふれていきたいと思います。
このエントリで興味を持っていただいた方は、ぜひ次回以降もご覧いただけると幸いです。
■Security LAB情報提供ホワイトペーパー第1弾
「システムのフェーズ別リスク項目と効果的な対策案」
以下のURLから無償でダウンロードしていただけます。
URL:https://balconia.co.jp/service/securitylab/download/
あなたもAMBLで働いてみませんか?
AMBLは事業拡大に伴い、一緒に働く仲間を通年で募集しています。
データサイエンティスト、Webアプリケーションエンジニア、AWSエンジニア、ITコンサルタント、サービス運用エンジニアなどさまざまな職種とポジションで、自分の色を出してくださる方をお待ちしています。ご興味のある方は、採用サイトもご覧ください。
●AMBL採用ページ
-メンバーインタビュー (1日の仕事の流れ/やりがい/仕事内容)
-プロジェクトストーリー (プロジェクトでの実績/苦労エピソード)
●募集ページ
プリセールス/ エンジニア/ クリエイター/ データサイエンティスト /営業・コンサルタント /コーポレート /サービス企画 /教育担当