0
1

More than 1 year has passed since last update.

【AWS】構成管理サービス

Last updated at Posted at 2021-08-03

構成管理サービス

構成管理に関する重要用語

◉プロビジョニング

複数の**ITリソース(サーバー/ネットワーク/DB/ストレージなど)**をシステムの利用状況や障害発生の状況に応じて、動的に利用したり割り当てる

◉デプロイ

サーバーに**ファイル(バイナリファイル/ソースコード)アセット(その他ドキュメントをまとめたもの)**を配置して、利用できる状況にすること

AWSでは環境構築に関わる作業を自動化するためのサービスが提供されている

コードによるインフラストラクチャ構成管理

◉オンプレ環境構築時の課題

  • 作業中にミスが発生する可能性がある
  • 導入後に構成変更があることを考慮して、インフラストラクチャ管理(設計書やサーバーのパラメータなど)が必要

◉Infrastructure as Code(IaC)

  • インフラストラクチャ構築作業をコードで記述して管理する考え方
  • 定義ファイルをコーディングして、コードを実行することでリソースのプロビジョニングが可能
  • コードをそのまま流用できる
  • インフラストラクチャ構築手順のバージョン管理が簡単にできる

バージョン管理
アプリケーション開発やドキュメント作成時などの履歴を管理すること

AWS CloudFormation

AWS内の全てのインフラストラクチャリソースを自動でプロビジョニングできるサービス

◉テンプレート

  • CloudFormationの設定ファイルのこと
  • AWSリソースをJSON or YAMLフォーマットで記述する

◉スタック

テンプレートを利用してCloudFormationによってプロビジョニングされるAWSリソースの集合

Image from Gyazo

◉JSONとYAMLのフォーマット

キーとバリューで構成されていて、構造化データを表現するフォーマット

◎JSON

{
 "key1": "連続したデータの表記",
 "key2": "カンマを使って区切る"
}

{
 "key": ["配列の表記", "角カッコを使用する"]
}

◎YAML

key1: 連続したデータの表記
key2: 改行して記述する

key: 
- 配列の表記
- 行頭にハイフンを記述する

key:
  key2: 入れ子は半角2文字分のインデントをつける

◉CloudFormationの設定

主要な項目 説明
AWSTemplateFormatVersion CloudFormationテンプレートのバージョンを指定
Description テンプレートの説明を記述
Pamameters テンプレート実行時に利用できる値を指定
Resources プロビジョニングしたいAWSリソースとその設定を記述
Outputs スタック作成後に出力したい項目を指定

◎JSON形式

{
  "AWSTemplateFormatVersion" : "version date",

  "Description" : "JSON string",

  "Metadata" : {
    "template metadata"
  },

  "Parameters" : {
    "set of parameters"
  },
  
  "Rules" : {
    "set of rules"
  },

  "Mappings" : {
    "set of mappings"
  },

  "Conditions" : {
    "set of conditions"
  },

  "Transform" : {
    "set of transforms"
  },

  "Resources" : {
    "set of resources"
  },
  
  "Outputs" : {
    "set of outputs"
  }
}

◎YAML形式

---
AWSTemplateFormatVersion: "version date"

Description:
  String

Metadata:
  template metadata

Parameters:
  set of parameters

Rules:
  set of rules

Mappings:
  set of mappings

Conditions:
  set of conditions

Transform:
  set of transforms

Resources:
  set of resources

Outputs:
  set of outputs

AWS Elastic Beanstalk

  • Webアプリケーションやサービスをサーバーにデプロイでき、実行環境の管理を行うことができる
  • 自動的に容量プロビジョニング/負荷分散/拡張/アプリケーションの状態の監視を行う

◉対応言語

  • Java
  • .NET
  • PHP
  • Node.js
  • Python
  • Ruby
  • Go
  • Dockerにも対応

◉デプロイサーバー

  • Apache HTTP Server
  • Nginx
  • Passenger
  • IIS(Microsoft Internet Information Services)

その他の構成管理サービス

◉AWS OpsWorks

  • サーバー構築作業を自動化する構成管理サービス
  • デプロイ/プロビジョニング/リリース後の監視機能
  • Chef/Puppetなどのサーバーの構成を自動化するツールを利用できる

◎自動化できる手順

  1. EC2インスタンスを作成し、サーバーを準備
  2. Chefのレシピを実行して、必要なソフトウェアをサーバーにインストール
  3. Chefのレシピを実行して、アプリケーションをデプロイ

Chef
・インフラにおけるサーバ構成管理や、サーバへのファイル展開作業(プロビジョニング)を自動化するオープンソース・ソフトウェア
・Rubyで実装
・この構成管理の情報を「レシピ(Recipe)」、レシピの集合体である「クックブック(Cookbook)」として定義

Puppet
・OS設定やアプリケーションの構築を自動化するオープンソース・ソフトウェア
・マニフェスト(manifest)に記述
・サーバの台数によらずマニフェストの構成どおりにインフラを自動的にセットアップする

◉AWS CodeDeploy

アプリケーションのデプロイを自動化するサービス

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1