2022/06/6

AWS SWFとは?SWFサービスの特徴やメリットを解説!

 
  

AWSとは?

AWS(Amazon Web Service)とは、Amazonから提供されているクラウドプラットフォームです。世界で包括的に幅広く採用されています。

AWSは世界中のデータセンターから175以上のサービスを提供しています。そのサービスは多岐にわたり、ストレージやデータベースのようなインフラストラクチャから、機械学習や人工知能のような新しいテクノロジーに至るまでさまざまです。

これらのサービスを利用することで、より速く簡単にクラウドでのアプリケーションを構築することができます。

スタートアップ企業、大企業、主要な政府機関などのあらゆる業界や規模において、多くの顧客がAWSを利用しています。

AWSを導入することで、企業はAmazonが所有するサーバーやデータベースなどのインフラ環境を必要な分だけ利用できるため、イニシャルコストを抑えることが可能です。

Amazon SWFサービスとは?

Amazon SWF(Simple Workflow Service)は、ワークフローの実行基盤を提供するサービスです。ワークフローとは、業務の一連の作業や手続きを定義したものを指します。

AWSでは世界を複数のリージョン(region、領域)に分割し、リージョンごとにクラウドサービスを提供しています。SWFは全てのリージョンに展開され、リージョン間をまたぐワークフローも実現可能です。

また、AWSとオンプレミス(自社内で運用管理するサーバーやシステム)を連携するワークフローや、途中で人手が入るようなワークフローも実現できます。

AWS側(SWF)では、ワークフローや実行タスクの管理、タスク間の処理ルーティング、実行履歴、タイムアウトなどの状態管理を行います。AWS利用者は、ワークフローの登録や各タスクの実装、処理順番の決定を行います。

Amazon SWFを使用したシステムの特徴6つ

Amazon SWFを使用したシステムには、疎結合、ステートレス、非同期処理、柔軟なスケールアップ・ダウン、冗長性、可用性といった特徴があります。それぞれについて説明します。

Amazon SWFを使用したシステムの特徴1:疎結合

疎結合とは、システムの構成要素同士の関連性や依存関係が弱く、それぞれの独立性が高い状態を指します。各要素が互いに深く結びついていないために、一部分を変更しても他の要素への影響が小さく、不具合発生時の原因追及のしやすさに優れています。

Amazon SWFを使用したシステムの特徴2:ステートレス

ステートレスとは、システムがデータやステータスなどを保持せず、あるリクエストをした場合に必ず同じ結果になる方式を指します。それ以前のやり取りやアプリケーションの状況を保持する必要がないため、サーバー側のシステムは単純になります。

また、サーバー資源をすぐに開放できるために作業負荷が少なく、性能向上につながります。

Amazon SWFを使用したシステムの特徴3:非同期処理

非同期処理とはプログラムの実行制御の一つで、あるタスクが別のタスクを呼び出す際に、呼び出し先の完了や応答を待たずに次のタスクに進む方式です。呼び出し側は止まらずに次の処理に進めるため、処理効率が向上します。

Amazon SWFを使用したシステムの特徴4:柔軟なスケールアップ・ダウン

スケールアップとは、メモリやハードディスクを増設したりCPUをより上位スペックに交換することによって、サーバー本体のパフォーマンスを向上させることを指します。

逆に、CPUやメモリなどのスペックを下げて、サーバーリソースを最適化したり無駄なコストの削減を行うことをスケールダウンといいます。

SWFはどちらも柔軟に対応可能です。

Amazon SWFを使用したシステムの特徴5:冗長性

冗長性とは、システム全体を二重化して予備のシステムを準備しておくことで、信頼性が得られることを指します。

複数のシステムが同じタイミングで故障しない限り、システムの停止が起こらないことがメリットです。

Amazon SWFを使用したシステムの特徴6:可用性

可用性とは、システムが故障や災害やアクシデントなどで停止することなく稼働し続ける耐久性のことを指します。

