Infrastructure as Code(IaC)パターン
DevOps環境を提供するニフクラ DevOps with GitLabサービスを利用して、Infrastructure as Code(IaC)を実現する環境を構成するパターンです。
解決したい課題/要求事項
-
IaCに取り組みたいが、実現するための環境構築や運用作業に手間と時間、コストがかかるのを何とかしたい
-
柔軟かつ迅速に対応できるシステムインフラ環境を実現したい
-
インフラ環境の構築を手作業で実施することによるミスを防止したい、誰が構築しても同じ結果となり、他環境へも流用可能にしたい
ニフクラでの解決パターン
以下の内容により、課題の解決や要求事項の実現が可能
-
インフラストラクチャをソースコードを使って構築するようにし、そのソースコードをニフクラ DevOps with GitLabで管理すればインフラストラクチャのメンテナンス性を向上させることができる
ソースコード上の変更箇所を捉えやすくなり、事前レビューによるチェック作業も効率的に進めることが可能 -
DevOpsのパイプライン機能により自動的に構築や設定チェックをすることで、手作業によるミスや、属人化といった課題も解決し、環境構築作業で発生するコストや時間を抑えることができる
実装
-
コードの管理、プロジェクトの管理、可視化、デプロイメント、DevOpsサーバーの運用に必要な機能が一通り揃っており、これらを活用することで運用工数を大幅に削減できる
-
例えばAnsibleなどを利用し、そのコードをニフクラ DevOps with GitLabで管理することで、各環境の設定や訂正、変更を簡単に制御が可能となる
-
ニフクラ DevOps with GitLabでは、Hosted Runnerを提供している
利用者自身でRunnerサーバーを構築・運用する必要はなく、簡単に専用のCI/CD環境を立ち上げることができる-
DevOps with GitLabのRunner機能はDocker executorを採用しており、必要な実行環境のイメージを宣言すると、自動的に環境が立ち上がる
詳細は、DevOps with GitLab技術仕様 を参照
-
補足
-
DevOps with GitLabでは[GitLab Enterprise Edition サブスクリプションと組み合わせることで、GitLab Enterprise Edition の追加機能やサポートが利用可能
詳細は GitLab製品の利用を参照 -
オンプレミス環境で自前のコードを管理したい場合は、GitLabEEライセンスをオンプレミスの環境に適用する
-
仮想サーバーで共通グローバルネットワークを利用する場合のIPアドレス、デフォルトゲートウェイなどの情報については クラウド技術仕様/制限値(IPアドレス)を参照する
-
共通グローバルネットワーク、共通プライベートネットワークについての仕様は クラウド技術仕様/制限値(ネットワーク:共通ネットワーク)を参照する
注意点
-
ニフクラ DevOps with GitLabで選択可能なサーバータイプ、ディスク容量に制限がある
詳細は 機能・サービス:DevOps with GitLabを参照
本パターンの構成要素
本パターンを実現するためのニフクラサービス構成要素例は以下表の通りです。
- IaCパターンの構成要素
サービス名 |
タイプ |
用途 |
数量 |
備考 |
---|---|---|---|---|
devops.c-medium |
DevOpsサーバー |
1 |
- |
|
ディスク容量(100GB) |
ディスク |
1 |
- |
|
ファイアウォールグループ |
ファイアウォール |
1 |
- |
|
runner.c-medium |
DevOps Runner |
1 |
- |
|
- |
- |
1 |
任意で利用 |
- IaCにより作成されるサーバーの構成要素