XII. 管理プロセス
5. アプリケーションの再設計 - メッセージ基盤
• コミュニケーションアプリゆえ、主機能となるチャットの役割が重要
• データベースに求められる要件
•
高スケーラビリティ•
高信頼性•
高可用性• AWS DynamoDB の採用のポイント
•
規模に関係なく数ミリ秒台のパフォーマンスを実現•
全データを標準で暗号化•
フルマネージドのため、標準でオートスケーリングや継続的バックアップに対応5. アプリケーションの再設計 - メッセージ基盤
Amazon ECS の運用
• ECS (Elastic Container Service)
•
コンテナ化されたアプリケーションを本番環境で実行するオーケストレーションサービス• ECS
は2
つの起動方法をサポート• EC2: ECS
内部でEC2
を利用• Fargate:
インスタンス管理はフルマネージド•
同様のサービスとしてはKubernetes (k8s)
がある• AWS
ではEKS (Elastic Kubernetes Service)
として提供Amazon ECS の運用
• メタップスでは 2016 年より Amazon ECS の運用を開始
• ECS の運用状況
•
稼働システム数: 26
•
クラスタ: 50
•
サービス:
約200
Amazon ECS - クラスタ構成
• アプリケーションクラスタから集約したログをログクラスタで分析
• ログレベルに合わせて重要なメッセージは Slack に通知
• 整形したログを Elasticsearch や S3 に配送
ログの可視化 - Kibana
ECS 運用 Tips- 設計
• サービスディスカバリの活用 (AWS Cloud Map)
•
コンテナ間通信をDNS
で解決• サービスは機能単位で分割
•
疎結合な構成。サービス間はAPI
で通信•
パスベースルーティングを用いたフォワード•
サービスごとのタスク数、リソース割当を調整• 集約ログ
•
ログクラスタとアプリケーションクラスタの関係性は1:n
ECS 運用上の工夫 - デプロイ
• デプロイツール「 genova 」を内製で開発。 OSS で公開
• https://github.com/metaps/genova
• 特徴
• GitHub
と連携し、ECS
タスクの作成からイメージビルド、ECR
へのイメージプッシュ• Run task
の実行や、サービス・タスクスケジュールのデプロイをサポート• CLI
デプロイのほか、GitHub Push
による自動デプロイ、Slack
を用いた対話形式のデプロイをサ ポートFargate の運用 - 課題
• SSH が出来ない
• docker exec
ができないため、メモリリークなどの問題が発生した際のトラブルシュートが困難• ログドライバが Fluentd をサポートしていない
•
サポートするログドライバはCloudWatch Logs
、Splunk
のみ• 2019
年9
月6
日、「Amazon ECS and AWS Fargate FireLens Preview Program
」という形でパブリック プレビューが公開• FireLens
ドライバ経由でFluentd / Fluentd Bit
に対応セキュリティ対策の観点
• 課題
•
人為的ミスの防止•
誤ったセキュリティグループの設定• Amazon S3
に対する不適切なバケットポリシーの適用など•
攻撃に対するリソースの保護•
プログラムの脆弱性を突いた攻撃(XSS
、OS
コマンドインジェクションなど)
• DDoS
攻撃など• 解決策
• AWS
セキュリティオートメーションツールの導入(AWS WAF
、Amazon GuardDuty
など)
•
外部による脆弱性診断などすぐに始められるセキュリティ対策
概要 概算時間
Well-Architected Tool
アーキテクチャのレビュー1
時間Trusted Advisor の実行
セキュリティやパフォーマンスの観点からAWS
の推奨設定をレポート5
分GuardDuty の有効化
機械学習によるンマイニング、AWS
リソースの異常検知(
コイSSH
ブルートフォースなど) 5
分CloudTrail の有効化 AWS
アカウントのアクティビティを監視5
分Config の有効化 AWS
リソースの変更を監視5
分WAF の有効化 Web
アプリケーションに対する攻撃をブロックするファイアウォール。
DDoS
攻撃にも対応10
分Inspector の有効化 EC2
に診断用エージェントをセットアップして30
分インフラのイベント監視
• AWS の各種サービスから出力されるログを Lambda で分析
• WAF
の攻撃検知•
コンプライアンス違反のリソース• EC2
リタイアメント通知• 重要度の高いイベントは Slack に通知
• 監視ツールは Serverless Framework で実装
• ログは Amazon Elasticsearch Service に配送
イベント監視の通知
re:shine - 株式会社メタップス
• 双方向のフリーランスマッチングプラットフォーム
• フリーランスや、副 ( 複 ) 業者向け
•
週3
日から可能、フリーランス型正社員という新しい雇用形態•
すべて無料のフリーランスマッチングプラットフォーム• 企業向け
•
フリーランスを活用したい企業のサポート•
費用は紹介手数料の5%
のみ(
無料キャンペーン中)
miime - 株式会社メタップスアルファ
• ゲームのキャラクターやアイテムを始めとしたデジタルアイテム (NFT) をユーザー同士で売買する場を提供
• ブロックチェーンを活用することで、売買が成立してすぐに支払いとデ
ジタルアイテム (NFT) の所有権移転が同時に実行される仕組みを実現
チケットペイ - 株式会社メタップスペイメント
• チケット販売サービス
• 初期契約料、イベント登録料、紙代など全て無料
• インフラ構成管理の導入により、オンプレから Amszon ECS に移行
Capy パズル CHAPTCHA - Capy 株式会社様
• Web サイト、スマートフォンアプリなどにおける Bot からの攻撃に対策するクラウド型サービス
•
国内外の権威あるカンファレンスでの受賞は10
以上• Capy が提供する JavaScript をサイトに貼り付け、
API 連携に必要な情報を POST するだけで導入可能
• インフラ基盤をマルチクラウド化
• ECS
を始め、インフラ監視基盤やデプロイツールを導入総括 - 構成管理の重要性
• コード再利用によるインフラ構築コストの削減
• コード共有に伴う技術共有の活発化
• エンジニアのインフラスキルの向上
総括 - 構成管理の改善イテレーション
メタップスにおける今後の課題 - SRE
• SRE: Site Reliability Engineering
• ミッション
•
ソフトウェア主導によるサービス品質の向上• 主な仕事
•
インフラの設計、構築•
運用の最適化、自動化•
システムの監視、障害対応• 課題
•
アプリケーション監視(APM)
メタップスにおける今後の課題 - ESC
• ESC: Engineer Steering Committee
• ミッション
•
組織的なエンジニアリングの最適化• 役割
•
全社的な開発/
運用方針の決定• 課題
•
エンジニアの働きやすい環境づくり•
エンジニアの成長サイクルの確立•
全社的なメディア露出の強化SRE としてメタップスグループのインフラ基盤を支えてくれる方、
エンジニアとしてサービスに興味を持ってくださった方 ! 是非話を聞きにきてください !
[email protected]
ドキュメント内
PowerPoint プレゼンテーション
(ページ 31-56)