一般的に、可用性は「全体の運用時間に対して、システムが動作可能な時間の割合(%)」を意味する「稼働率」として表現されます。

可用性が高いとは、故障等がなく、システムを長時間稼働し続けることが可能であることを意味します。

Amazon SWFを使用するメリット3つ

Amazon SWFを使用したシステムには様々なメリットがあります。ここではその中でも、専門言語の習得が不要、ワークフローの変更が容易、オンプレミスとの連携が可能、という3つのメリットついて説明します。

Amazon SWFを使用するメリット1:専門言語の習得が不要

Amazon SWFでは専門言語の習得は不要です。

Ruby、Java、.NET、PHPなどの一般的なプログラミング言語を使用するため、手軽に利用できます。AWSでSDKが用意されており、操作も容易です。

Amazon SWFを使用するメリット2:ワークフローの変更が容易

Amazon SWFでは疎結合モデルが採用されており、一つ一つのワークフローは柔軟性が高く独立しています。

そのため、アプリケーション構築においてワークフローに変更が発生してもアプリケーション全体の作業に影響することがなく、ワークフローの追加や削除も容易に行うことが可能です。

Amazon SWFを使用するメリット3:オンプレミスとの連携が可能

Amazon SWFでは、ワークフローにおいてAWSとオンプレミスの連携が可能です。例えば、機密情報はオンプレミスで、外部からのアクセスはクラウドで、というように目的に合わせて使い分けることができます。

また、クラウドサービスとオンプレミスを組み合わせることで、互いのメリットを活用したシステムを構築することができます。

Amazon SWFサービスの利用例

Amazon SWFが利用されている例として、動画や音声のエンコーディング、ビジネスプロセス管理、システムバックアップ、長時間にわたる処理などが挙げられます。

また、ワークフローの途中で出荷処理などの人手を介する処理が入るフローでも、Amazon SWFが利用されています。

Amazon SWFを使ってみよう

Amazon SWFを使用するための方法を説明します。

AWSアカウントの作成方法、AWSコンソールでのサンプルワークフローの実行、サンプルプログラムの利用の流れで説明します。

Amazon SWFを使ってみよう1:AWSアカウントの作成

まず、AWSアカウントを作成しましょう。

Amazon Web Serviceのページから「無料サインアップ」ボタンをクリックし、AWSアカウント画面へ移動します。Eメールアドレス、パスワード、AWSアカウント名、連絡先、支払情報などの必要事項を入力してアカウントを作成します。

Amazon SWFを使ってみよう2:コンソールからサンプルワークフローを実行する

Amazon SWFでは、AWSマネジメントコンソールを起動してサンプルワークフローを実行することができます。

Amazon SWFの「ご利用開始にあたって」のページから「コンソールからサンプルを起動する」ボタンをクリックします。

AWSマネジメントコンソールを起動してサンプルのワークフローを実行することにより、Amazon SWFのさまざまな基本概念を学ぶことができます。また、Javaのサンプルコードもダウンロードできます。

Amazon SWFを使ってみよう3:サンプルプログラムを利用する

Amazon SWFのサンプルは、Ruby、Java、.NET、PHPで利用できます。

Amazon SWF「ご利用開始にあたって」のページに、それぞれの言語の開発者向けにワークフローを開始するための手順が記載されていますので、手順に沿ってインストールなどを行います。

平行、連続、ファンアウトなどのいくつかのワークフローパターンのサンプルを取得して利用することができます。

Amazon SWFを実際に動かして基本概念を学ぼう

AWSは手軽に利用できますが、使いこなすためには様々な知識や経験が必要となります。まずはサンプルワークフローを実行したり、サンプルプログラムを編集して、SWFのいろいろな動きを確かめてみましょう。

AWSを導入する企業の増加に伴ってAWSを扱うエンジニアのニーズが高まり、今後も需要が拡大することが予想されます。

これからAWSに挑戦したいと考えている方は、書籍での勉強の他にも、ぜひサンプルを実行してイメージを掴んでみてください。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】