はじめに
「なんとかなれ~」がマイブームな、とあるエンジニアです
AlibabaCloudに稼働中のとあるサービスを移行する機会があったので共有させていただきます。
このタイミングで AlibabaCloud に移行することになった理由や移行する際に苦労したことなどについて書きます。
移行する理由
簡潔に言うと、社内事情的なもの(上からの圧)です。
半分冗談ですが、メインの目的はコスト削減です。
Aucfan では AWS をメインに使っていますが、移行対象のサービスは何故か Az○re で稼働しています。私が入る以前に構築されていました。
(あなたの会社にもそんなことありませんか?)
Azureで稼働中のサービスにかかっているコストが高く、AWS に移行できないか以前検討されたようですが、移行しても安くならないということで断念したそうです
時を経て、Alibaba Cloud さんとのご縁があり、コストが削減できそう ということで移行することになりました
まじか...。本当にやるんだ...。そんな気持ちでした。
どれぐらい下がるのか?
結論から言うと下がりましたが、具体的な金額は 大人の事情 で記載出来ません。話せません。すみません。
(それっぽい感じの韻?を踏んでみた)
軽い冗談はさておき、そもそも何にコストがかかっているのか整理すると以下の3つです。
- SQL Database
- General Block Blob
- VM
この中で特に掛かっているのが SQL Database です。
AWSに移行するのを断念したのは、おそらくライセンス料絡みだったと思います。
MySQL や PostgreSQL といったオープンソースに比べると割高になってしまう SQL Database さんですが、
昨年、AWSがオープンソースとして提供した Babelfish for PostgreSQL を使うことで、技術的にコストを下げることが可能になりました。
技術面でコストを下げれるのであればエンジニアにとっては嬉しいことですし、パフォーマンスに問題がなければ、SQL Database から Babelfish for PostgreSQL に移行を検討すべきだと思います。
今回は Babelfish for PostgreSQL を使ってコストを下げました 的な話をしたかったんですが、やっていません。
検証する時間が取れませんでした...。
ちなみに宣伝とかではないですが、Alibaba Cloud でも利用が可能です。
普段の業務は、RDSを構築するだけなので、いづれは触ってみたいものです。
Alibaba Cloudってどうなの?
コスト削減が出来るとはいえ、色々と不安がありますよね。
特にセキュリティ関連ですかね...。
でも実績を見れば、少しその不安が減るかもしれません。
実績
公式: https://www.alibaba.co.jp/service/alibabacloud/
- 国際オリンピック委員会(IOC)とのパートナーシップ契約を締結している(2018年から2028年)
- 2020年の東京オリンピックでも使われていたんですね...(知らなかった)
- W11(11月11日,独身の日) を支えている
- まだ多くはないですが、日本の大手企業も使用している
何をもって安心できるかは要件などで変わりますが、不安な部分があるのであれば Alibaba Cloud さんへ問い合わせるのが一番です。
使用感
忖度無しで書きます。
- Webコンソールは AWS と似た感じで、使いづらいことはない(慣れの問題)
- 日本語も対応しているが、翻訳が若干おかしい部分があるため英語を使ったほうが無難
- ユーザーの技術記事が少なく、公式ドキュメントを見るか自分で対処しないといけない
Alibaba Cloud の日本支部?の方のお話では、AWSライクに作られているそうです。
サービス名やパラメータ名が違えど、AWSを触っていれば雰囲気で分かりました。
当然ですが、サービスの機能が全く同じではないので注意が必要です。
その中でも Resource Orchestration Service (ROS) というサービスに関して共有したいと思います。
Resource Orchestration Service (ROS)
ROS は AWS でいう CloudFormation と同じようなサービスです
Aucfan では、多くのリソースを CloudFormation で管理しているため、Alibaba Cloud でも同様に出来たらいいと思っていたんですが、簡単にはいきませんでした
例えば、
- Auto Scaling と Server Group の紐づけが出来ない
Server Group は AWS でいう Target Group のことですが、ROSでは紐づけが出来ない...。それなら手動でやるよね...。 - LaunchTemplateは作ることしか出来ない
ROSからは作ることしか出来ません。
バージョン管理の機能はついていますが、更新してバージョンを上げることもあるので、差分出ますよね...。
リソース管理の意味が...。
といったことが検証中に分かったので、Terraform を使って運用することにしました。
Terraform を使ったことがなかったので学習から行ったので時間がかかりました...。
個人的には、業務中に学習できたのでラッキーでした!
その他にも、CloudFormation のテンプレートを ROS 用のテンプレートに書き換えてくれるツールも存在していますが、短縮形(!Ref
)は変換してくれないので、なんだかなーって感じでした。
さいごに
そんなに濃い話は出来ませんでしたが、Alibaba Cloud に移行する際に感じたことなどを書きました。
実際に検証していく中で AWS では出来たから Alibaba Cloude でも出来るだろうという感覚でいたので痛い目に合いました...。
まあ Terraform で何とかなったので良かったです。
その他のサービスに関してはご自身でご確認していただければと思います。
読んでいただいた方のちょっとしたネタになればと思います。