AWSについて学びたい!
業務では切っても離せない関係にあるAWS。何気なく使っていますが、結局のところベースの知識がないため、言われたことを淡々とすることしかできていません。
そんな状態から脱却し、強強エンジニアを目指すためにも、AWSの学習が必須だと思い、記事を残すことにしました。間違ったことも多く言っているかもしれませんがその際は指摘していただければと思います。
クラウド (クラウドサービス) とは?
クラウドサービスの基本的な仕組み
インターネット経由でコンピューティング、データベース、ストレージ、アプリケーションをはじめとした、さまざまなITリソースを必要なときにリアルタイムで利用することができるサービス。利用料金は実際に使った分のお支払いのみと行った従量課金が一般的。
導入のメリット
固定の焼却コストが変動コストになる
データセンターやサーバーに多額の投資を行う必要があるが、クラウドサービスを利用することで、リソースを使用した時に使用した分だけ支払うことができる。
スケールによる大きなコストメリット
多くのユーザーがクラウドサービスを利用することで自社環境よりも低い変動コストを実現することができる。
キャパシティ予想が不要に
必要に応じてリソースを増減させることができるので、インフラ容量を予想する必要がなくなる。
また、リソースの増減も数分で行うことができるため、機能制限という問題が発生する心配がない。
速度と迅速性の向上
分単位の短い時間でITリソースを利用することが可能になるため、検証や開発にかかるコストと時間を大幅に減らすことができる。
データセンターの運用保守投資が不要
サーバの設置、連携、起動といった重労働が不要になり、プロジェクトに専念できる。
わずか数分で世界中にデプロイ
数回のクリックでアプリケーションを容易に世界に展開できる。また、シンプルな操作と最小のコストで、送信による遅延を抑え、より良い顧客体験を提供できる。
代表的なクラウドのタイプ
Infrastructure as a Service (IaaS)
サーバー、仮想または専用ハードウェアー、データストレージ領域へのアクセスを提供するもの。
ITリソースに柔軟性と管理統制がもたらされると同時に、現在の多くのIT部門や開発者にとって馴染み深い既存のITリソースに類似するシステムを利用できる。
Platform as a Service (PaaS)
基板となるインフラストラクチャ(ハードウェアやオペレーティングシステム)を組織内で管理する必要がなくなり、アプリケーションのデプロイと管理に集中することができる。リソースの調達、容量計画、ソフトウェアメンテナンス、パッチの適用、またはアプリケーションの実行に関連するその他のわずらわしい作業について心配する必要がなくなる。
SaaS (Software as a Service)
サービスプロバイダーが実行および管理している完成した製品を利用できる。サービスのメンテナンスや基盤となるインフラストラクチャの管理をどのように行うかを考える必要がなくなり、特定のソフトウェアを使用する方法を考えるだけでよくなる。
クラウドのデプロイモデル
クラウド
アプリケーションを完全にクラウド上でデプロイされており、アプリケーション全体がクラウド上で実行される。また、クラウドコンピューティングのメリットを受けることができたり、クラウドネイティブアーキテクチャを採用することもできる。
クラウドネイティブとは、CNCF(Cloud Native Computing Foundation)によってこのように定義されいるアーキテクチャのこと。
「クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 代表例として、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言型 API があり、
回復性、管理力、および可観測性のある疎結合システムが実現します。 また、これらを自動化することで、インパクトのある変更を簡単に行うことができます。」
ハイブリッド
クラウドベースのリソースと、クラウド上にない既存のリソースとの間でインフラストラクチャとアプリケーションを接続する方法。
一般的な方法として、クラウドのリソースをオンプレミスのインフラストラクチャと接続することでインフラストラクチャを拡張することができる。
オンプレミス(プライベートクラウド)
リソースをオンプレミスでデプロイすることや、仮想化およびリソース管理のツールを使用する。クラウドコンピューティングのメリットを利用できない分、専用のリソースを提供することが可能。
特徴 | オンプレミス | クラウド |
---|---|---|
コントロール | 自社で全てを管理、完全なコントロールが可能 | 外部プロバイダーに一部を委託 |
初期コスト | 高額(ハードウェア購入、設備投資) | 低コスト(リソースはオンデマンドで利用) |
スケーラビリティ | 拡張が難しく、時間がかかる | 動的にスケーリングが可能、即座にリソースを追加可能 |
セキュリティ | 社内で物理的な管理ができ、外部依存がない | プロバイダーによる高度なセキュリティ対策が標準提供 |
維持管理コスト | 高い(ハードウェア保守、アップグレード、人件費) | 比較的低い(プロバイダーが保守管理を担当) |
災害対策 | 自社で計画・実行が必要 | クラウドプロバイダーが多くの冗長化とバックアップを提供 |
カスタマイズ性 | 自由にカスタマイズが可能 | 一部制約あり |