クラウドエンジニアの教科書でクラウドに入門してみました!
クラウドエンジニアの教科書の中で僕が今課題感として持っている部分をピックアップしてまとめていこうと思います。
データパイプラインの構築、機械学習システムの運用保守(見習い)などを経験してきましたが、IAMやセキュリティ、IaCについてはチーム内の頼れるメンバーに教えていただきながら、作業を行ってきました。
今回はクラウドについての知識の底上げをし、IAMやIaCについても深堀りしながら学び、チームメンバーに任せていた部分の理解を深めていこうと思います。
上記のような課題感からまずはクラウドの概要から抑えていきます。
おそらく、普段業務で使用しているクラウドについて理解を深めることで業務がより楽しくなると思ってます!それではよろしくお願いします!!
クラウドの概要
クラウドとは物理サーバーやデータセンターなどの管理をクラウドベンダーに任せてコンピュターリソースをインターネット経由で利用できるようにした形態。一般的には「インターネット経由で提供されるコンピューター資源を利用すること」と定義されています。
クラウドは3種類に分類されます。
- IaaS
- システムインフラをサービスとして提供
- PaaS
- アプリケーション実行環境をサービスとして提供
- SaaS
- アプリケーションをインターネットを通してサービスとして提供
クラウドの勢力図
下記記事によると、2023年末時点でのクラウドのシェア率はAWS, Azure, GoogleCloudの順になっており、3つのクラウドで約67%になっているようです。
クラウドならではの考え方
よくクラウドと比較されるオンプレミスの構成や設計思想と異なる点であり、クラウドならではの考え方として4つ挙げられていました。
- フェイルセーフの設計思想
- 頻繁に作り直しや入れ替えを行う
- リソースの動的増減を活用する
- クラウドの各種サービスを活用する
クラウドの学び方
各クラウドベンダーによってサービス名が統一されていなかったり、サービスが膨大に増えていく中でどうクラウドの学習を進めていくのがよいのでしょうか。
特に僕のようにクラウドエンジニアやインフラエンジニアではないが、業務でクラウドを日常的に扱うような場合、学習に割り当てられる時間も少ないと思います。
- クラウドの世界観を抑える
- 認定資格を取得する
- 実際に試してみる
- 自習と業務とのギャップを埋める
- 必要なサービスの学習のみ行う
マルチクラウド構成
複数のクラウドを組み合わせて使う使い方をマルチクラウドといいます。この構成を採用する目的の一つに可用性の向上が挙げられます。
複数のクラウドベンダークラウド上に同じ構成を展開することでどちらか一方に障害が起きてもサービスが止まらない冗長構成を実現できます。
単一のクラウドベンダーによる大規模障害によるサービス影響を回避するためにマルチクラウド構成の利用を考えたときの、理論上の可用性を計算してみます。
前提:2つのクラウドベンダーの利用、可用性がそれぞれ99.5%
1 - (1 - 0.995) × (1 - 0.995) = 0.999975
上記のように単一のクラウドベンダーを利用する場合の可用性99.5%に対して、マルチクラウド構成にすることで99.9975%まで可用性が向上することがわかりました。
クラウドの大規模障害
個人的には複数リージョンにインフラを分散させれば問題ないように感じましたが、クラウドベンダー側の障害でクラウド全体が使えなくなるリスクもあるようです。
クラウドの大規模障害について書籍内で取り上げられているものは以下のとおりです。
- AWS: Direct Connectの障害で東京リージョン全域での接続障害
- Azure: DNS障害でAzure全域で利用できない事象
- GCP: 認証周りの障害で各種サービスが利用できない事象
クラウドベンダー側で提示されているSLAの可用性より実際の可用性が低くなると考えて設計する必要があり、ロバストなシステムにしようとするとマルチクラウド構成が候補になってくるのですね、、
まとめ
今回は「クラウドエンジニアの教科書」でクラウドについて入門し、自分の気になるトピックについてまとめてみました。
特にIAMやネットワーク構成が各クラウドベンダーで異なる点が改めて面白いと感じました。
Discussion