Inquiry icon START A CONVERSATION

Share your requirements and we'll get back to you with how we can help.

Thank you for submitting your request.
We will get back to you shortly.

クラウド・ネイティブアプリケーション

近年企業は従来のオンプレミスのモノリスよりもクラウド・ネイティブソリューションを好んで支持するようになってきています。この変化は拡張性、信頼性、顧客体験、さらにビジネスベロシティを向上させたいという思いが原動力となっています。クラウド上でアプリケーションを開発することでアジリティを高め(素早い構築と展開)、市場投入への時間を短縮することが可能になります。クラウド・ネイティブへ早期対応したビジネスでは売上げ増加、経営コスト削減のほか、開発ベロシティの大幅改善が報告されています。

クラウド成熟度を高める

Cloud Maturity

アプリケーションのライフサイクル管理を再検討する上で、システムアーキテクチャからアプリ監視までクラウドの特長に資する形で行うことは、クラウド環境がもたらす恩恵を最大限享受することを実現します。当社では成熟したクラウドベンダー提供のマネージドサービスの活用のほか、アプリケーション中心設計と自動化を用いることで、お客様のシステムを多段階にわたるクラウド成熟度間に移動することを可能とします。

クラウドサービスを活用する

クラウドサービスの導入はあらゆるクラウドベースのシステムの特色となる第一歩目です。アプリケーションをクラウド移行するリフト&シフト方式をもってアプリケーションをクラウド移行する場合、使用されるのは基本的なビルディングブロックのみです。このようなシステムのクラウド成熟度は低いものの、クラウド環境に展開することによる基本的な恩恵を受けることはできます。

クラウドジャーニーの早期段階にあるなどといったケースではリフト&シフト方式が最適かもしれませんが、当社ではお客様がより高いクラウド成熟度に到達するお手伝いもしています。基礎的なストレージやコンピュ―トオプションのほかにも、キャッシング、ロードバランシング(負荷分散)、サーバーレスコンピューティングに対応するマネージドサービスを利用できるようシステム設定もできます。

あなたのチームが行っているいわゆる「差別化されていない重負荷労働」の大半は、マネージドデータベースサービス、ロードバランサー、キャッシングメカニズム、データウェアハウス、検索・自動化ツールの導入でクラウドベンダーに移行することができます。マネージドサービスを採用することでチームのアジリティを上げ、より多くの時間を事業に付加価値をもたらす業務に割くことを可能とするのです。

クラウド・ネイティブ成熟度が最高レベルに達すると、アプリケーションの実行・拡張に必要な全てがクラウドベンダーによって管理されている状態になります。例えばサーバーレスコンピューティングサービスを使えば、プロビジョニング、スケーリング、サーバーの管理をすることなく大規模アプリケーションを実行することが可能になります。このようなマネージドサービスを利用することで、先進的なクラウド・ネイティブアーキテクチャを有効化することができるようになるのです。

基本的なクラウドのビルディングブロック:コンピューティング、ストレージ、ネットワーキング、監視

arrow

マネージドサービス:データベース、キャッシング、ディレクトリサービス、ロードバランサー、データウェアハウス、検索、自動化ツール

arrow

サーバーレスやAI/MLサービスといった先進的サービス

アプリケーション中心設計を採用する

Application-Centric Design

オンプレミスインフラではすべてが一か所に集約されています。一方、サーバーやデータベースはクラウドに分散されています。アプリケーションを設計、構築しながらクラウド構造をミラーリングすることで、クラウドプラットフォームにより適したアプリにすることができます。

12-factor appとは、アーキテクチャ、ツール、運用方法に大幅な変更をかけることなくアプリケーションを最新のクラウド環境に展開、拡張できるようにする設計方式です。このようなアプリは環境間における最大限の移植性を保ちながら、逸脱を最小限に抑えることができるのです。12-Factor方式を使ってアプリ設計を行うことはより高いクラウド・ネイティブ成熟度を担保することにつながります。

レガシーアプリケーションの多くはモノリシックアーキテクチャのもと、すべてのコンポーネントが単一ユニットに組み込まれている構造をもっています。クラウド・ネイティブ成熟度を高めるには、アプリケーションにモジュール構造を持たせる必要があります。クラウドコンピューティングに最適なのは、各サービスが完全に自立し他のサービスへの依存性がほとんどない(疎結合)マイクロサービス基盤のアプリケーションです。

クラウド・ネイティブアーキテクチャについてさらに考慮すべき事項は内蔵計測機能、セキュリティ、並列化、レジリエンスです。プロセスを並行的に実行するよう設計されているアプリケーションはスケーリングに適しており、セキュリティ設計をすることでクラウドセキュリティサービスのよりスムーズな導入を期待できます。計測機能を設計に関する検討事項の一つとしてを捉えることで、コンポーネントの欠陥やレイテンシ問題を探知し自動で解決すること(自己修復能力)ができる自己認識のあるアプリケーションを構築することにもつながるのです。

自動化ツールの有効利用

クラウドの恩恵を最大限活用するためにはアプリケーションの運用面の自動化も必要です。これには環境設定や構成用のコード開発も含まれます。

環境に変更を加える必要が出てきたとき、インフラ・アズ・ア・コード(IaC)を実行することで既存のインフラを全交換できます。このようなアプローチを用いれば、構成ドリフトを発生させることなくイミュータブルインフラストラクチャを構築できるのです。

