NTTドコモR&Dの技術ブログです。

ドコモの内製チームにおけるAWS研修の事例を紹介します!

はじめに

こんにちは!NTTドコモ サービスイノベーション部ビッグデータ基盤担当で新卒2年目の中村です!

普段はメインの業務として、社内のNW系ビッグデータ分析基盤であるIDAPという内製システムの開発・運用を担当しています。

この記事を開いてくださった方は、AWSに触れたことがある、あるいはこれから学ぼうとしている方が多いと思いますが、皆さんはどのようにしてAWSについて学びましたか?

私の場合、配属先における研修で学びをスタートしましたが、その研修がとても楽しく有意義であったため、その内容や方針などを含めて本記事で紹介しようと思います!

研修名は「mini IDAP」で、冒頭で記載したIDAPから取っており、私たちのチームにおける伝統的な研修となっています。

私自身、この研修を通じて、AWSの基礎知識だけでなく、調べ方や考え方など、AWSを中心としたシステム構築のプロセス的な部分が身についたと実感しています。 また今年度は、チーム内の新入社員だけでなく、他部署の社員も参加しました。

研修を受講する側・提供する側の両方を実施した経験をもとに、内製チームにおける研修事例をシェアしたいと思います!

研修の方針

本研修は、ハンズオン形式ではなく、要件を満たすシステムを構築するという実践型研修です。 課題の具体的な中身については次項で紹介しますが、まずはこの課題への取り組み方の方針について紹介します。

1. 基本的には自力で取り組む!

この研修の目的として、AWSの知識やスキルを身につけることはもちろんですが、AWS関連を中心とした要件に対する自走力を身につけることがポイントです。そのため、自分で悩み、調べるプロセスを重視しています。具体的には、以下2点を大切にしています。

  • 先輩は「答え」ではなく「道筋」を教える!

「基本的には自力」と書くと厳しそうですが、もちろん放置されることはありません。 ただし、先輩が答えを教えることはあまりなく、「どの公式ドキュメントを確認してみよう」「どのエラーログを見てみよう」といった アプローチのアドバイス を中心に行います。

  • 納得いくまで悩んでOK!

研修期間の特権は「時間をかけて悩めること」です。私が本研修を受講した際にも、トレーナーの先輩から何度も伝えられました。時間をかけて悩むプロセスを経てこそ、先ほどのアプローチの部分が鍛えられると実感しています。実際にこの研修は厳密な期限は設けられておらず、各参加者のタイミングで終了します。

2. 一次情報を根拠として説明できるように

最近は生成AIや技術ブログを活用すれば、動くもの自体は意外とパッと作れてしまいます。 ただ本研修では、一次情報を根拠として説明できる状態を目指しています。公式ドキュメントを読み解く癖をつけることで、実務においても情報の鮮度や確かさを担保したコミュニケーションができるようになると思っています。

mini IDAPの要件

私の所属するチームでは、データ基盤の一連の流れを理解するという点に重きを置いた課題となっています。

具体的には、模擬データを取得し、変換処理、そしてDWHにデータ投入、最後にクライアントからデータを確認できるようにする、という一連のフローを構築します。

実際の課題スライドを少し要約したものがこちらです!

※ 一部Snowflakeの内容も含まれています(赤文字箇所)

■ システムの基本フロー

  • データ生成(EC2):データを生成し、圧縮してデータ格納部へ
  • データ収集(S3→Lambda):データ格納をトリガーにETL処理を実行
  • データ格納・分析(S3/Snowflake):加工済みデータをデータレイクとDWHに格納し、クライアントから分析可能な状態に

この課題のポイントは「必要なリソースを用いて構築する」ではなく、「可能な限りセキュリティレベルを高めること」で、具体的には以下の2点です。

1. 可能な限り絞ったアクセス制御を実施する

今回の課題の場合、以下のようなリソースに対し、最小権限の原則に基づいた構築が求められます。

  • IAMポリシー:EC2やLambdaのPolicy
  • リソースポリシー:S3やKMS、Secrets Manager、VPC Endpoint
  • ネットワーク:Security Group、Network ACL

これらの実装を通じて、アイデンティティポリシーとリソースポリシーの違いや、それらの評価論理、デフォルト設定、Condition句の考え方などを深く理解することができます。

バケットポリシーを厳しくしすぎて、自分自身も閉め出してしまうといったことが毎年のお決まりパターンだったりします。

また、Security GroupやNetwork ACLの違いから、各リソースが宛先のリソースへの経路確保のためにどのような設定が必要なのかなどを理解する必要があります。

2. 基本的には閉域網で構築する

今回の課題では基本的にインターネットへ疎通できない構成で構築することが求められます。

詳細は割愛しますが、主にデータ生成部で、閉域網ならではの制約と学びがあったりします。

※ Snowflakeへのアクセスは共有(既存)のTransit gateway経由でFirewall Manager経由

アーキテクチャの一例

あくまで一例ですが、私が構築したアーキテクチャを紹介します。

受講者の声

今年度の新入社員の方にも話を聞いてみました!

Tさん 「研修を通じて、AWSについて幅広く触れることができて非常に良い経験だったと感じています。 基本的にトラブルの解決は自力で、先輩社員からの手助けはあまりないため厳しそうにも思いますが、むしろゲーム感覚で楽しむことができました」

Hさん 「実際にAWSを用いた構築を行うことで、各コンポーネント間の連携やデータフローへの理解を深めることができました。特に、トラブルシューティングを通じて、インフラ領域における問題の原因切り分け能力が向上しました!」

終わりに

ここまで読んでいただきありがとうございました!

本記事では、NTTドコモのサービスイノベーション部ビッグデータ基盤担当が独自で実施しているAWS研修についてご紹介しました!

個人的にも、非常に勉強になった研修でしたし、実際の業務でAWS関連に携わる上での土台となっていると感じたので、今回記事としてシェアさせていただきました。 チームもしくは個人として内製化を進めていきたい!という方々に少しでも参考になれば幸いです!!

🎅🎅投稿日が12/24ということでメリークリスマス🎅🎅