若手エンジニアが育成に携わってみた@AITAC
1

自己紹介
西村優吾
➔ NTT コミュニケーションズ 技術開発部➔ 主な業務：ネットワーク自動化➔ 沖縄オープンラボラトリ主催スペシャリスト育成プログラム第1期生

2Agenda•••••••AITACとは
Step1のカリキュラム紹介
NTTコムのAITACへの期待/関わり
私が担当した講義
AITACで講師をするということ/得られたこと
フルスタックエンジニアを育成するにはおわりに

3

AITACとは4インフラ人材育成• 高度 IT アーキテクト育成協議会
AITAC : Advanced IT Architect Human Resource Development Council

https://AITAC.jp/
contact@aitac.jp
5AITAC が育成を目指す人材像• トップアーキテクト• ICT 技術を「武器」としてアイディアをシステムに具現化できる人材• フルスタックエンジニア• 従来の区分である「ネットワーク管理者」と「サーバ管理者」の垣根を超えたハイブリッドなエンジニア• システムを運用できるエンジニア• システムを理解しトラブルを解決できる人物• 監視を行うことのみが運用ではない

6

人材育成のステップ• 段階をふんだ学習体制• 段階毎の認定制度• 実践的シナリオに基づいた
グループ学習制度
履修段階

学生のケース

社会人のケース

STEP 1(座学・演習)

半期(15週) 授業 x 2

集中講義(3日) x 4

STEP 2 (実習)

集中実習(5日) x 3

集中実習(5日) x 3

STEP 3(プロフェッショナル育成)

インターンシップ(1ヶ月)Interop Tokyo への参加

人脈形成をサポート7

Step1のカリキュラム紹介8

Step1のカリキュラム
••
•
•
•
•
•
•
•

Network基礎からSDN,OpenFlowまで
OSとLinuxの話(Server周り)
NTPやDNS
ストレージとDBの話
クラウドという概念から利用法
Network・Server運用監視
自動化
コンテナ
セキュリティ

9

STEP1 (ネットワーク)
講義の概要
本講義の位置付け、実施方針を伝える
ネットワークの理論
TCP/IP ネットワークの概要
TCP/IPネットワークの全体像と階層モデルについて理解するEthernet の仕組み
Ethernetを用いたネットワークの構 Ethernetを用いて小規模なネットワークを構築する
築演習
スイッチの操作を覚える
ネットワーク層
ネットワーク層の役割について理解し、IPアドレスの構造、IGPの仕組み
IP経路制御 (1)を理解する
ネットワークの基礎技術
EGPの役割とBGPの仕組みについて理解する
構築・運用技術
IP経路制御(2)またBGPを応用した実際の経路制御手法についても学ぶ
設計方法
IGPとEGPの階層的な経路制御について学び、RIP、OSPFを用いた経路経路制御演習 (1)制御の演習を行う
経路制御演習(2)ネットワーク冗長化と設計
ネットワーク設計論

BGPの仕組みについて理解し、ルータの設定を通じて理解を深める
信頼性向上のためにネットワークの冗長化が必要であることを理解する
各層での冗長化技術を学ぶ
データセンタや ISP における実際のネットワーク設計や Interop Tokyoにおけるネットワーク設計からその意味を学ぶ

10

STEP1 (コンピューティング)

OS/コンピュータアーキテクチャ
OS/サーバの仕組み
サーバの基礎技術 セキュリティ
スケーラビリティー Linux のインストールと仮想化技術
サーバとしての設定
負荷分散と仮想化

サーバに用いられるOSの基礎的な仕組みを理解する
現在のコンピュータアーキテクチャとCPUの仕組みについて学ぶLinux を例として OS の構造と仕組みを理解する
Linux を利用して構築されるサーバの事例を理解する
OSインストールからソフトウェアのインストール、性能試験までを一通り行い、サーバ構築の一連の流れを学ぶ
サーバ仮想化技術について学びその利点と欠点を理解するサービスの負荷分散手法について学ぶ
実際のシステムについて事例を通じて理解を深める

11

STEP1 (クラウド・仮想化技術)
大規模システム構築に向けてサーバ仮想化や負荷分散、ネットワークの冗長化を利用して大規模可能なシステムの構築について学ぶ

クラウド技術の概要
クラウドサービス構成法

クラウドのアーキテクチャとその要素技術を理解する

ストレージとデータベース技術
コンテナ技術と演習
最新ネットワーク制
御技術
サービス仮想化
商用クラウドを用いたサービスの構築
統合管理技術
商用クラウドサービスの活用
ハイブリッドなシステムの構築
SDN技術

