[レポート] ネットワークの問題に対するトラブルシューティングや根本原因の調査などを行うワークショップに参加をしました #AWSreInvent #NET302-R1

2024.01.13

こんにちは、SHIOです。

ネットワーク関連の問題に対するトラブルシューティングや根本原因の調査などを行うワークショップに参加をしましたので、そちらの様子をレポートします。

ワークショップ名:
NET302-R1 | Become a network support expert: We break it, you fix it

概要

In this workshop, you assume the role of a network support engineer at a fictitious company. Your task is to solve various issues in your AWS network environment and help your colleagues with network tasks. Troubleshoot and deploy fixes to several networking problems, perform root cause analysis, and automate your network using AWS features and services as well as standard network tools. Grow your troubleshooting skills, use AWS services and features in new ways, and learn more about operating a network on AWS. You must bring your laptop to participate.

 

このワークショップでは、あなたは架空の会社のネットワークサポートエンジニアの役割を引き受けます。あなたのタスクは、AWSネットワーク環境の様々な問題を解決し、ネットワークタスクで同僚を助けることです。AWSの機能やサービス、標準的なネットワークツールを使用して、トラブルシューティングやネットワーク問題の修正、根本原因の分析、ネットワークの自動化を行います。トラブルシューティングのスキルを高め、AWSのサービスと機能を新しい方法で使用し、AWS上のネットワーク運用についてより深く学びます。参加にはノートパソコンが必要です。

レポート

アジェンダ

  • What are we playing with? (Overview of the environment and services)
  • How are we playing with it? (Introduction to the labs)
  • Alright, so how do I get started? (Access the workshop environment)
  • Fix the environment!

ワークシップ

架空の会社のネットワークエンジニアとなり、AWS ネットワーク環境におけるネットワーク関連のさまざまな問題を解決する、というワークショップです。

  • トラブルシューティング
  • AWSのツールを使用し根本原因の分析
  • ログをレビューし、トラブルシューティング能力を向上

よくあるステップバイステップのワークショップではなく、自分の持っている現在の知識とラボに書かれているヒントを元に課題に取り組みます。近くに座った人と相談しながら進めてもOKでした。

ラボ

すべてのラボは CloudWatch にあるため、開始するために CloudWatch コンソールへ移動します。あらかじめ用意されているカスタム CloudWatch スクリプト実行し、ラボが行えるようにします。

こちらがラボの画面です。

  1. Menu
    Intro | Lab1 | Lab2 ... と並んでいる箇所がメニューです。ここでラボを切り替えることができます。
    任意の順番でできますが、1から順々に進めていくことが推奨されていました。

  2. Hint
    いくつかのヒントが用意されており、Hint ボタンをクリックすると各ヒントが表示されます。
    ヒントはなるべく最初は見ないで挑戦してください、とのことでしたがヒントがないと難しくて進まない課題が多々あり...。全然違うところを調べたりしていたので、ヒントにはかなり助けてもらいました。

  3. Solution
    解決策が記載されています。
    自分で調べても分からず、 Hint を確認しても解決できなくて行き詰まってしまったときに確認します。

  4. Lab status
    ラボの進捗状況を確認できます。問題をクリアすると赤色から緑色に代わり COMPLETED と表示されます。Hint や Solution を読まずにクリアできた場合でも、最後に Hint を読むことが推奨されていました。 Hint には自分では考えつかなかった内容や、役立つ情報が記載されている可能性があるためです。

  5. Overview
    トラブルシューティングを行うアプリケーション、システム、環境の背景についての説明です。

  6. Problem
    ラボで解決するべき内容が記載されています。

ラボは 1〜7 までありました。ネットワーク構成図があるため、そちらを確認しつつ問題を解いていきます。

以下に各ラボの問題を簡単に紹介していきます。

Lab 1: Move to Centralized Egress Pattern

AWS は最近、パブリック IPV4 の価格変更を発表しました。この変更の影響を確認するために、パブリック IPv4 の使用状況に関する情報を入手し、チームと共有する必要があります。
また、プライベートサブネットのインスタンスが Central Egress NAT ゲートウェイ経由でインターネットへ到達し、個々のスポーク VPC に NAT がないように Central Egress 設計への移行を支援してください。

Lab 2: Restrict Access to Specific Domains

