見出し画像

AWS MLS (機械学習) 勉強記⑨ 高可用性・耐障害性・セキュリティ

こんにちは、れお太郎です!
今回はここまでで作成してきた機械学習モデルの運用と実装に関しての賞になります!
前回の記事はこちら

実際のシステム運用に関する話で、高可用性と耐障害性、セキュリティに関して学びます。


高可用性と耐障害性

高可用性(High Availability)

高可用性はシステムが長期間にわたって連続して稼働し続ける能力を指します。高可用性の目的は、計画的または非計画的なダウンタイムを最小限に抑えることです!

耐障害性(Fault Tolerance)

耐障害性は、システムが障害を検出した場合でも、中断や性能の低下を全くせずにに正常に機能し続ける能力を指します。耐障害性の目的は、システムが障害に対して全く影響を受けないようにすることです!

高可用性は短時間の中断を許容しますが、耐障害性は全く許容せずに、システムの連続稼働を保証します。そのため耐障害性の方がより高いコストと複雑性を伴い、システムの中断が絶対に許されない重要な環境で求められます。

疎結合

耐可用性と耐障害性を実現する方法の一つとして「疎結合」が挙げられます。アプリケーションを相互に独立させることで、他への障害の拡散を防ぐことが出来ます。例えば、トレーニングに使うコンピューティングリソースと、データの保存に使うストレージのリソースは互いに独立に疎結合をすることがあります。
Amazon SQSや、AWS Step Functionなどを用いて、ワークフローを作成しそれぞれを疎結合的に連結させるワークフローが挙げられます

Amazon SQS
Amazon SESはメッセージキューサービスで、疎結合されている分散コンピューティング環境でコンポーネント間のメッセージの送受信が出来ます。コンポーネント同士が独立に、他のコンポーネントの実行状態に関わらずにタスクを実行できます。

Amazon Step Functions
Amazon Step Functionsはデータ処理ロジックなどをワークフローとして定義することが出来ます。各ワークフローがどのような状態にあるのかを管理する子手尾が出来ます。

SQSとStep Functionsを連携することで、SQSでメッセージをキューイングした際に、あらかじめStep Functuinsにてメッセージに基づいて実行されるタスクを定義することが出来ます。
これらのサービスは各コンポーネントやワークフローを独立させ、「疎結合」の概念を支えることが出来ます!

Amazon Cloud Watch

Amazon CloudWatchは監視と管理をするサービスで。AWSを用いたアプリケーションの監視とログの収集・監視・分析をする機能です。すべてのログやリアルタイムのシステムイベントをモニタリングし、メトリクスの設定に応じたアラームを出すことが出来ます!
例えばSageMakerで機械学習モデルのトレーニングをしている際に、CPUやGPUの使用率などを見ることが出来ます。

AWS Cloud Trail

AWS CloudTrailはAWS内でのアクションやリソースの変更を記録して、イベントログとしてアウトプットすることが出来ます。変なアクションをしていないかを監視することで、セキュリティの分析やコンプライアンス監査等に使用が出来ます。

CloudWatchでパフォーマンスや運用状況を監視し、CloudTrailでアクティビティを監視することが出来ます!

AWS Auto Scaling

AWSにおけるリソースの自動スケーリングをするサービスで高可用性と耐障害性を実現するとともに、不要なリソースの削減や調整を行うことでコスト削減やパフォーマンスの最適化を実施します。

セキュリティ

機械学習を持しする際にソリューションとデータが安全である必要があり、そのためにはセキュリティプラクティスが重要です。
そのためのAWSで実行できる手法は下記のとおりです。

AWSのセキュリティプラクティス

VPC (Virtual Private Cloud)
AWS内にプライベートな仮想ネットワークを設定できるサービスです。ネットワーク設定をカスタマイズできるため、セキュリティとトラフィックの管理が出来ます。

セキュリティグループ
セキュリティグループは、インスタンスレベルでの仮想ファイアウォールとして機能します。入ってくるトラフィックと外に出ていくトラフィックの両方に対するトラフィックを制御します

NAT ゲートウェイ (Network Address Translation Gateway)
NATゲートウェイは、プライベートサブネット内のインスタンスがインターネットまたは他のAWSサービスにアクセスするために使用される。そのため、インターネットからこれらのインスタンスへの直接アクセスの許可を防ぐことが出来る。

インターネットゲートウェイ
インターネットゲートウェイを使用すると、VPC内のインスタンスがインターネット上のエンドポイントと通信できるようになります。また、インターネットからのトラフィックを受け入れるために、パブリックIPアドレスを持つインスタンスに対してNATの機能を提供します。

AWS Key Management Service (AWS KMS)

KMSは、AWSクラウド内でのデータの暗号化キーの生成、管理、使用、制御を簡単かつ安全に行うためのサービスであり、AWS KMSは、データのセキュリティとプライバシーを強化します。
・キー管理
暗号化キーを生成、管理することが出来ます。
・セキュリティとコンプライアンス
FIPS 140-2という高度な検証プログラムに準拠したセキュアなハードウェアデバイス内でキーを保護します。
・暗号化と複合
データの暗号化と複合化を行うことが出来ます。ストレージやデータベース、ログの暗号化などに利用できます。
・アクセス制御
IAMと統合して、キーポリシーやIAMポリシーを使用して、キーへのアクセスを細かく制御できます。
・監査とモニタリング
キーポリシーやIAMポリシーを使用して、キーへのアクセスを細かく制御できます。

これでAWSでの機械学習に関しての全体の流れを学習できました。
後はSageMakerに関してをまとめたいと思います!


この記事が気に入ったらサポートをしてみませんか?