ファイルシステムからネットワークベースのストレージ、データベースの技術について理解する。
オンプレミスクラウドの構築について、IaaSとPaaSの場合を経験する
オンプレミスクラウドを構築する場合の注意点とセキュリティについて学ぶ
商用クラウドの利用方法を学び、商用クラウドを利用したシステム構築
事例について学ぶ
商用クラウドを利用して Web サービスを構築する手法について学ぶ
データベースを利用しデータ解析基盤として利用する手法について学ぶ
SDN技術の基礎を理解し、その特徴と既存ネットワークとの違いを理解する

OpenFlowを用いたネットワークアプリ
OpenFlowアプリケーションを実装できるようになる
ケーションの作成
NFV技術の概要

NFV技術の概念を理解し、その実現方法と技術課題について理解する

12

STEP1(サービス設計・自動化技術)
インフラ設計論
構築プロセスの紹介
インフラ運用・監視・管理技術

サービスを構築するにあたって必要な要件とそれを満たすコンポーネントをどう利用するか、議論を通じて理解を深める
ShowNet や大規模ネットワークを事例としたネットワーク設計論を紹介する
構築したインフラシステムを監視するための手法と、監視要件を元にした監視システムの構築について事例を通じて学ぶ
サービスインフラに対して求められるセキュリティとその注意事項について実際の事例や教材を元に学習する

サービスインフラのセキュリティ
各技術を適切に活用しサービスインフラの設計・構築・プログラミング
インフラ構築を自動化するためのツール群に関して、プログラミング言語の初歩
インフラ構築と運用の自動化を用いた設計理論を習得するを交えながら学習する(必要なプログラミング初歩を含む)
運用ツールによるインフラ構築と運用の自自動化ツールを用いてインフラの構築と運用自動化を体験する
動化
実シナリオに基づいたアーキテクチャ設計 グループを形成し、グループ単位で与えられたサービス課題を実現するためのシステムアーキテクチャについて議論を行いまとめる

13

NTTコムのAITACへの期待/関わり

14

NTTコムとして取り組むモチベーション● 人材育成○ ソフトウェアからインフラまで体系的に学べる数少ない本カリキュラ
ムにおける、講座受講や講師派遣による社員のスキルアップ○ ユーザ企業エンジニアや営業まで幅広く育成することによる、提案の円滑化や利用範囲の拡大・深化● 人脈形成○ AITAC会員企業や教育機関との交流

15

NTTコムにおける技術育成•

入社時に、少しだけ技術研修がある(今年は5日)••

今年は著名な方々を外部講師として招いた

技術開発部ではbootcampという育成制度がある•

NW/Sec/IoT/Cloud/App/DSAI
研修するの分野でそれぞれ若手が一年目に16

コンテナ技術と演習(私が担当した講義)

17

私が担当した講義•「コンテナ技術と演習」という題で講義と演習を行った

18

講義の様子19

講義を作る際に注意したこと•

多くの受講者に満足してもらいたいというモチベーション•

受講者のバックグラウンドが非常に様々という問題•

講義：コンテナの基礎からname spaceの説明まで広い範囲で講義を行い、いろいろなレベルの人に対応•

演習：ハンズオン(コピペで動く)と演習(考えないと解けない)に分けることで、幅広い層に対応

20

AITACの講師経験を通して

21

AITACの講師経験を通して● 講師として、受講者のレベル感に合わせた内容や座学・ハンズオンの構成を考えることを意識できるようになった● カリキュラム内容の策定から講師経験を通じて、育成側の難しさと責任感を強く意識○ 学生への技術広報活動を通して、ソフトウェアもインフラも両方興味あるという人は少ないことを再認識○ そもそもこのカリキュラムに参加してくるだけで両方に興味を持っている人が集まっている22

フルスタックエンジニアを育成するには23

フルスタックエンジニア•

Network/Server/Storage/Applicationに精通するエンジニア•

そんな人そうそういない•

すぐ育てられるわけもない•

AITACに参加していただける企業の中からどうやってこういう人を育成していくかを常に考えないといけない24

フルスタックエンジニア•

よく言われるのはT字型/π型人材
NW

ServerStorageApprication

この太さを育てるのがAITAC

25

おわりに

26

AITACに関わってきた率直な感想
•

受講者目線
•

フルスタックエンジニアになるための幅広い学習の第一歩としてカリキュラムの構成が優れていると思った•

各セクションのエキスパートがweb系でもEnterprise系でも必要とされるスキルを厳選しているのがよい•

同時に、講師の技術への愛が顔をだしており、人によって講義の難易度にばらつきがあるという課題は抱えている

27

