図解即戦力 Amazon Web Servicesのしくみと技術が これ1冊でしっかりわかる教科書 [改訂2版]
Amazon.co.jp: 図解即戦力 Amazon Web Servicesのしくみと技術が これ1冊でしっかりわかる教科書 [改訂2版] eBook : 小笠原 種高: Kindleストア
https://amzn.asia/d/6lxtOAc
Photo by Parrish Freeman on Unsplash
1 . はじめに
2 . クラウドコンピューティングのしくみ
3 . サービス提供モデル
・SaaS(Software as a Service)
・PaaS(Platform as a Service)
・IaaS(Infrastructure as a Service)
4 . 各インフラ⽅式
・クラウド
・オンプレミス
・レンタルサーバー
5 . パブリッククラウドとプライベートクラウド
6 . クラウドを⽀える技術(仮想化 / 分散処理 など)
7 . スケーリングと冗⻑性の考え⽅
4 . 学び・気づき・今後の課題
・参考書籍
・参考記事
クラウドは今やITの当たり前のインフラになっており、これからインフラエンジニアを目指す自分にとって避けては通れない技術だと感じました。
実際に調べてみると、クラウドには柔軟性や拡張性といったオンプレミスにはない魅力がたくさんあります。
この学習記録では、クラウドの基本から主要サービスの違い、設計の考え方まで、自分なりに学んだことをまとめています。
クラウドは、インターネットを通じてサーバーやストレージなどのITリソースを、必要なときに必要な分だけ使える仕組みです。ユーザーは物理機器を持たずに、柔軟にサービスを利用できます。
この仕組みを支えているのが、仮想化や分散処理、スケーリング、冗長性といった技術です。これらにより、サービスの可用性や拡張性が確保されており、突然アクセスが集中しても安定して動作するようになっています。
【内容】アプリケーションまでを提供する
【メリット】すぐに使うことができるため、手間が少ない
【デメリット】便利である反⾯、⾃由度は低い
【代表例】Gmail、Notion、Slack
【内容】プラットフォームまでを提供する
【メリット】好きなアプリケーションを入れられる
【デメリット】サーバーを管理する知識が必要
【代表例】Heroku、 AWS Elastic Beanstalk、Amazon RDS
【内容】インフラのみを提供する
【メリット】柔軟性・自由度が圧倒的に高い / ベンダーロックインを避けやすい
【デメリット】使うにはセッティングやサーバーを管理する知識が必要 / アプリケーションを⽤意する必要がある
【代表例】Amazon EC2、S3、VPC
【内容】仮想サーバーをインターネット経由で利用
【メリット】スケーラブル、 従量課⾦制、迅速な導⼊
【デメリット】ネットワークへの依存、学習コストあり、ベンダーロックインのリスク
【内容】自社で機器を購入・設置・運用
【メリット】⾼い⾃由度とカスタマイズ性、セキュリティ確保
【デメリット】初期費⽤・運⽤負荷が⼤きい
【内容】他者が⽤意した共⽤サーバーを借りる形態
【メリット】⼿軽に利⽤開始、安価
【デメリット】操作制限が多く、他ユーザーの影響を受けやすい
クラウドには、パブリッククラウドとプライベートクラウドの 2 種類があります。パブリッククラウドは、AWS のように外部事業者が提供するサービスで、誰でも利⽤可能です。⼀⽅、プライベートクラウドは、⾃社内に専⽤のクラウド環境を構築・運⽤する形態です。
このように、オンプレミスとクラウドは完全に対⽐する⾔葉ではなく、プライベートクラウドはオンプレミス環境の⼀形態と位置づけられます。
まず「仮想化」とは、コンピューターに必要な物理的な CPU、メモリ、ストレージなどのリソースを、ソフトウェアによって仮想的に再現・管理する技術です。 仮想化によって、 物理マシン上に複数の仮想マシンを作成することが可能になり、柔軟な構成変更やリソースの有効活⽤が実現します。
AWS のようなクラウドサービスでは、我々はその辺りを意識せず、仮想化されたものだけを使⽤できます。その結果、システムの構築・削除・変更が柔軟に⾏えるようになり、⾃由度が⼤きく変わります 。
また、 「分散処理」 とは、 処理やデータを複数のノード(コンピューター) に分散させて並⾏して実⾏する仕組みです。これにより、⼤量のデータを⾼速かつ安定的に処理することが可能になります。
物理マシンで分散処理を⾏う場合、処理する台数分のサーバーを⽤意する必要があり、使⽤しない時間帯にはリソースが無駄になる可能性があります。 ⼀⽅で、 仮想マシンを活⽤すれば、 必要に応じてリソースを柔軟に増減できるため、分散処理を効率的に⾏うことができます。
このような技術が、クラウドの信頼性と拡張性を⽀える重要な基盤となっています。
クラウドの特徴の⼀つに、システムを必要に応じて拡張・縮⼩できる柔軟性があります。これを可能にしているのが「スケーリング」という仕組みです。スケーリングとは、システムの規模(スケール)を調整することを指し、多くの場合、対象となるのはサーバーのマシンやストレージです。
スケーリングには 2 種類の⽅法があります。1 つは、マシンやストレージの性能や容量を変更する⽅法(垂直スケーリング)、もう 1 つは、マシンやストレージの数を増減させる⽅法(⽔平スケーリング)です。
また、「冗⻑性」とは、システムに障害やトラブルが発⽣してもサービスを⽌めないために、同じ機能を持つ構成を複数⽤意しておく考え⽅です。これは、 万が⼀に備えてデータやシステムをバックアップしておくことと似ていますが、バックアップよりも即時の切り替えや継続稼働を⽬的としています。
クラウドについて学ぶ中で、最初は「とにかく便利なもの」という漠然としたイメージしか持っていませんでしたが、実際には多くの技術や考え方が組み合わさって成り立っていることを知り、より一層興味が深まりました。特に、仮想化や分散処理、スケーリングといった仕組みがサービスの裏側でどのように機能しているのかを理解することで、「クラウドがなぜここまで広がったのか」が少しずつ見えてきた気がします。
また、SaaS・PaaS・IaaSの違いや、それぞれの活用シーンを知ったことで、自分がこれから関わるプロジェクトや職種によって、必要とされる知識や判断基準も変わってくるという実感も得ました。とくにIaaSは自由度が高い反面、しっかりとした設計や運用の知識が求められるため、今後さらに深掘りしていきたいと感じています。
今後の課題としては、ただ仕組みを「知る」だけでなく、実際にクラウドサービスを使って小さな構成を作ってみるなど、実践的な経験を通じて理解を深めることが必要だと感じています。たとえば、AWSでEC2を立ててみたり、TerraformなどのIaCツールを使ってみることにも挑戦していきたいです。