1.3K Views
April 23, 24
スライド概要
日本工学院八王子専門学校卒。新卒からIT業界に所属し現在進行中。 趣味自宅サーバーとミニ四駆。
インフラエンジニア 仕事内容 永 ちゃん 作 成 日 : 2021/01/27 更 新 日 : 2022 /07/13 ※本資料は個人的主観で書いているので人により考えが違うこともあるか と思いますが、その点はご了承下さい。
目次 1. ITインフラとは 2. インフラエンジニアの仕事内容について 3. インフラエンジニアの職種 4. ITインフラを構成するもの 5. 設計・構築ってどんなことするの? 6. モニタリングって何するの? 7. 運用って何するの? 8. これからのインフラエンジニアに求められること 9. 最後にインフラエンジニアの魅力 2
1.ITインフラとは 3
ITインフラとは • インフラ=インフラストラクチャー 基盤や下支えのことを指します • 日常生活におけるインフラって何だろう? 電気、ガス、水道が該当 ITインフラは 生活の必需品 • ITにおけるインフラで該当するものは? 企業システム:ネットワーク、サーバー、ソフトウェア =>インターネットへサービス公開するための基盤 4
ITインフラの役割 • ユーザーに対してWEBサービスやサイト、アプリを提供すること 例えば・・・ • インターネットで調べものする際に利用するGoogle先生 • ネットショッピングする際に今やおなじみのAmazon • 誰もが一度はやったことあるだろうスマホゲーム • SNSでの交流(Twitter/LINE/Facebookなど) 5
2.インフラエンジニアの仕事 6
インフラエンジニアの仕事内容 • サービス基盤を設計構築し、モニタリング+運用を実施している 例としてTwitterの発信内容や画像/動画のデータがサーバへ保管され データ保管しているサーバがネットワークに繋がっていることで実現 ↓ 適切なサーバのスペック、あらかじめ想定されるアクセス数や通信量を考え、 設計構築を行い、サービスを止めないようモニタリング+運用を行う 縁の下の力持ちの仕事 7
インフラエンジニアの仕事内容 • 前頁で出てきたキーワード サーバー ネットワーク 設計 構築 運用 モニタリング 8
3.インフラエンジニアの職種 9
職種 運用と監視という点での職種 • 監視エンジニア チームを組みシフトで決められた時間に24/365でモニタリングシステムからのアラートを捌く 手順書に通りにシステム障害対応を実施、手順外は運用エンジニアへエスカレーション • 運用エンジニア 平日日中帯の仕事がメインとなるが夜間休日祝日に障害対応も実施 システムが正常に稼働しているかを確認してトラブルが起きないようにすること 運用エンジニアの中では人により得意不得意なレイヤがあり次ページで詳細について触れます 10
職種 技術力としての職種 • サーバーエンジニア サーバスペックの選定や設計、構築から構築後のテスト、クラウドの知識 • ネットワークエンジニア ネットワーク設計図から設計、データを送受信できる環境を構築、クラウドの知識 =>インフラエンジニアは両方兼ね備えた人が多く、実務ではどちらの知識も要求される IaaSを利用した設計が多くあるのでクラウドに対する知識も必須となっている 11
4.ITインフラを構成するもの ~サーバー編~ 12
サーバーとは • パソコンとは違い、データやサービスをユーザーに安定して提供する役割を持つ • 高い処理能力、安定性、信頼性が求められるもの(RASIS) 例: WEBサイトを閲覧する際にURLに対してリクエストをユーザーは実施 URLからWEB上の住所(IPアドレス)を管理しているサーバに問い合わせ、 表示リクエストを行いサーバからWEBサイトのデータを返答します。 これがサーバーの役割となります。 13
サーバーの種類 • 物理サーバー 共用サーバー:1台の物理サーバーを複数ユーザーで利用 専用サーバー:1台の物理サーバーを1ユーザーが占有して利用(Dedicated) • 仮想サーバー VPS:共用サーバーの仮想版と捉えてください クラウドサーバー:クラウド環境に作られたサーバー(AWS/Azure/さくらのクラウド) 14
サーバーの用途 • WEBサーバ リクエストに応じてWEB上のデータを返答するサーバー WEBサイトやBLOGなどを表示 • メールサーバ メールの送受信サービスを提供するサーバー 送信側はSMTPサーバー、受信側はIMAPもしくはPOP3サーバー • データベースサーバー データベース管理システムを使ってデータを整理し、リクエストに応じてデータを返答するサーバー ショッピングサイトで商品データを見るときに表示される価格や色、商品名のデータを管理 • DNSサーバー 利用者のリクエストに応じてIPアドレスとドメインを結びつける役割をもったサーバー IPアドレスはWEB上の住所、ドメインはWEB上の名前と思ってください 15
サーバーの上で動くもの • OS UNIX、Linux、Windows • ミドルウェア:アプリケーションとOSの間で仲介するソフトウェア WEB:Apache、Nginx、IIS、Tomcat、PHP DB:MySQL、PostgreSQL、Oracle、MSSQL、SQLite HA:Pacemaker、Pgpool-Ⅱ サーバー上で動かすためにはシステム毎にミドルウェアを最適な設定にすることが大事 16
4.ITインフラを構成するもの ~ネットワーク編~ 17
ネットワークとは • コンピューターネットワークといい、複数のコンピューターを繋げる技術 例: 自宅からPCを利用してYoutubeを閲覧する際はPCとインターネットをつなぐための、 ネットワーク技術が利用されており、Youtubeが世界中で閲覧できるのも、 世界がネットワークで繋がっているため閲覧ができる 18
ネットワークを形成するのに必要なもの • コンピューターデバイス ネットワークだけでは通信は不可 ネットワークの先にコンピューターが相互にあることで初めてネットワークが作られます • ネットワーク機器 コンピュータをネットワークにつなぐためにHUB、Switch、Routerが必要 • 伝送媒体(ケーブルや電波のこと) ネットワークにつなぐために有線と無線があります 19
ネットワークの種類 • LAN:Local Area Network 社内や自宅内などローカルな環境で機器を繋いだネットワーク • WAN:Wide Area Network LAN同士をつなぐネットワーク インターネット上にあるネットワーク ※自宅がインターネット接続できるのはインターネットアクセスするための機器があるからアクセスできる • Internet: 世界中のコンピューターやサーバーを繋いているネットワーク 20
ネットワークを知る上で最低限必要な知識 • TCP/IP • OSI参照モデル • プロトコル • IPアドレス • 2進数/10進数 ※CCNAの勉強すれば必然と身に着けることができます 21
5.設計と構築 22
設計とは • アプリ側の要求を適切に処理できるようにシステムやネットワーク構成を考える仕事 要件定義 要望ヒアリング、リソースや機材調達、要件を満たせるか検証 顧客との調整、予算コントロール、全体を管理/整理する能力 設計資料作成 外部設計書(基本設計):要件定義をもとに実現するためのシステム基本設計を行う 内部設計書(詳細設計):外部から見えないシステム内部の詳細設計を行う 最初の設計段階が一番重要な工程であり、沢山経験を積むことが大事 23
設計において大事なことや必要なこと • 顧客の要望が全てではなく、より良くするために改善提案もしつつ整理をしていくこと • 設計資料を作成するドキュメント作成能力 • どんな仕事においても同じだが、認識のずれがおきていないか細かく確認すること • お客様とコミュニケーションをしっかりとること 24
構築とは • 設計書に従ってシステムが問題なく動作するための基盤を作成すること 機材やリソースの調達 物理機器があればセットアップやラッキング、ケーブル配線 OSやミドルウェアのインストールと設定 ネットワークの設定 =>最後に単体試験、システム統合試験を実施し問題ないことを確認 各種パラメータを理解しながら構築 不測の事態にはトラブルシューティングして解決し、次に生かすことが重要 25
6.モニタリング 26
モニタリングとは • システムやサービスが正常に安定して稼働しているか測定する 人であれば具合が悪くなったら病院へ ITインフラを構成するものは具合が悪くなっても気づくことができない (勝手に教えてくれるようになったら怖い・・・) 気づくための仕組みとしてモニタリングを実施 モニタリングツールとしてはZabbix、Prometheusが主軸 SaaSだとMackerel、NewRelic、Datadogなどが存在 可視化するためのアプリケーションとしてGrafanaがアジアでは主流 27
モニタリング設計 • モニタリングするには必要な項目と正しい監視項目の設計が必要 =>まずはどういったシステムなのかを把握するところからスタート WEBサイトシステムを例に挙げると ・WEB応答速度、応答コード、Apdex、HTTP Archive File ・VM:Ping、CPU、Memory、Disk、NetworkTraffic、プロセス、ログ ・物理機器:HWステータス、Network機器ならOIDやTRAP ・IaaS:モニタリングツールで取集できないものはCloudWatchやAzureMonitorなども利用 28
モニタリング設計時の注意 • アラート設定を間違えると大量に障害が発生してしまう =>細かくモニタリングすることは良いがデータとして取得したいものと アラートにしたいものをちゃんと分けること • なんでもアラートにしていると対処しなくなる、対処が追いつかなくなる =>適正な値でアラート通知されるようにすること NG例:ログ監視をErrorというキーワードだけで監視する 一番大事なことはサービスが継続して稼働していることが重要 ※どんな時をシステム障害と定義するかはシステム毎に違う 29
モニタリング設定後 • チーム内にちゃんと共有すること =>設定した内容についてドキュメントに残すようにする • アラート受ける人はアラートの設定内容を理解をすること =>モニタリングしている内容が分からないと障害が起きたときのFirstStepが遅くなる ※アラートを受けたらまず対応している旨をチーム内に共有すること! • データ取得のみのものを活かすためにも可視化すること =>見えてこなかった傾向がつかめるようになり事前対処や健全な状態に持っていけるようにする ※得られたデータから分析できるスキルが必要 30
モニタリングの補足 • アラート受けてからの動きを確定させよう(FirstStep) ① アラートを受けたらまず自分が対処中であることをチームに共有する ② 何分以内に影響範囲が分からなければ他の人に連絡する 自己判断できない/影響範囲が分からないのであれば障害の深刻度が上がる、 2次災害に発展する可能性があります。 人は焦りからパニックとフリーズになりやすい生き物です 予めチーム内でアラートを受けたらどうするか、 判断に迷う場合どうするか決めごとを作りましょう! 31
7.運用 32
運用とは • 24/365の作業になるのでチーム制で仕事をすることが多い 監視エンジニアチーム:シフトを組んで24/365で実施 運用エンジニアチーム:平日日中帯の仕事+夜間、土日祝日にも障害対応 • 運用と保守の違い 運用:日々システムが停止しないようするために正常に稼働しているか確認する 保守:システムが不具合があったとき適切な対応をとること =>どっちが上流とかそういうことではなく運用も保守も両方大事!! 33
※運用・保守の補足 • システムを直すこと≠障害対応ではない =>障害対応の目的はシステムの影響範囲を最小に留めてシステムを元に戻すこと • システム障害における基本的なプロセス ① イベントの確認:アラートやユーザーからの申告 ② 検知、事象の確認:システムが本来の機能を果たせていない場合、改めて障害と判断し対応開始 ③ 影響調査:ユーザーへの影響調査 ④ 原因調査:被疑箇所の調査 ⑤ 復旧対応:システムを元に戻すための手段を実施 ⑥ 恒久対策:復旧対応が暫定対処の場合、本格的な対策を実施 ⑦ 障害分析、再発防止策:根本原因を分析し、再発防止を実施 ⑧ ナレッジ化:起きた事象に対してナレッジを溜め込み過去やったことを参照できるようする 34
8.インフラエンジニアに求められること 35
インフラエンジニアに必要なスキル • ネットワーク、サーバーの基礎知識 • ミドルウェアの知識 • モニタリングツールの知識 • ヒューマンスキルやビジネススキル • IaCの知識 • 障害対応や定型業務の自動化 • モニタリングからObservabilityへの思考変化 • クラウドの知識 • 仮想化の知識 • セキュリティの知識 • APM(Application Performance Management):アプリ領域なのでインフラが実施するのはきつい 36
インフラエンジニアに必要なスキル IaCの知識 インフラをコード管理して変更管理を容易にする 障害対応/定型業務の自動化 定型作業、単純作業を自動化し、人がやることに注力する モニタリングからObservabilityへの思考変化 従来の受動対処から能動対処へ クラウドの知識 クラウド率先して採用されることでAWS/Azure/GCPなど知識を身に着けることが必須 コンテナの知識 コンテナサービスの利用が増えてきており、 DockerやKubernetesの知識が求められ始めている セキュリティの知識 電子化が進むことでインターネット上で流れる情報の機密度が上がっている APMの知識 インフラからだけでなくアプリケーションの動作をモニタリング ※細かいことまでは書かないので、不明点は調べてみてください 37
9.インフラエンジニアの魅力 38
インフラエンジニアの魅力 • お客様から感謝されることが多い! システムトラブル時は大変ですが、マイナスを0に戻したりシステムを健全状態にしたときに、 「ありがとう」という言葉をよく頂くことがあります • 障害時や異常時こそ自分の価値をお客様に示すとき! お金を払ってよかったと思われることで継続してサービスを利用してもらうことができる • 新しい技術がどんどん出てくる 同じ技術を使うことも大事だけど、新しいことに目を向けて知ることも大事 39
最後に 40
インフラエンジニアになるための心得 • 最低限ITの技術が好きであってほしい 好きこそものの上手なれという言葉がありますが好きであれば伸びも早いです • 知ることを、経験すること 新しい情報やトレンドを情報取集する やってみようか迷うならやってみる • 自宅のインフラから学んでみる インターネットに繋がっていればネットワーク機器があるはずなのでどういったものなのか調べてみる 自宅で物理でLinuxインストールしてみたり、VMwareやProxmoxをインストールして仮想環境を作ってみる AWSやAzureを使ってネットワーク構成から学んでみる ※どれもお金がかかることなのでお財布とよく相談してください 41
END 42