最後に
•

AITACのカリキュラムを通してフルスタックなスキルを学んでいくきっかけとなって欲しい•

当然教える側としても、担当範囲だけでなく幅広く勉強していこうというモチベーションにもつながる•

カリキュラムを通して受講者や講師でのコミュニティができ、それぞれがエンジニアとして成長していきたい28

STEP2の概要

6/24/2019

高度ITアーキテクト育成協議会

29

STEP2の概要
約1ヶ⽉間、業界で活躍するインフラエンジニアや学術機関の研究者などの最先端の動向に詳しいメンターから指導を受けながら、AITACにて設定した課題にグループワークで取り組んでいただきます。
●課題の取り組み⽅- 応募者同士で2〜3名程度のグループを形成して⾏うグループワークとなります- グループワークは主にオンラインチャットを用いて⾏われ、1ヶ⽉の期間において6⽇〜8⽇程度の時間を目安に、時間を割いて参加していただきます。
●課題を取り組む期間
1ヶ⽉程度
6/24/2019

高度ITアーキテクト育成協議会

30

STEP2の概要と大まかな流れ●取り組む課題について課題は大きく分けて「初級」「中級」「上級」の3つの難易度が設定されております。
「初級」の課題から取り組んでいただき、「中級」「上級」と順番に難易度に取り組んでいただきます。

●STEP2全体の流れ
複数⼈に個⼈で⾏複数⼈に初級よる

中級

よる

上級課題

グループ

課題

グループ

課題

課題

う課題(予課題

STEP
2認定

定)

初級から始めていただき、上級課題をクリアすることでSTEP2認定となります

高度ITアーキテクト育成協議会

STEP2課題に取り組む大まかな流れ●課題一つ実施するにあたっての全体の流れ
開発・構築期間(約1ヶ⽉)
参加募集

オリエンテーション

チームごとのキックオ
フ

構築

ミーテ
ィング

修了のためのプレゼン

評価・修了

適宜メンターに状況を報告・問題点の相談
各チームでのキックオフ後、各チームごとに課題の計画・設計・構築とミーティングなどを繰り返しながらシステムを構築、最後に構築したシステムをプレゼンしてもらい、全体の評価を⾏って修了となります。

高度ITアーキテクト育成協議会

初級課題

社内コミュニケーションサイトの構築

課題7




タイトル︓ 社内コミュニケーションサイトの構築
課題の内容︓ オープンソースのソフトウェアを活用して社内コミュニケーションサイトを構築してください
課題の要件︓
 機能をサーバ（VMを使用）にインストールして社内LANから利用できるようにする。
 チャット機能 ファイル共有
 社内連絡用のWebサーバ
 VM一つの中に構築すること 使用するソフトウェアはOSSを使用すること
 チャットツール・ファイル共有についてはユーザ管理を⾏えること
 Webサーバについては複数の部署からの要求で違う環境をそれぞれ構築することを想定すること
高度ITアーキテクト育成協議会

前提条件
1. 企業規模(ユーザ数)
 中規模企業(資本⾦3億円以下 300⼈以下)
 中規模企業の平均は40.1⼈ = 従業員数は40人程度と想定する。
2. 機密データの管理⽅針の想定
 オンプレミス、または自⾝でデータの管理ができるAWSには機密情報を置いても良いこととする。

slackはslack社にデータが管理されてしまうため利用NGとする。

高度ITアーキテクト育成協議会

2017 年版 中小企業白書 (中小企業庁)

目標の設定

課題全体

 必要な要件を満たしつつ、新しい技術を学ぶ


チャット機能 メールに代わるコミュニケーション環境を作る
 Slackが使用できないのでSlackに代わるサービスを提供する


ファイル共有 自分たちでデータを管理しつつ簡単・安全に情報を共有する


社内連絡用のWebサーバ

 様々な部署が手軽にWebサーバやWebアプリケーションを利用できる環境を作る

高度ITアーキテクト育成協議会

要件定義(サービス基盤)
基本はすべてAWS上に構築する 機密データ管理条件をクリアできる
 イニシャルコストが低い
 物理スペース・電⼒・冷却・サーバなど物理作業が必要ないスケールアウトがしやすい 便利なAPIやサービスを利用できる使用したサービス

AmazonEKS
高度ITアーキテクト育成協議会

