ECSとSpotFleetで新規ビジネスのトライアル
-
Upload
yu-sudo -
Category
Technology
-
view
86 -
download
2
Transcript of ECSとSpotFleetで新規ビジネスのトライアル
AWSの
EC2 Container Service(ECS)と
SpotFleetで
新規ビジネスのトライアルNTTソフトウェア
須藤悠
あるいは
48時間AWSにて、斯く戦えり
はじめに
技術者として技術的な知見の共有を目的とするもので、
NTTソフトウェア株式会社の公式見解ではありません。
スライド中に使用している写真は
●発表者本人が撮影したもの
●弊社社員が撮影したもの
●CC0ライセンスで公開されているもの
のいずれかで、権利上問題ないものです。
自己紹介
須藤悠 / Yu, SUDO
所属:NTTソフトウェア
✘ ソフトウェア生産技術センター
Grails推進室 “Grails Advocate”
ソフト道場 研修講師
✘ 戦略ビジネス特区新ビジネス創出推進ユニット
サポータ
✘入社10年目
✘ ピザ大好き
ピザ大好き(再掲)
年末年始にピザを食すこと9回
トマトとチーズ♥それはすなわちピザとイコールであることを意味します
などと意味不明な供述をしておりますが
みなさんご存知のように
4月から社名変わります
超絶ホワイト企業サビ残など絶対に許されない
在宅勤務もできるし椎間板ヘルニア発症して座れなくなったとき
6週間有給の病気休暇くれた※医師の診断書による※ボーナスはちょっと減りました
で技術専門職をやっております
そんな
Grails推進室フルスタックWebアプリケーションフレームワーク
Grailsを推進・サポートする組織
最近はGrailsに限らず多様な技術支援を提供している
心得:己の才能を開花すべし知恵を貪欲に習得すべし己の習得した知識を磨くべし
ソフト道場実践中心の研修を提供する組織
Grails/AWS/Ansible等のカリキュラムで講師を務める
戦略ビジネス特区俊敏かつ効率的に新ビジネスを創出する組織ワールドビジネスサテライトの取材を受けたことも
今回の話はここでのプロジェクト
戦略ビジネス特区での新ビジネス創出
戦略ビジネス特区では、新規ビジネス立ち上げの流れを
大きく5つのフェーズ “Stage0” ~ “Stage4” に分けて、
大きな失敗をする前に、軌道修正できる仕組みをとっています。
Stage-4Stage-3Stage-2Stage-1Stage-0新ビジネス考案 受容性確認と
初期顧客発見実用最小製品開発と初期顧客での評価
市場展開
アイデアソン 事業化プロトタイプ・開発
審査会中止/継続
判断中止/継続
判断
中止/継続判断
お金を払ってでも解決したい顧客ニーズの獲得
顧客開拓
戦略ビジネス特区での新ビジネス創出
戦略ビジネス特区では、新規ビジネス立ち上げの流れを
大きく5つのフェーズ “Stage0” ~ “Stage4” に分けて、
大きな失敗をする前に、軌道修正できる仕組みをとっています。
Stage-4Stage-3Stage-2Stage-1Stage-0新ビジネス考案 受容性確認と
初期顧客発見実用最小製品開発と初期顧客での評価
市場展開
アイデアソン 事業化プロトタイプ・開発
審査会中止/継続
判断中止/継続
判断
中止/継続判断
お金を払ってでも解決したい顧客ニーズの獲得
顧客開拓
ここで
AWS使った
話
備蓄品管理 CSR活動
備蓄品安心サポート複数拠点の備蓄品を
一括管理
期限が近づくとメールでアラーム通知
廃棄ではなく、寄付などによる社会貢献
管理サイトから履歴やお勧め情報を活用し、
簡単に追加購入。
簡単登録・見える化
期限管理
社会貢献(寄付)
購入
「備蓄品安心サポート」は、企業の
災害備蓄品の維持管理をサポートし
ながら、購入金の一部を寄付される
仕組みや、期限切れになる前に寄付
することができる仕組みにより、
災害備蓄品の管理と社会貢献を
簡単に両立できます。
備蓄品安心サポート(仮称)管理を簡単に。廃棄削減と寄付で社会貢献!
備蓄品管理と、
CSR活動を
同時に実現!
「備蓄品安心サポート」は、企業の
災害備蓄品の維持管理をサポートし
ながら、購入金の一部を寄付される
仕組みや、期限切れになる前に寄付
することができる仕組みにより、
災害備蓄品の管理と社会貢献を
簡単に両立できます。
備蓄品管理と、
CSR活動を
同時に実現!
NTTソフトウェア株式会社戦略ビジネス特区
〒220-0012横浜市西区みなとみらい4-4-5
横浜アイマークプレイス12F
TEL:045-212-7484E-mail:[email protected]
こんな企業様におすすめ
災害備蓄品の管理を楽にしたい
備蓄品を寄付するなど、廃棄を減らし有効活用したい
社会貢献を視野に入れた施策を検討したい
トライアル協業法人様
相日防災株式会社 様
全国フードバンク推進協議会 様
NTTファイナンス 様(調整中)
備蓄品安心サポート(仮称)管理を簡単に。廃棄削減と寄付で社会貢献!
プロジェクトの体制
イントラプレナー
企画・渉外チーム
開発・インフラチーム
Androidアプリ開発 Webアプリ開発 AWSインフラ構築
Grails推進室メンバ
※この他にもデザイナ2名が参画しました
プロジェクトの体制
イントラプレナー
企画・渉外チーム
開発・インフラチーム
Androidアプリ開発 Webアプリ開発 AWSインフラ構築
40時間
当初与えられたのは
※この他にもデザイナ2名が参画しました
Userアプリ
AdminアプリAPIアプリ
指令:
40時間でAWSの環境作って
まじかよ
面白そう
EC2 Container Service(ECS)
を採用した理由
「ECS/ECR使うのとEC2と、どっちがいいっすかね先輩」「ECS/ECR使おっか!」
ECSを採用した理由
✘ Webアプリ開発者がDockerを使って開発している
✘ 社内検索エンジンや共有ビルド環境もDockerで構築している
✘ 技術支援組織として、常に新しい技術をキャッチアップしたい
✘ そろそろクラウドサービス上でのContainerもやってみたい
✘ ECSはSpotFleetと組み合わせるとコスト効率が良い
✘ ECS/ECRを使うことで、EC2よりも構築・運用が楽になるのでは
✘ 関連サービスがすべてTokyoリージョンでローンチされている
✘ AWSはCLI/SDKが充実してるから大概のことは何とかできる
最終的に構築した環境
RDS
(PostgreSQL)
SpotFleet
ECS
Admin Service
ECS Cluster
Admin
ALB
API
ALB
User
ALB
API Service User Service
ECR
Route53
TargetGroup
Docker Image
Lambda
CloudWatch
Logs
awslogs agent
SES
email delivery
プロジェクトの体制
イントラプレナー
企画・渉外チーム
開発・インフラチーム
Androidアプリ開発 Webアプリ開発 AWSインフラ構築
実際にかかったのは
※この他にもデザイナ2名が参画しました
48時間
48時間、どんなことをやったか
ざっくり8時間刻みで追います!
~8時間
IAM
✘ rootアカウントのMFA設定と開発メンバ用のIAMユーザ発行
CloudTrail
✘全APIログの取得と保存の設定
VPC
✘ VPCとマルチAZなサブネットの作成
ECR
✘ 各Webアプリ用のDockerリポジトリ作成
ECR
Docker Image
~16時間
EC2
✘ EC2インスタンスとSpotインスタンスの制限緩和申請
✘ SpotFleetリクエストの作成(※)
RDS
✘ PostgreSQLインスタンスの作成
Route53
✘ Private Hosted Zoneの作成
RDS
(PostgreSQL)
SpotFleet
ECR
Docker Image
~24時間
CloudWatch Logs
✘ ログ出力先のロググループ作成
ECS
✘ タスク定義やECSクラスタの作成
EC2
✘ SpotFleetリクエストの再作成とuser-dataの設定
SES
✘ メール送信の設定とサンドボックスモードの解除
RDS
(PostgreSQL)
SpotFleet
ECS
ECS Cluster
ECR
Docker Image
CloudWatch
Logs
SES
email delivery
Admin Task API Task User Task
_JAVA_OPTIONS : -DdataSource.url='jdbc:postgresql://rds.example.com:5432/production'
~32時間
ECS
✘ Serviceの作成と実行(※)
✘ awslogsエージェントによる標準出力ログの確認
ALB
✘ ロードバランサとターゲットグループの作成
✘ ヘルスチェックの設定
RDS
(PostgreSQL)
SpotFleet
ECS
Admin Service
ECS Cluster
Admin
ALB
API
ALB
User
ALB
API Service User Service
ECR
TargetGroup
Docker Image
CloudWatch
Logs
awslogs agent
SES
email delivery
~40時間
Lambda
✘ ターゲットグループをメンテナンスするLambda Function作成
CloudWatch Events
✘ 作成したLambda Functionの定期起動
EC2
✘ SpotFleetのAutoScaling設定
RDS
(PostgreSQL)
SpotFleet
ECS
Admin Service
ECS Cluster
Admin
ALB
API
ALB
User
ALB
API Service User Service
ECR
TargetGroup
Docker Image
Lambda
CloudWatch
Logs
awslogs agent
SES
email delivery
~48時間
Route53
✘ ドメインの購入とPublic Hosted Zoneの作成
✘ ALBのエンドポイントへのCNAME設定
ACM
✘ 証明書の発行
ALB
✘ HTTPS化の設定
RDS
(PostgreSQL)
SpotFleet
ECS
Admin Service
ECS Cluster
Admin
ALB
API
ALB
User
ALB
API Service User Service
ECR
Route53
TargetGroup
Docker Image
Lambda
CloudWatch
Logs
awslogs agent
SES
email delivery
運用コスト
主要な運用コスト(1ヶ月の実績)
✘ 7~8割引で使えるなんてSpotFleet最高ですね
✘ ELB(CLB)→ALBも1割くらいコストが下がる
✘ 2017年に入ってからm3.mediumの価格が不安定なので
c3.largeに移行しました
サービス 1ヶ月の運用コスト(USD) EC2/ELBでの最小コスト試算(USD)
EC2 (SpotFleet m3.medium 744h×2) 20.4 (t2.small 744×4) 95.2
ALB(ELB) (ALB 2226h) 54.1 (ELB 2226h) 60.1
ECR 0.4 0.0
合計 74.9 155.3
失敗による知見
✘ ECSクラスタを作ってからSpotFleetリクエストを作成すること
✘ ALBやターゲットグループの後にECSのServiceを作成すること
→Service DiscoveryはService作成時にしか設定できない
✘ ALBを無闇に作るとそれだけコストがかかるので注意すること
最高なところ
✘ Dockerで動作確認したアプリをそのままAWS上で運用できる
✘ SpotFleetを使うことで安価にリソースが確保できる
✘ ECS+ALBを使うとサービスの運用がとても楽になる
→Health Check、Load Balancing、AutoScaling、
Blue/Green Deployment
ちゃんと考えないと危なそうなところ
✘ awslogsエージェントで収集される標準出力ログの設計
✘永続化が必要なデータの持ち方
→今回は RDS + CloudWatch Logs のみ
✘ アプリケーションの更新とDBのマイグレーション
✘ ALBのパスベースルーティングとセキュリティグループ
AWSのSAさんとやり取りしてこんな記事書きましたECS使う方はぜひご一読を
ご清聴ありがとうございました
ECS+ALB ベストプラクティス 検索