エンジニアのsugicyanです。
好きなAWSのサービスはCodeシリーズです。
アニメイトタイムズのサーバーをAWS環境に移管したので、挨拶をAWSっぽくしてみました。
サーバー移管自体は6/11(日)に実施したのですが、そこから安定稼働させるまでに1ヶ月くらいかかり、終わった後は燃え尽きたのかなかなか筆が進まずブログを書くのが遅くなってしまいました。
サーバー移管の際に個人的に意識したこと
旧環境ではインフラ面がブラックボックスで悩む事が多かったため、インフラ面の見える化を意識しました。
先に言ってしまうと技術面では、 Docker CloudFormation の採用によって多くの部分が可視化されました。
移管までの作業では気づきませんでしたが、終わったあと振り返ってみると技術検討時では考えていなかった部分でも良くなっている部分があり、やってよかったのと思いました。
新旧環境の違い
前 | 後 | |
---|---|---|
クラウド | IDCF | AWS |
サーバー構成 | シングル | マルチ |
OS | CentOS 5 | Debian 8 (jessie) |
言語 | php5.3 | php5.6 |
メール | postfix | SendGrid |
ファイルアップロード | FTP | 専用CMSの作成 |
画像配信 | apache | s3 + CloudFront |
新環境で採用した主なAWSのサービス
- ECS
- CloudFormation
- CodePipeline
- CodeBuild
- S3
- CloudFront
- ElastiCache(redis)
- RDS(MySQL)
- ALB
移管理由
システム的な問題は、 CentOS 5 EOL
php5.3
のサポート切れ です。
ですが、それ以上に シングルサーバー構成の限界 を感じていました。
障害が起きてもapacheの再起動などやれることがほとんどありません。
また、メンテナンスをしたくても全サービスを停止しなければならなくエンジニアだけでなく、ライターや編集者にも負担が大きかったです。
旧環境
1つの環境に以下5つのサーバーがそれぞれ prod
dev
環境の2つを持っていて、計10サーバー動いていました。
- pc
- sp
- mobile
- licence
- admin
- admin(外部ライター用)
さらに
- MySQL
- 画像配信サーバー
も動いているような状態です。
新環境
今まで共存していたそれぞれのアプリケーションがスケールしやすい構成にしました。
管理画面も別サーバーに切り出したことでメンテナンス中も記事の作成/更新ができるようになっています。
移管中だからできること
システムの移管のための環境を構築しリリースするまでの間システムは止まってしまっても問題がないので、今まで手を付けられない下記項目を実施することができました。
- 使われていないと思われていたデットコードを大幅に削除
- 既存の放置されていたバグの改善
移管後に感じたこと
移管前はインフラ周りの設定などのドキュメントなどがなくブラックボックスでしたが、Docker・ CloudFormationの採用によりインフラ面が可視化された状態になりました。
- Docker採用により
dockerfile
でインストールされているライブラリが明確になった - CloudFormationでインフラの可視化がされた
- devやstgといった環境の複製が容易になった
ローカルで動作検証したいという理由でDockerを採用しました。
移管を終えてみると、ローカルで確認できるのも便利なのですが、それ以上にインストールされているライブラリが明確化されたのが大きいなと感じました。
逆にCloudFormationのテンプレートによるインフラの管理は良い点もあれば悪い点もあるなと感じるところもあります。
たとえば、セキュリティグループに許可するIPアドレスを1つ追加するにも5~10分程度掛かってしまいます。
ですが、そのデメリットを差し引いても、インフラのコード化をするということにはメリットが多いと感じ導入しています。
運用してみて感じることは、
- 全てをCloudFormationで管理するよりは管理する範囲を適宜見直していくことが大切
- 機能によっては
DeletionPolicy: Retain
の属性を付けて、CloudFormationで最初に構築して以降はCloudFormationの管理から外してあげることも必要- RedisやECSの管理周りは検証したりしていますが、まだベストな方法を見つけられていません
以上がレガシーな環境をAWS化する簡単な道のりでした。
アニメイトラボではこれからもアニメイトタイムズの改善を行い、よりよいメディアサイトを構築していくので、ご注目下さい。