Skip to content

インフラ用語

定義: コンテナは、アプリケーションとその依存関係をパッケージ化し、どこでも同じように実行できる技術です。

なぜ重要なのか:

  • 環境の一貫性: 開発環境と本番環境が同じ
  • 軽量: 仮想マシンより軽量
  • 移植性: どこでも実行できる

使用例:

# Dockerfile
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]

関連用語:

  • Docker
  • オーケストレーション
  • 仮想化

オーケストレーション(Orchestration)

Section titled “オーケストレーション(Orchestration)”

定義: オーケストレーションは、複数のコンテナを管理・調整する仕組みです。

なぜ重要なのか:

  • スケーリング: 自動的にスケール
  • 可用性: 障害時の自動復旧
  • 管理: 複数のコンテナを一元管理

オーケストレーションツール:

- Kubernetes: 最も人気
- Docker Swarm: Docker公式
- Nomad: HashiCorp製

関連用語:

  • Kubernetes
  • コンテナ
  • マイクロサービス

定義: サーバーレスは、サーバーの管理をクラウドプロバイダーに任せ、コードのみを実行するアーキテクチャです。

なぜ重要なのか:

  • 運用の簡素化: サーバー管理が不要
  • コスト: 使用した分だけ課金
  • スケーラビリティ: 自動的にスケール

使用例:

// AWS Lambda
export const handler = async (event: any) => {
// 関数の処理
return {
statusCode: 200,
body: JSON.stringify({ message: 'Hello World' })
};
};

関連用語:

  • Lambda
  • Functions as a Service
  • イベント駆動

定義: IaCは、インフラをコードで定義・管理する手法です。

なぜ重要なのか:

  • 再現性: 同じインフラを再現できる
  • バージョン管理: インフラの変更を追跡
  • 自動化: インフラの構築を自動化

使用例:

# Terraform
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
tags = {
Name = "WebServer"
}
}

関連用語:

  • Terraform
  • CloudFormation
  • 自動化

定義: スケーリングは、システムのリソースを増減させ、負荷に対応することです。

なぜ重要なのか:

  • パフォーマンス: 負荷に対応できる
  • 可用性: 障害時の対応
  • コスト: 必要な分だけリソースを使用

スケーリングの種類:

- スケールアップ: サーバーの性能を向上
- スケールアウト: サーバーの数を増加
- オートスケーリング: 自動的にスケール

関連用語:

  • 負荷分散
  • オートスケーリング
  • パフォーマンス

定義: レプリケーションは、データを複数の場所にコピーし、可用性とパフォーマンスを向上させる手法です。

なぜ重要なのか:

  • 可用性: 障害時の継続性
  • パフォーマンス: 読み取り性能の向上
  • 災害対策: 災害時のデータ保護

レプリケーションの種類:

- マスター・スレーブ: 1つのマスターと複数のスレーブ
- マスター・マスター: 複数のマスター
- 同期レプリケーション: 即座に同期
- 非同期レプリケーション: 遅延して同期

関連用語:

  • データベース
  • 可用性
  • バックアップ