ブログ

ryuzeeによるブログ記事。不定期更新

直近開催のScrum Alliance認定スクラムマスター研修のご案内

スライド共有アプリをAzureに対応させた話

こんにちは。@ryuzeeです。最近アジャイル、クラウド、DevOpsの3点セットで仕事しています :-)

さて、自分のスライドはこちらのスライド公開サイトに公開しているのですが、これはオープンソースの自作アプリケーションです。

もともとはAWS専用だった(Amazon S3とAmazon SQSに依存)のですが、今回時間があったのでAzureに対応しました(ソースはこちら)。さきほどAzureに移行していまのところ普通に動いています。 構成としては、ロードバランサー(Traffic Manager)とWebサーバ(Nginx + Docker)2台とDBサーバ(MySQL)2台です。

Azureに対応させること自体は特に難しくなかったのですが、AWSと両方使ってみていろいろ気づいたことがあるので整理しておきます。

項目AWSAzure
オブジェクトストレージAmazon S3を利用。仮想マシンを経由しないでファイルをアップロードするには、Signature v4のAPIを使ってフォームの項目を生成する。保存したオブジェクトをマネージメントコンソールから見ることができるのは楽Azure Blob Serviceを利用。こちらも同様にSASを使ってワンタイムのポスト先URLを生成してあげればOK。ただし64MB以上のファイルをアップロードする場合はブロックに分割して送らないといけない点は面倒。ポータルからはオブジェクトを見ることができない(のは辛い)
キューAmazon SQSを利用。スライドの変換処理のために不可視タイムアウトを設定して同一ファイルの変換が走らないようにしている。キューに入っているメッセージをマネージメントコンソールから見えるのは良いAzure Blob Queueを利用。こちらも不可視タイムアウトの設定が可能。Ruby SDKを使ったが、操作感はほぼAWSと変わらない感じ。ポータルからキューの中身が見えるといいのだが...
仮想マシンAmazon EC2を利用。もともとAWSで動かしていたときはt2.smallで動かしていた。IAM Roleを使うとAPIのアクセスキーとシークレットキーをサーバに埋め込まなくてよいので安心Virtual Machinesを利用。Standard D1(1コア/3.5GBメモリ)を利用。Azureの場合は仮想マシンを立ち上げる際にあらかじめストレージの性能なども仮想マシンの性能にあわせた形でパッケージングされている点がAWSと大きくことなる。だいたいいい感じの仮想マシンがほしい、という場合に分かりやすい。あと東日本と西日本にリージョンがあって、同じ日本なのに西日本の方が値段が2割くらい安い
RDBMSAmazon RDSを利用。MySQL、PostgreSQL、Oracle、SQL Server、MariaDBなど多くのRDBMSがマネージドで提供されているのはやっぱり楽。フェイルオーバーの設定とか自分でやりたくないし。規模が大きければAuroraを使う手もあるAzureにはSQL Databaseがあるが、これはエンジンはSQL Serverということなのでちょっと困った。Azureの場合ClearDBという選択肢もあるようだが、ポータルからアクセスするとあまりにデザインの違うサイトに飛んで行ったりするので一抹の不安を覚える...
ロードバランサーAmazon Elastic Loadbalancingを利用。まぁ特段言うことはない感じTraffic Managerを利用。エンドポイントのURLがスッキリした感じなのはいい(trafficmanager.net)
ポータル画面AWSの場合はサービスによってインターフェイスがかなり違う。ずっと使っているので慣れてはいるが、オプションで指定できる項目も多いので初心者は最初引くかもしれないAzureの圧勝。Azureの場合はどのサービスでもUIのインターフェイスが揃っている点はかなり楽だと思う。このあたりはガイドラインがしっかりしているんだろうと思う。他のWindows製品もみんなそうだし。ただメニューで製品名をクリックしても、その製品が何ができるのかはポータル上では分からない気がする...。ちなみに上のスクリーンショットは自分でカスタマイズしたもの。こういうの分かりやすい
ドキュメント各種サービスやSDKでなんだかんだいってドキュメントが揃っている点は開発者としては楽。サンプルの量も豊富だし特にAPI関連について、どこに何のドキュメントがあるのか分からない上に、機械翻訳されたドキュメントにたどり着いても原文みないと分からない。ここは改善してほしい。

ということで、引き続きいろいろ触ってみたいと思います。

アジャイル開発チーム向けのコーチングや、技術顧問、Scrum Alliance認定スクラムマスター研修などのトレーニングを提供しています。お気軽にご相談ください(初回相談無料)
前の記事 組織やチームづくりに役立つ20冊
次の記事 Docker + Capistrano3で簡単にWebアプリをデプロイする

プロダクト開発で、こんな課題を感じていませんか?

  • 何を作るべきか、順位の決め方が定まらない
  • プロダクトの方向性をチームで共有できていない
  • 開発組織の体制や役割がうまく機能していない
  • 開発プロセスが形骸化し、目的を見失っている
  • アジャイルを導入したが、組織に定着しない

プロダクトマネジメント、組織構造、開発プロセスの課題について、組織全体の視点から支援します。

お問い合わせ(初回相談無料)

契約を前提にした相談でなくて構いません。相談に際して事前の整理や準備は不要です。

Aligned ―プロダクト開発におけるステークホルダーとの関係性の築き方
ダイナミックリチーミング 第2版
Tidy First?
脳に収まるコードの書き方
プロダクトマネージャーのしごと 第2版
エンジニアリングマネージャーのしごと
チームトポロジー
スクラム実践者が知るべき97のこと
プロダクトマネジメント
SCRUM BOOT CAMP THE BOOK
みんなでアジャイル
レガシーコードからの脱却
Effective DevOps
変革の軌跡
ジョイ・インク
アジャイルコーチの道具箱
カンバン仕事術
Software in 30 Days
How to Change the World