株式会社アドバン / エンジニア
◆上位SEO 仮想通貨WEBサイト復旧
▼依頼 既存サイト内でDBのデータを表示ができないから、早期で直して欲しい ▼調査 Rubyで構築されたAPIサーバーに、Rubyを使用するために必要な環境が揃っていないことと、 Rubyコードが破損していたことが判明 (pumaが入っておらず、RubyのコードではDBデータからAPI作成を行う部分が抜けていた) ▼調査方法 Route53からドメインが正しく設定されているか確認 → 問題なし ロードバランサーからのヘルスチェックがエラー → EC2側と判断 EC2は起動されている → 内部設定と判断 コマンドで環境が構築されているか実行 → pumaが入っていないことが判明 RubyファイルのAPI作成部分が存在していなかった → 復旧後の調査でDBデータを取得する部分は見つけられたが、 それを整形している部分が見当たらなかった ▼原因 元々作成した者がいなくなっており、その後引き継いだ者がおらず、 エンジニアでないクライアント本人が、EC2のサーバーを削除/再構築し、 前任者がGithubに残していた古いバージョンのRubyコードをサーバーにあげていたことにより発生 ▼対応 クライアントから早期復旧が最重要事項だったため、慣れているPHPへ言語の変更することで、 サイトの復旧(プログラム作成時間)まで4時間で対応 ▼担当範囲 クライアントへのヒヤリングを行い、状態の把握を行う。 クライアント自身で、削除/再構築を行ったことが判明したため、おおよその見当をつけた。 また、AWSアカウント(IAM)の作成方法のドキュメントを作成し、クライアントへ依頼。 ヒヤリング後、上記調査方法を行い、原因を究明。 新規EC2へLAMP環境の構築を行い、RDS連携,API出力を行い、サイトを復旧。 ▼修正内容 ●環境 ・AWSEC2の構築 ┣Linax ┣Apach ┣MySQL ┗PHP ・各種AWS設定 ┣ELBとEC2の繋ぎこみ ┗セキュリティグループ設定 ●機能 ・DB接続/データ取得 ・データの整形/出力 ▼使用技術 フローが、「DB接続→データ取得→整形→出力」と単純なものだったため、PHPのみで実装。 DBデータが大容量だったため、SELECT文のJOIN方法やDBのインデックスを意識した。 ▼なぜPHP? 本来ならばRubyで復旧すべき事柄だが、私がRubyをやったことがなく、 今回の依頼が早期復旧が最重要事項だったため、調べながら復旧していくRubyよりも早くできるため、 PHPを選択しました。 ▼総括 クライアントとのやりとりをする上で、非エンジニアにいかに、理解してもらうか説明するかがすごく苦労したプロジェクトでした。 極力専門用語を使用せず、噛み砕き、必要な資料を用意することに注力しました。 また、速度重視のプロジェクトであったため、技術的に拘りたいところもあったが、目を瞑るところには目を瞑り、折り合いをつけた提案と開発を行うことができた。