Category: 在庫管理の運用保守
-
プロダクトの理解(要件定義)
概要 産業用ドローンを開発するベンチャー企業の生産部品の在庫管理システム新規開発プロジェクトの機能要件と非機能要件です。 機能要件 これらの機能要件を満たすことで、生産部品の在庫管理システムが効率的に運用され、企業の生産プロセスを支援し、品質向上やコスト削減に貢献します。 非機能要件 これらの非機能要件を満たすことで、生産部品の在庫管理システムが高品質で信頼性の高いものとなり、ビジネスの運用を円滑に支援できるようになります。
-
セキュリティテストの実施
品質保証として、セキュリティテストを実施することになりました。Javaのアプリケーションに脆弱性が存在し対策がされているか検証します。 今回、セキュリティ診断ツール「OWASP ZAP(オワスプ・ザップ)」を用いて、Webアプリケーションの脆弱性をチェックします。 タスク内容 OWASP ZAPの導入 OWASP ZAP の導入手順は下記を参照してください。 https://cybersecurity-jp.com/column/67851 https://qiita.com/Pell/items/0c0cd6f013476aecf253 期待される成果 OWASP ZAPの実施レポート(キャプチャでOK)上記、成果物が完成したら、レビュー依頼を行ってください。
-
開発環境構築
ヒント 以下の前提知識が必要となります。わからない技術がある場合、事前に調べてから取り組んでください。 リポジトリの作成 https://github.com/dotlife-dev/lxp-practical-project/tree/main/drone を自身のリポジトリに fork してください。 https://github.com/dotlife-dev/lxp-practical-project/tree/main/drone に対して commit や merge request などは絶対にしないでください。 リポジトリのクーロン $ git clone {{ リポジトリURL }} で自身の環境にリポジトリをクーロンしてください。 ローカル環境 README に記載されている方法でローカル環境を構築してください。 https://github.com/dotlife-dev/lxp-practical-project/blob/main/drone/README.md http://localhost:8080/ をブラウザで立ち上げて、画面が表示されると環境構築完了です。 これから、このJavaのアプリケーションのインフラ構築をおこなっていただきます。
-
デプロイ環境の構築(ECS)
開発タスク 基本編では、AWS App Runner を用いてインフラ環境を構築しました。ここでは、AWSにインフラを構築、AWS Fargate を使用して Amazon ECS に Java マイクロサービスをデプロイしてください。ドローンベンチャー企業の生産部品の在庫管理システムのAWS構成図を示します。 デプロイ手順 https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-java-microservices-on-amazon-ecs-using-amazon-ecr-and-aws-fargate.html を参照して、AWSにインフラを構築、AWS Fargate を使用して Amazon ECS に Java マイクロサービスをデプロイしてください。 期待する成果 AWS Fargate を使用して Amazon ECS に Java マイクロサービスがデプロイできていること。
-
インフラ構築手順書の作成
これまで、サーバー、データベース、ネットワークの構築、セキュリティの設定、デプロイ環境の構築、ロギングとモニタリングの設定、インフラコスト管理の設定のタスクを実施していただきました。クライアント企業に納品する設計資料として、インフラ構築手順書を作成してください。 開発タスク インフラ構築手順書 サーバー、データベース、ネットワークの構築、セキュリティの設定、デプロイ環境の構築、ロギングとモニタリングの設定、インフラコスト管理の設定をドキュメントにまとめてください。 期待する成果 インフラ構築手順書上記、成果物が完成したら、レビュー依頼を行ってください。 参考 https://dev.classmethod.jp/articles/non-97-operation-manual/
-
インフラコスト管理の設定
非機能要件に「インフラコストの最適化:インフラのコストを最適化することによりサービスの持続可能性を高めること」とあり、こちらをAWSで実現してください。 開発タスク AWS利用費の監視 サービス運用中、多くのユーザーが利用します。AWSの利用状況を監視するために、AWS Billing and Cost Management を利用します。詳しくはAWS公式ページを参照してください。 https://docs.aws.amazon.com/ja_jp/cost-management/latest/userguide/what-is-costmanagement.html Cost Explorer でレポーティング 「請求とコスト管理」 > 「コスト分析とレポート」 > 「Cost Explorer」でレポートを作成、保存してください。 その際、サービス、リージョンで絞り込んでください。 データは、レポートとしてCSVで出力できます。 予算超過アラート AWSの予算を設定して、予算超過のタイミングで管理者にメールでアラートを通知してください。 「請求とコスト管理」 > 「予算」 でアラートを設定してください。 ※今回は100円など少額にしてください。実務では顧客から予算をヒアリングして設定します。 予算は利用想定ユーザー数などから計算します。 期待する成果 Cost Explorer でコストを監視、顧客からの要望があればレポート・CSVデータで出力できること。 予算超過したら管理者にアラートがメールで通知されること。
-
ロギングとモニタリングの設定
非機能要件に「ログと監査:システムへのアクセス、変更、操作などのアクティビティをログとして記録し、適切に監査可能な形式で保持すること」とあり、こちらをAWSで実現してください。 開発タスク CloudWatch による利用ログの監視 過度な利用やサーバー・データベースの負荷を監視するために CloudWatch でモリタリング、必要に応じてアラートを通知してください。 ECSやAurora/RDSなどのログは、左メニューの「ロググループ」で確認できます。CloudWacth の詳細は下記動画を参照ください。 CloudWatch のダッシュボード作成 CloudWatch でメトリクスの監視ダッシュボードを作成してください。 ダッシュボードの作成方法はAWSの公式ホームページを参照してください。 https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/create_dashboard.html ダッシュボードは、システムリソースメトリクスについてはウィジェットにしてください。 ダッシュボードにあるとよいものは、 次にログに関する情報もダッシュボードに掲載してください。Cloudwatch logsのクエリを使って、例えばエラーログの数を集計できます。 CloudTrail での監査 CloudTrail で特定ユーザーの利用ログをモニタリングしてください。 期待する成果 CloudWatch のダッシュボード画面が制作できていること。 ダッシュボードには、ECRやRDS/Auroraのデータベースのメトリクスが表示されていること。
-
サーバー、データベース、ネットワークの構築、セキュリティの設定
開発タスク 先程、ドローンベンチャー企業の生産部品の在庫管理システムのAWS構成図を示しました。このアーキテクチャに従い、AWSにインフラを構築、AWS Fargate を使用して Amazon ECS に Java マイクロサービスをデプロイしてください。 構築するAWSサービス ※ データベースとして、RDS / Aurora の PostgreSQL を用いますが、今回は運営側ですでに構築したAuroraに利用するため、このタスクで構築する必要はありません。https://github.com/dotlife-dev/lxp-practical-project/blob/main/drone/dev/src/main/resources/application.properties にアクセス情報を記載しています。 構築手順 https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/deploy-java-microservices-on-amazon-ecs-using-amazon-ecr-and-aws-fargate.html を参照して、AWSにインフラを構築、AWS Fargate を使用して Amazon ECS に Java マイクロサービスをデプロイしてください。 ツール 期待する成果 Java マイクロサービスをデプロイするために、AWS Fargate を使用した Amazon ECS が構築できていること。 VPCなど必要なネットワーク設定ができていること。
-
アーキテクチャ
アーキテクチャ AWS構成図 ドローンベンチャー企業の生産部品の在庫管理システムのAWS構成図です。 AWS Fargate を使用して Amazon Elastic Container Service (Amazon ECS) にコンテナ化された Java マイクロサービスをデプロイします。コンテナ管理にAmazon Elastic Container Registry (Amazon ECR) を使用します。AWS Fargate を使用して Amazon ECS に Java マイクロサービスをデプロイします。 テクノロジースタック ECS(Elastic Container Service) サーバーとして、Amazon ECS(Elastic Container Service)を用います。 RDS / Aurora データベースとして、RDS / Aurora の PostgreSQL を用います。 ※ 今回は運営側ですでに構築したAuroraに利用するため、このタスクで構築する必要はありません。 https://github.com/dotlife-dev/lxp-practical-project/blob/main/drone/dev/src/main/resources/application.properties にアクセス情報を記載しています。 ソーステクノロジースタック Java マイクロサービス (Spring Boot で実装されたもの)…
-
ミッションの理解
産業用ドローンを開発するベンチャー企業の生産部品の在庫管理システム新規開発プロジェクトに参加していただきます。 あなたの役割はインフラエンジニアで、ミッションは「サービスの信頼性や安定性を確保する」です。 具体的には、以下のインフラ構築、運用保守業務に従事していただきます。 ・サーバー、データベース、ネットワークの構築 ・セキュリティの設定 ・デプロイ環境(CI・CD)の構築 ・ロギングとモニタリングの設定 ・インフラコスト管理の設定 ・セキュリティテストの実施 ・自動化とインフラのコード化 ・障害対応(アクセスログの調査) ・Linuxコマンドの利用 ・運用報告書の作成 インフラエンジニアには、以下の経験を有している前提です。