コードに書き起こされたインフラストラクチャはソース管理システムを用いたアプリケーションのコードと同様に扱います。当社ではツールを完全自動化されたデプロイメント・パイプライン(CI/CD)用に設定することで、インフラストラクチャとアプリケーション両方のコードデプロイメントを自動化し、お客様にアジリティと一貫性を提供しています。

コードに書き起こされたインフラストラクチャはソース管理システムを用いたアプリケーションのコードと同様に扱います。当社ではツールを完全自動化されたデプロイメント・パイプライン(CI/CD)用に設定することで、インフラストラクチャとアプリケーション両方のコードデプロイメントを自動化し、お客様にアジリティと一貫性を提供しています。)

その次の段階では、全システムの監視とリソースの利用最適化を自動化できます。クラウド監視サービスはアクセス集中時の検出、インスタンスの追加投入、ロードバランスを取るためのシャットダウン(自動拡張)を実行するよう設定することが可能です。また自動コンプライアンス監査を実装し、ログ分析やリアルタイムでの問題検知をするロギングフレームワークを利用することもできます。

さらに高レベルな自動化では、AIとMLを使いイベントがシステムに与える影響の予測をし、性能やセキュリティ劣化を回避する未然防止策を実行させることができます。

IaC、イミュータブルインフラストラクチャ、CI/CD

arrow

自動化による監視、コンプライアンス、最適化

arrow

AI/ML:不具合の予測、自己修復、自己最適化

クラウド・ネイティブアプリケーション構築のためのベストプラクティスベストプラクティス

Develeopment

開発

  • マイクロサービスアーキテクチャを用いてアプリケーションを設計する
  • ビジネス機能よりもAPIを優先するv
  • ステートレースサービスとイベント駆動型アプローチを使う
  • ユニットテスト、APIテスト、受け入れテストを自動化する
Storage

ストレージ

  • ストレージのライフサイクルポリシーを策定する
  • データのアクセス頻度や予定保持期間等の属性に基づいてデータを体系化する
  • コード(可能であればOSプロパティも併せて)を用い、データ保持ポリシーを施行する
  • データの状態をトラッキングし、必要であれば別のクラウドストレージ機器に移動させる、または規定のライフサイクル経過後にデータを消去するクラウドストレージデータの経年劣化管理メカニズムを実装する
  • バックアップを自動化する
Security

セキュリティ

  • DevSecOpsを導入する
  • セキュリティの適用規格に基づいてソリューションをアーキテクチャ設計する
  • 適切なセキュリティ基準に基づいたソリューションを設計する
  • 機密データを暗号化する
  • サーバーとコンテナを堅牢化する
  • ウェブアプリケーションファイアウォールといったマネージドサービスを利用する
  • アプリケーションのセキュリティテストをCI/CDに統合する
  • クラウドベースのバックアップと災害復旧戦略を定義付けする
Infrastructure

インフラストラクチャ

  • RDS、Aurora、DynamoDB、Redshift等のマネージドサービスを活用する
  • 自動拡張を使ってリソースを自動的に調整する
  • 回復力のあるサービスを構築して自動冗長性を確保する
  • AWS LambdaやAzure Functionsといったサーバーレス技術を利用する
  • 複数のデータセンターを利用して事業継続性を確保する
Operations

運用

  • AWS CloudFormationといったツールを用い、インフラをコードとして維持する
  • イミュータブルインフラストラクチャ構築の計画を立てる
  • コードデプロイメント・パイプラインを自動化する
  • サービスやアプリケーションをコンテナ内でデプロイする
  • Kubernetes、Swarmといったオーケストレーションツールを利用する
Monitoring

監視

  • ELKやOSSECのようなスタックを使い、継続的な監視と脅威予測機能を確実に行う
  • 環境ドリフトや構成ドリフトの検知を自動化する
  • コンプライアンス・アズ・コードフレームワークを作成し、監査チェックを自動化する
  • 外部ポーリングに加えてホワイトボックス監視手法を利用する
  • Prometheus等といったツールを導入し、より幅広い種類のカスタムメトリクスの監視を行う
  • JaegerやZipkin等のリクエスト追跡ツールを用い、関連するリクエストのトラッキングを行う

よりスムーズなクラウド移行のために

あなたのクラウドジャーニーの出発点となりうるのがランディングゾーン。これは作業負荷の展開に先立ち実装される、ベストプラクティスに基づき構築された適応性のある基盤のことを指します。これはIaCとして展開される繰り返し可能なプロセスで、コアサービスを持つベースラインクラウド環境をデプロイする際の処方的命令を持ちます。

このベースライン環境は将来のアカウントや環境にかかるデプロイ時間を大幅に短縮します。クラウドランディングゾーンを実装することで、お客様が健全なガバナンスと少ない運用コストのもと迅速に本番環境にデプロイできるようお手伝いします。

ランディングゾーン構築時に考慮される技術・運用面でのポイントは次の通りです。

  • アカウント構造の設計
  • 仮想ネットワークの構成
  • セキュリティと監査要件
  • アイデンティティ・アクセス管理
  • セントラルシェアードサービス
  • 自動化フレームワークとバージョン管理されたインフラ

企業がクラウド移行で得られる恩恵を最大化するためには、クラウド・ネイティブエンジニアリングとそのベストプラクティスを導入する必要があります。私たちのクラウドコンサルタントは主要クラウドプラットフォームの実績を誇り、お客様のクラウド・ネイティブへの道のりを効率化するお手伝いをいたします。当社では、簡単に拡張可能なエンタープライズアプリケーションのクラウド展開を可能とするモジュール型アプリケーションアーキテクチャの導入や、DevOpsプラクティスの確立をサポートいたします。