インフラ用語
インフラ用語
Section titled “インフラ用語”コンテナ(Container)
Section titled “コンテナ(Container)”定義: コンテナは、アプリケーションとその依存関係をパッケージ化し、どこでも同じように実行できる技術です。
なぜ重要なのか:
- 環境の一貫性: 開発環境と本番環境が同じ
- 軽量: 仮想マシンより軽量
- 移植性: どこでも実行できる
使用例:
# DockerfileFROM node:18WORKDIR /appCOPY package*.json ./RUN npm installCOPY . .CMD ["npm", "start"]関連用語:
- Docker
- オーケストレーション
- 仮想化
オーケストレーション(Orchestration)
Section titled “オーケストレーション(Orchestration)”定義: オーケストレーションは、複数のコンテナを管理・調整する仕組みです。
なぜ重要なのか:
- スケーリング: 自動的にスケール
- 可用性: 障害時の自動復旧
- 管理: 複数のコンテナを一元管理
オーケストレーションツール:
- Kubernetes: 最も人気- Docker Swarm: Docker公式- Nomad: HashiCorp製関連用語:
- Kubernetes
- コンテナ
- マイクロサービス
サーバーレス(Serverless)
Section titled “サーバーレス(Serverless)”定義: サーバーレスは、サーバーの管理をクラウドプロバイダーに任せ、コードのみを実行するアーキテクチャです。
なぜ重要なのか:
- 運用の簡素化: サーバー管理が不要
- コスト: 使用した分だけ課金
- スケーラビリティ: 自動的にスケール
使用例:
// AWS Lambdaexport const handler = async (event: any) => { // 関数の処理 return { statusCode: 200, body: JSON.stringify({ message: 'Hello World' }) };};関連用語:
- Lambda
- Functions as a Service
- イベント駆動
IaC(Infrastructure as Code)
Section titled “IaC(Infrastructure as Code)”定義: IaCは、インフラをコードで定義・管理する手法です。
なぜ重要なのか:
- 再現性: 同じインフラを再現できる
- バージョン管理: インフラの変更を追跡
- 自動化: インフラの構築を自動化
使用例:
# Terraformresource "aws_instance" "web" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro"
tags = { Name = "WebServer" }}関連用語:
- Terraform
- CloudFormation
- 自動化
スケーリング(Scaling)
Section titled “スケーリング(Scaling)”定義: スケーリングは、システムのリソースを増減させ、負荷に対応することです。
なぜ重要なのか:
- パフォーマンス: 負荷に対応できる
- 可用性: 障害時の対応
- コスト: 必要な分だけリソースを使用
スケーリングの種類:
- スケールアップ: サーバーの性能を向上- スケールアウト: サーバーの数を増加- オートスケーリング: 自動的にスケール関連用語:
- 負荷分散
- オートスケーリング
- パフォーマンス
レプリケーション(Replication)
Section titled “レプリケーション(Replication)”定義: レプリケーションは、データを複数の場所にコピーし、可用性とパフォーマンスを向上させる手法です。
なぜ重要なのか:
- 可用性: 障害時の継続性
- パフォーマンス: 読み取り性能の向上
- 災害対策: 災害時のデータ保護
レプリケーションの種類:
- マスター・スレーブ: 1つのマスターと複数のスレーブ- マスター・マスター: 複数のマスター- 同期レプリケーション: 即座に同期- 非同期レプリケーション: 遅延して同期関連用語:
- データベース
- 可用性
- バックアップ