はじめに
この記事はRandstad Advent Calendar 2018 の1日目の記事です。今日からRandstad JapanのIT部門のメンバーが毎日なにかを書いていきます。
初日は、今年実施した大きいイベントの一つである、全サーバーをAWSに引越したプロジェクトについて振り返りの記事を書きます。既存サーバーをAWSのEC2へ移行する際の注意点や考慮すべき点について、みなさまの参考になる記事になれば嬉しいです。
概要
「各国のRandstadのオペレーションカンパニーの全サーバーをAWSに移行し一元管理する」という方針の下、Randstad Japanもゴリ押しでAWS移行を完了させ、データセンター解約を実現した時のお話です。
移行計画
コスト
追加ライセンスや外部サービスの利用コスト、外部ベンダーに協力が必要なシステムに関しては委託費用など、最初に想定できるコストについては一通り予算を確保しました。
体制
本プロジェクトはアプリケーションチームとインフラチームの2チーム体制で構成され、アプリケーションチームは、PM(私)と関連アプリケーションの有識者3名の計4名でした。必要なメンバーをアサインするというよりは、それ以上リソースを割けない状況のためこうなりました。なおかつ、みんな通常業務と掛け持ちで対応(笑)
スケジュール
メンバー全員がこのようなプロジェクトは初めてということもあり、対象となるシステムごとに各担当者がざっくりと移行期間を見積り、各メンバーが同時期に複数システムを担当することが無いよう並べる、というシンプルな組み方でスケジュールを作成しました。振り返ってみると、割と妥当なスケジュールでした。後に起こる想定外のトラブルがなければ。。。
移行プロセス
以下の図の通り、移行プロセスは単純です。
国外にいるインフラチームと、ほぼ完全分業制で進めた点は弊社ならではの特徴かもしれません。
AWSへの移行を実施してみて学んだこと
社内組織やプロジェクトの都合により、インフラのポリシー固めを並行して行ったということもあり、結果として移行方針がブレ、想定外のトラブルに見舞われました。それらの中でも印象に残った想定外を記載しておきます。
AIX→SUSE Linuxへ変更したら、C言語のバッチがエラー連発
AWSのEC2が対応していないAIX上で稼働しているシステムはSUSE Linuxに移行することになったのですが、AIXで問題なく動いていたソースコードがSUSE Linuxだと動かないというトラブルが。。
トライアンドエラーで壮絶なモグラ叩き大会を実施した結果、エラーの種類は90弱、ソースコードの修正箇所は200箇所以上、ほぼ全テストとなりました。。
※修正リストは多すぎてアップできないので、興味がある方はご連絡ください。
修正対象の中には、もともとC言語のコーディングとしてはNGですが、AIXでは問題なく実行できてしまっていたというケースも数多くありました。AIXさん、寛容過ぎます。。「甘やかすという事は本人ためにならない」ということに改めて気付かされた瞬間でした。
AWSに移行することで発生した想定外のコスト増
あるミドルウェアにおいて、調査及びベンダーへの確認の結果、
1.現バージョンではAWSで動作しないのでバージョンアップが必要です
2.バージョンアップをするとライセンスのカウント方法が変わります
3.ということで、ライセンスの追加購入が必要です
という3段論法で追加コストを決断させられました。反論の余地がありません。ぐうの音も出ません。。
EOLが迫るソフトウェアのバージョンアップに伴うテスト増
テストに時間をかけられるタイミングはなかなか無いので、これを機にバージョンアップを決断しました。一旦、現状のまま移行してからバージョンアップ、という選択肢もありましたが、それは問題を先延ばしするだけです。鉄鋼王として知られるアンドリュー・カーネギーも名言を残しています。「いつやるか?今でしょ!」
結果として色々な壁にぶち当たりました。AWSへの移行プロジェクト、ちょっとナメてました。大変だった反面、学ぶことも多いプロジェクトであったとも思います。もし私がもう一度AWS移行を任されたら、以下は絶対実施します。
・インフラのポリシーや移行方針はブレないよう調整する。
・ソフト/OSバージョンアップのための調査およびPoCの実施フェーズを設ける。
・スケジュールと予算のバッファをめっちゃ多少多めに積む。
最後に
初参加1日目の記事の締めとして、事業会社の情シス部門という、ガチの技術者集団とは若干毛色の違う私達が、Qiitaに記事を書く意義について触れたいと思います。
私達は情シス部門に所属しておりますので、ゴリゴリの技術記事というよりは、情シスならではの観点で情報を発信するというスタンスでコミュニティに貢献していければと考えてます。
※Randstadの皆さん、ちょっとだけハードル下げておきました(笑)
そして、私達がこのような場で記事を書くことによって得られる気づきはやはり、
自分たちは世の中のエンジニアと同じ土俵にいることを自覚する
ということで、これは今の私達にとって一番重要だと考えてます。今回のAdvent Calendarへの初参加が、RandstadのITメンバーのレベルアップに繋がる事を願い、1日目の記事を終わらせていただきます。