※業務委託で参画したプロジェクト
【プロジェクト概要】
ネットショップ開設サービスで提供するFTP機能があり、現状はプライベートクラウドでProFTPDで提供されている。FTP自体は古いプロトコルだが、ユーザーに影響を与えずそのままの仕様でAWSへ移設する。AWSでのアーキテクチャ設計、実装、運用までを担当した。
【新FTPサーバの構築】
ECS(Fargate),Route53, Transfer Family, S3で刷新。マネージドとしてTransfer Familyがあるが、独自機能(容量制限)を実現するため、その前段に独自にGoで実装したFTP-Proxyを配置した。これは極力RFCに準拠した形で実装した。
旧システムではFTPサーバが単一障害点であったが、AWS環境ではDNSラウンドロビン+複数のECSタスクで冗長構成を実現(FTPの特性上NLBは実は使えない)。さらに、Blue/Greenデプロイメントの仕組みを構築して、スタンバイ環境でインテグレーションテストを通過したバージョンのみリリースできる堅牢な機構を実現した。
【運用・監視】
AWSリソースはTerraformで構成を管理している(ECS以外)。また、Managed Prometheus+ADOT+Grafanaでの監視を構築。ftp-proxyのSLI/SLOを定義し、OTELメトリクスを実装。ECS Container Insightsのメトリクスも組み合わせて、多面的な運用監視を実現。
【コンテンツ配信面】
FTPアップロードされたコンテンツは、CloudFront、CloudFront Functions+KVS、S3構成で配信している。
ユーザーのロック、退会によってコンテンツの配信を止めるため、CloudFront Functions+KVSでACLを実装して制御している。KVSキーの制限が上限1000個の制限があるため、データ構造を工夫してシャーディングを実装し、多くのユーザーコンテンツのACL制御を実現した。
【AIコーディング】
後半はClaude Codeが台頭したため、ほぼVibe Codingでこなした。スラッシュコマンドやエージェントの整備、Serenaの活用、Runbook・PlaybookのMCP提供なども行った。