スポーク VPC のプライベートサブネットのリソースは、Transit Gateway と Centralized Egress VPC を使用してインターネットに接続ができるが、組織の最新のセキュリティ規制では特定のドメイン以外のアクセスを拒否したいです。同じ NAT ゲートウェイとインターネットゲートウェイを使用している Centralized Egree VPC のプライベートサブネット内にある EC2 インスタンスも特定のドメインへのアクセスを制限する必要があります。
プライベートサブネットのインスタンスが、github.com, amazonaws.com のみにアクセスでき、他のドメインにはアクセスできないようにしてください。

Lab 3: East West Traffic Inspection

WebApp VPC のプライベートインスタンスが、IOT PVC の IOT バックエンドインスタンスに接続できません。WebApp VPC のインスタンスがポート8080で IOT バックエンドインスタンスに接続できるように問題を特定し、修正をしてください。

Lab 4: Encrypt and Decryption problem

社内の CMS サーバは正常にデータベース接続が行えていますが、データを照会する際におかしなエラーが発生します。CMS サーバがデータを複合化できないようです。AWS KMS を使用して暗号化を実装したエンジニアは IAM パーミッションが正しいことを確認しており、問題はネットワークレイヤーにある可能性があります。原因を特定してください。

Lab 5: Download Amazon Linux 2 packages from S3 via Centralized S3 Interface Endpoint

Air gapped サービスインスタンスが、Central VPC の S3 インターフェースエンドポイント経由で対象バケットにアクセスができません。原因を特定してください。

Lab 6: Network segmentation

Transit ゲートウェイのフローログによると、Air gapped VPC にあるリソースが Central VPC 以外の VPC にトラフィックをルーティングしているようです。これは本来なら可能ではないはずです。原因を特定してください。

Lab 7: Network LoadBalancer in Security Group

Webapp チームは、Network Load balancer に新しいセキュリティグループを作成しましたが、NLB にセキュリティグループをアタッチすることができません。
作成したセキュリティグループを NLB にアタッチし、Webapp インスタンスのセキュリティグループのルールを更新して、NLB セキュリティグループからのトラフィックのみを許可するようにしてください。

※ 実際のラボでは問題の背景、構成図、各ラボで使用する AWS サービスなども記載されています。それぞれの情報を確認しつつ、課題に取り組んでいきます。

ワークショップを自分の環境で行うには?

こちらのワークショップは、AWS がワークショップ用の AWS アカウントを提供する AWS イベントで実行されるように設計されているようです。しかし、AWS が用意している Cloudformation テンプレートをデプロイすることで自分の AWS アカウントでもワークショップをデプロイして実行できるとのことでした。

aws workshop studio にて本ワークショップを見つけましたのでこちらで共有します。

Welcome to the Become a network expert: We break it, you fix it workshop!

ワークショップには5つのVPCが必要です。Cloudformation テンプレートは、すべてのリージョンのデフォルト VPC を自動的に削除する とのことですので、ワークショップを実施する場合は専用の AWS アカウントでお試しください。

We recommend that you create this workshop in a dedicated AWS account as the workshop requires five VPCs, which is the default limit of number of VPCs in a region for an account. The Cloudformation template will automatically delete your Default VPCs across all regions.

詳細についてはこちらをご確認ください。

Run in your own AWS account

まとめ

今まで参加したことのあるワークショップとは違い、課題を行なってクリアしていくという内容が面白くて参加をしました。トラブルシューティングは普段から行なっているので、自分の知識や調査方法を駆使して挑みましたが思ってもいなかったところが原因だったり、利用したことのないツールを使ってみることで早く問題が解決できたりと、新しい気づきが多くとても勉強になりました。自信を持って、課題をクリアした!と思っても、ラボステータスが COMPLETE に変わらなかったときの絶望感、なかなか楽しかったです(笑)

使ったことのない AWS サービスを知る良い機会でもあり、何より調査能力を鍛える良いワークショップだと思います。2時間のワークショップではありますが、時間が全く足りずラボ3までしか出来なかったので、また挑戦する予定です。

興味のある方は是非トライしてみてください。自分で行う場合は、どれくらいのリソースがテンプレートによって起動されるのか事前に確認した方が良いかと思います。何かのAWSイベントでこちらのワークショップが開催される場合は、参加をおすすめします!

レポートは以上となります。
ここまで読んで頂きありがとうございました!