要件定義(提供するサービス・機能)
1. チャット機能
a. ブラウザベースのビジネスチャットツールをサービス提供する
b. ユーザ認証機能を提供する
c. 可用性を確保する
2. ファイル共有機能
a. ブラウザベースのファイル共有ツールをサービス提供する
b. マルウェア検知・解析機能を搭載する
c. ユーザ認証機能を提供する
d. 可用性を確保する
3. 社内連絡用のWebサーバ
a. 複数のCMS（ブログ,wiki,SNS）をサービス提供する
b. SOシステムを提供する
c. XSSなどの攻撃緩和(WAF)の導入
4. VPNサーバ
a. AWS環境と社内・リモート環境を安全に結ぶ

高度ITアーキテクト育成協議会

提供するサービス

未提供

Chat

File Share

Wiki

Blog

高度ITアーキテクト育成協議会

VPN

SNS

構成図

高度ITアーキテクト育成協議会

中級課題

IoTセンサーを用いた在席確認システムの構築

41

概要


課題の内容︓

単体でインターネットに直接接続可能なIoT機器を利用し、クラウドサービスと連動したサービスを構築する

要件︓





センサは複数個利用すること
席の着席はセンサによって自動で取得する
センサは何をつかってもよく，また、主題ではないため、センサによる在席情報取得の精度は問わない
センサデータは、サーバ（クラウド側）で収集し、データベースに保存する席の着席の状況をリアルタイムで確認できるwebシステムを作成する
パブリックなクラウドサービスと連携（マッシュアップ）するパブリックなクラウドサービスの例(IFTTT, AWS IoT Gateway, LINE Things/Notify, など)
例) 収集したセンサデータをトリガーとして、一部屋にX⼈以上着席したら自動で携帯に通知(LINE APIなど)を送る

データ収集にあたり、プライバシー・セキュリティに配慮、工夫をする
最後の成果発表時にデモできるようにシステムを構築する

高度ITアーキテクト育成協議会42

目標
オフィスの集中席の在席確認システムをつくる【現在の課題 + 期待する効果】
課題①︓座席の利用状況がアナログで管理されている座席まで⾏かないと空いているかわからない➡ 効果①︓Webから利⽤状況を確認できる
課題②︓座席の利用状況が把握できていない
利用状況を分析することができない➡ 効果②︓利⽤状況を可視化して分析できる

高度ITアーキテクト育成協議会

43

要件 vs 設計







センサは複数個利用すること
席の着席はセンサによって自動で取得する
センサは何をつかってもよく，また、主題ではないため、センサによる在席情報取得の精度は問わないセンサデータは、サーバ（クラウド側）で収集し、データベースに保存する席の着席の状況をリアルタイムで確認できるwebシステムを作成する
パブリックなクラウドサービスと連携（マッシュアップ）するパブリックなクラウドサービスの例(IFTTT, AWS IoT Gateway, LINE Things/Notify, など)
例) 収集したセンサデータをトリガーとして、一部屋にX⼈以上着席したら自動で携帯に通知(LINE APIなど)を送る

データ収集にあたり、プライバシー・セキュリティに配慮、工夫をする
最後の成果発表時にデモできるようにシステムを構築する【独自に追加】センサ⇄クラウドの拡張性を高める
サーバーレスで実現するセンサーデータを可視化する
高度ITアーキテクト育成協議会◆色分け●
IoT Sensor：青
●
AWS：赤
●
SaaS：緑●Other：黒44

全体構成図SaaSAWS

IoTセンサー
高度ITアーキテクト育成協議会

45

在席確認のロジック︓明るさセンサー

在席＝暗い

離席＝明るい椅子の背もたれに明るさセンサーを設置

高度ITアーキテクト育成協議会

46

IoTセンサー

MESH
明るさセンサーMESHハブアプリ
インストール済み
Raspberry Pi

高度ITアーキテクト育成協議会

47

AWS 実装AWS IoTCore

AWS lambda

Slack, Iruca

48

AWS Elastic
AWS DynamoDB
高度ITアーキテクト育成協議会

在籍確認（SaaS, 可視化）

高度ITアーキテクト育成協議会

STEP2の感想

6/24/2019

高度ITアーキテクト育成協議会

50

STEP2の感想
学んだこと
 他社のエンジニアとのコミュニケーションを取りながらのプロジェクト進⾏
 実務では触れることがない技術参加してよかったこと
 自由度が高い クラウド、IoTセンサ、NW機器、サーバーなど、リソースが自由に使える 要件内であれば構成はチームごとに自由 検証環境のためTry＆Errorで開発を進められる

 要件定義から開発までチームで実践的に取り組める
 STEP1の座学で学んだ内容を実践、知識の定着

 成果発表時のフィードバックで実務運用者視点でのフィードバックをもらえる

改善点 業務と並⾏して研修を進めるのは大変 本⼈のやる気と会社の理解が必要

高度ITアーキテクト育成協議会