https://thinkit.co.jp/article/12056 内容翻訳(簡略に)
構築について知ろう
構築とは?
構築とは、前段フェーズの「設計」を通して作成される設計書やパラメータシートに従ってハードウェアとソフトウェア(OS、ミドルウェア)の設定を行い、システムを実際に組み上げる作業です(図1)。
구축은 전 단계의 페이즈에서 설계을 통해서 작성되어진 설계서랑 파라메터 시트에 따라서 하드웨어와 소프트웨어의 설정을 하고, 시스템을 실제로 대입하는 작업
例えば、サーバの構築ではハードウェア設定から始まり、OSのインストール・設定、さらにミドルウェアのインストール・設定などを行いますが、誤解を恐れずに言うと「アプリケーション開発以外の全ての領域を担当する」ことになります(図2)。
なお、プロジェクトの規模が大きくなると構築に関わる仕事量も多くなるため、技術領域を分けて対応することもあります(図3)。
예를 들면, 서버의 구축에서는 하드웨어 설정부터 시작하여, OS의 인스톨, 설정, 더하면 미들웨어의 인스톨, 설정등이 이행됩니다만, 오해를 두려워하지 않고 말해보면, “어플리케이션개발이외의 모든 영역을 담당한다.” 라는 것이 됩니다.
덧붙여 프로젝트의 규모가 커지면, 구축의 관련 일의 양도 늘어나기 떄문에, 기술영역을 나누어서 대응하는 것도 있습니다.
模拟 click
1. 構築準備
前項で「設計書に従ってシステムを構築していく」と書きましたが、おもむろに始めるわけではありません。まずは類似の環境を用意して構築の検証や手順確認を行っていきますが、実際に確認してみると、設計ミスやソフトウェアのバグ等で上手くいかないこともよくあります。最近では類似の環境に仮想サーバやクラウド上のサーバを使用することが多くなりました。さらにメーカの検証センタ(検証用にサーバやストレージが設置されている場所)を利用する場合もあります。日常の喧騒から離れて静かな部屋で検証するのは楽しい時間です。
検証や手順確認が完了したら、「構築手順書」を作成していきます。プロジェクトによって粒度はさまざまですが、手順書通りに作業を行えば新人エンジニアでもシステムを作り上げることができます。また、構築に必要な資材(メディアやライセンス、設定ファイル・スクリプト、作業端末)もこのタイミングで準備を進めます。
전항에서 [설계서에 따라서 시스템을 구축해 간다.]라고 썼습니다만, 반드시 서서히 시작하는 것만은 아닙니다.
최근은 유사 환경을 준비해서 구축의 보증과 순서확인을 행하여 갑니다. 실제로 확인해보면 설계 미스랑 소프트웨어의 버그등으로 능숙히 잘 안되는 일도 자주 있습니다. 또 제조업체의 검증센터(검증용으로 서버랑 스토레이지가 설치되어 있는 장소)을 이용하는 경우도 있습니다. 일상의 소란으로부터 떨어져 조용한 방에서 검증하는 것은 즐거운 시간입니다.
검증이랑 순서확인이 완료되면, [구축절차서]을 작성해 갑니다. 프로젝트에 의해서 입도(입자 크기 정도)는 여러가지이지만, 절차서대로 작업을 행하면, 신입엔지니어도 시스템을 구축하는것이 가능합니다. 또, 구축에 필요한 인재(미디어,라이센스,설정파일,작업단말기)도 이 타이밍에서 준비를 진행합니다.
2. 構築形態
ミドルウェアの構築では、インストールや設定する際に関連するサーバが必要な場合があり、構築の前後関係やスケジュールに注意が必要です。そもそも、ミドルウェアの動作形態には「サーバ単体で動くもの」と「Manager-Agent構成のもの」と2つあります。単体で動くものは対象サーバの設定ファイルで設定しますが、Manager-Agent構成のミドルウェアではそうはいきません。
例えば、監視用のミドルウェアでは監視対象のサーバにAgent、監視状況を管理するサーバにManagerをインストールします。Agentが監視データを収集してManagerへ送信しますが、複数台のサーバ間で通信が必要となるため、Manager/Agent固有の設定に加えてネットワーク周りの設定も行う必要があります。ポートの開放や各サーバ情報の登録、異なるネットワークに属する場合はスイッチやルータにも設定します。Agentから送られてきたデータをManager側で受信し、監視できる状態となれば構築は完了です(図4)。
미들웨어의 구축에서는 인스톨과 설정할때에 관련하는 서버가 필요한 경우가 있고, 구축의 전후관계랑 스케쥴에 주의가 필요합니다. 도대체 미들웨어의 작업형태에는 [서버단체로 움직이는 것]과 [Manager-Agent구축의 일] 2개 있습니다. 단체로 움직이는 것은 대상 서버의 설정파일에서 설정합니다만, Manager-Agent고유의 설정에 더해서 네트워크주변의 설정도 행해지는 필요가 있습니다. 포트의 개방이랑 각 서버정보의 등록, 다른 네트워크의 속한 경우는 스위치랑 라우터에도 설정합니다. Agent부터 전송되어져온 데이터를 Manager측으로 수신하고, 모니터링할 수 있는 상태가 된다면 구축은 완료입니다.
3. 構築環境(開発環境、検証環境、本番環境)
システムには実際にユーザが利用する環境(本番環境)以外にも、複数の環境が必要となります。プロジェクトにより呼び方は異なりますが、例えば下記のような環境があります。それぞれの環境を構築するのもインフラエンジニアの仕事です。
시스템에는 실제로 유저가 이용할 환경 (본방환경) 이외에도, 복수의 환경이 중요하게 됩니다. 프로젝트마다 부르는 법도 상이합니다만, 예를들면 아래와 같은 환경이 있습니다. 각각의 환경을 구축하는 것도 인프라엔지니어의 일입니다.
- 開発環境 アプリケーションエンジニアがアプリケーション開発を行う環境です。JDK(Java Development Kit)といった開発ツールやCVS(Concurrent Versions System)といったバージョン管理ツールを導入することでアプリケーション開発に必要な環境を整えます。時間やコストをかけずに構築するため、柔軟な対応が求められます。インフラの検証や手順確認を開発環境で実施することもあります。
개발 환경
어플리케이션엔지니어가 어플리케이션개발을 처리하는 환경입니다. JDK(Java Development Kit)이라 알려진 개발툴이랑 CVS(Concurrent Versions System)이라고 불리는 관리툴을 도입하는 것으로 어플리케이션개발에 필요한 환경을 마련합니다.
시간이랑 비용을 들이지않고 구축하기 떄문에, 유연한 대응이 요구되어집니다.
인프라의 보증이랑 순서확인을 개발환경으로 실시하는 것도 있습니다.
- 検証環境 テスト環境とも呼ばれ、本番環境でアプリケーションを動かす前にテストや検証を行う環境です。テストもせずにいきなり本番環境ではアプリケーションを動かせないので、検証環境を用意します。多くの場合で本番環境よりコストを削った構成(CPUが半分、ネットワーク機器が冗長化されていない、CentOSの使用など)になり、各種設定を検証環境用にカスタマイズする必要があります。
보증환경
테스트환경이라고 불리는 본방환경으로 어플리케이션을 움직이기전 테스트랑 보증을 시행하는 환경입니다. 테스트도 없이 갑자기 혼방환경에서는 어플리케이션을 움직이게 시키지 않기 때문에, 보증환경을 준비합니다. 많을 경우로는 본방환경보다 비용을 깍아 구성(CPU가 절반, 네트워크기기가 장장화시키지 않고, CentOS의 사용등)이 되고, 각종설정을 검증환경용에 커스터마이즈할 필요가 있습니다.
- 本番環境 実際にユーザへサービスを提供する環境です。ネットワーク上に既存のシステムが稼働している場合もあるため、万が一問題があれば周辺のシステムに影響が出ます。想定外の事象が発生すれば作業は一時中断され、今後の対応を協議したうえで再開・延期される……という失敗が許されない環境です。監視システムが稼働している場合には、作業不備によるアラートが上がると、昼夜を問わずシステム管理者(運用担当者やユーザ企業担当者など)に連絡が入ります。作業部屋に取り付けられているパトランプが回り始め、警報が鳴り響くといった現場もありました。
본방환경
실제에 유저에게 서비스를 제공하는 환경입니다. 네트워크상에 기존의 시스템이 가동하고 있는 경우도 있기 떄문에, 만일 문제가 있다면 주변의 시스템에 영향이 나타납니다. 예상치 못한 현상이 발생하면 작업은 일시 중단되고, 이후의 대응을 협의한 뒤에 재개/연기된다…. 라는 실패가 허용되지 않는 환경입니다.
通常は、開発環境→検証環境→本番環境と構築していきますが、プロジェクトによっては本番環境を構築してから検証環境を構築することもあります。本番環境は監視化におかれた部屋やデータセンタでの作業も多く、通常とは異なる心理状態での作業になるため、特に事前の準備が重要となってきます。
통상, 개발환경 > 보증환경 > 본방환경 으로 구축해가지만, 프로젝트에 의해서 본방환경을 구축하고나서 보증환경을 구축하는 것도 있습니다. 본방환경은 모니터링화로 배치되어진 방이랑 데이터센터로의 작업도 많고 통상과는 상이한 심리상태로의 작업이 되기떄문에, 특히 사전의 준비가 필요되어 왔습니다.