対象閲覧者はこんな方
・開発始めたけど、右も左もわからない方
・それぞれの棲み分けがわからない人
大体のシステムの構成はこれ!!
1. フロントエンド
技術例: HTML, CSS, JavaScript(React, Vue, Angularなどのフレームワーク)
概要: フロントエンドは、ユーザーが直接操作・閲覧する部分、「クライアントサイド」のこと。
具体的には、ウェブブラウザ(chromeとか、safariやら)で表示されるUI(ユーザーインターフェース)や、アプリの操作画面が該当します。
バックエンドとの関係: フロントエンドは、クライアント側(ブラウザやモバイルなど)で動作します。バックエンドに指示を要求したり、バックエンド(サーバー)からデータを受け取り、画面に表示する部分。
2. バックエンド
技術例: Node.js, Python (Django, Flask), Ruby on Rails, PHP, Java (Spring), データベース(MySQL, PostgreSQL)
概要: バックエンドは、フロントエンドの裏で動作する「サーバーサイド」の部分。
ここではデータの処理や保存、外部サービスとの連携が行われます。
ユーザーが直接操作することはありませんが、ユーザーの要求に応じてサーバー内でデータを処理し、フロントエンドに結果を返します。
サーバーとの関係: バックエンドはサーバー上で動作します。WebアプリやAPIはバックエンドサーバーでホストされ、データベースと通信し、ビジネスロジックを処理します。
APIって何?
APIとは、違うソフトウェア間が互いにやり取りするためのインターフェース(接点)のことだよ。
APIを使うことで、アプリケーションやサービスが他のプログラムやシステムの機能を利用したり、データのやり取りを簡単に行うことができるんだよ!
3. インフラ
技術例: AWS, GCP, Azure, Docker, Kubernetes, サーバーレスアーキテクチャ、CDN(Content Delivery Network)
概要: インフラは、アプリケーション全体を支える基盤のことです。
物理的または仮想的なサーバー、ネットワーク、ストレージ、クラウドサービスなどが含まれます。インフラはバックエンドとフロントエンドが適切に動作するために必要なリソースを提供します。
サーバーとの関係: インフラは、実際にサーバーを構築・運用する部分を含んでいます。物理サーバーやクラウドサーバー(AWS, GCP, Azureなど)を管理し、アプリケーションが稼働するための基盤を提供します。
クラウドとオンプレ
クラウドとインフラは、どちらもインフラストラクチャを構築するための手段です。
簡単に言えば、インフラの管理を外部にしてもらうか、自分で行うかの違いで極端に言えばどちらも一緒です。
1. クラウド(Cloud)とは?
クラウドは、インターネットを通じてリモートサーバー上でITリソース(サーバー、ストレージ、データベース、アプリケーションなど)を利用するモデルです。
クラウドサービスプロバイダー(例:AWS、Google Cloud、Microsoft Azure)から必要なリソースを「サービス」として利用します。
クラウドの特徴:
- リソースの外部管理: 物理的なサーバーやインフラはクラウドプロバイダーが管理し、ユーザーはこれらを利用するだけ。
- 柔軟性とスケーラビリティ: 必要に応じてリソースを増減でき、従量課金制が一般的です。トラフィックが急増した際にも、迅速にリソースを拡張可能。
- コスト削減: 初期投資が少なく、物理的なハードウェアの購入や保守が不要なため、運用コストを削減できる場合が多い。
- 高可用性と冗長性: クラウドプロバイダーが多くのデータセンターを持ち、障害時には他のデータセンターへ自動的に切り替え可能。
- サービス形態:
- IaaS(Infrastructure as a Service): 基本的なインフラを提供(例:仮想サーバー、ストレージ)。
- PaaS(Platform as a Service): アプリケーション開発用のプラットフォームを提供(例:Google App Engine)。
- SaaS(Software as a Service): ソフトウェア自体をインターネット経由で提供(例:Google Workspace、Salesforce)。
2. オンプレミス(オンプレ, On-Premises)とは?
オンプレミスは、自社内で物理的なサーバーやネットワーク機器を設置・運用し、自社でITインフラを管理するモデルです。すべてのリソースが自社のデータセンターやオフィス内に存在します。
オンプレミスの特徴:
セキュリティの完全管理: データが社内にあるため、外部のクラウドプロバイダーに依存せずに完全にセキュリティを管理できます。
リソースの内部管理: すべてのハードウェアやインフラは自社の施設にあり、管理や運用も社内のITチームが担当します。
初期投資が大きい: サーバー、ストレージ、ネットワーク機器などを最初に購入するため、初期投資が大きくなる。
カスタマイズ性が高い: システムやインフラを自社の要件に合わせて自由にカスタマイズできます。特定の業務要件やセキュリティ要件に応じてシステムを最適化可能です。
クラウドとオンプレミスの比較
特徴 | クラウド | オンプレミス |
---|---|---|
管理方法 | 外部プロバイダーに委託 | 自社で完全管理 |
初期コスト | 低い | 高い |
ランニングコスト | 利用量に応じた従量課金 | 定額の運用・保守費用 |
スケーラビリティ | 簡単に拡張・縮小可能 | 拡張には新しいハードウェアが必要 |
カスタマイズ性 | 制限あり | 高い |
セキュリティ | プロバイダーに依存(セキュリティのレベル次第) | 自社内で完全に制御 |
まとめ
- システムの構成は、インフラの中にフロントエンド、バンクエンドが含まれている構成が大半
- フロントエンドは、ユーザーの目に見える部分で、バックエンドからの値を表示する役目
- バックエンドは、フロントエンドからの要求に対してデータの処理行い返却する役目
- インフラは、クラウドとオンプレに分かれ、これらはアプリケーションを動かすための基盤
コメント