雨が上がるまで

毎日の積み重ねが人を作る。筋肉は裏切らない。

AWS

【AWS】違いが良くわからないサービス(メッセージ・構成管理)

投稿日:

SAAの勉強をしていてテキストだけではよく違いがわからないサービスがあったのでメモしておきます。

SQS・SNS・SES

とりあえずSESについてはメール形式で同時に発信することができるサービスっぽい。メルマガなんかを送信するときに使う。

SNSはあくまでメッセージ通知サービス。SQSは非同期でメッセージをキューイングすることができるため、処理の重いものを複数のEC2インスタンスに分散させることができるようです。

そもそもキューイングって何って感じだったので調べてみると、

メッセージキューイングとは、異なるアプリケーションプログラム間で動作を連携させてデータを交換させる際の方式のひとつで、送るデータをキューと呼ばれるデータ領域に保持し、データを受ける側の処理が完了するのを待たずに次の処理へ移る方式のことである。

とのこと。要するに並列で処理できるようにデータをうまく送ってくれるっぽいです。

そのキューイングをAWSではSQSで実装してくれているということですね。この場合受け手(EC2など)はすべて別々のメッセージを受け取って処理を進めます。

SNSは様々なサービスにメッセージを配信してあげることで、LambdaやSQSに処理をするよう指示をすることができる。SQSはデータを別々の場所に送って並列処理をしてくれるってことですね。

ちゃんと一つ一つ調べれば全く違うサービスでした。

Cloud Formation・Elastic Beanstalk・OpsWorks

構成管理サービスではこの3つが主なサービスですが、私自身に開発経験がほぼないため違いが分かりづらい。

この3つはプロビジョニングとデプロイを理解すればある程度すんなり入ってきました。

プロビジョニングはすぐにサービスが利用できる環境を提供する。
デプロイはアプリケーションを実行するためのファイルを対象のサーバーに配布する。

プロビジョニングはインフラ側だけの話で、サーバーを立てたりデータベースを作ったりするような処理をすることで、デプロイはインフラは関係なくアプリに必要なJavaやPHPなんかのファイルを環境に配置してあげることです。

これを踏まえて各サービスをみてみるとこんな感じ。

  1. Cloud Formation
    AWS内のサービスをすべて自動でプロビジョニングできるサービス
  2. Elastic Beanstalk
    Webアプリケーションなどをサーバーにデプロイでき、かつ実行環境を自動でプロビジョニングしてくれるサービス
  3. OpsWorks
    Elastic Beanstalkと同様にデプロイ、プロビジョニングできるサービス。Chefを利用してサーバーの構成を自動化することができる。

Cloud Formationはわかりやすいですね。とにかく幅広くプロビジョニングできるけど、デプロイはできないので他2つのサービスとは違うことがすぐわかります。

悩んだのがElastic BeanstalkとOpsWorks。両方プロビジョニングとデプロイができます。では違いは何かというと、より詳細な設定ができるかどうかです。

Elastic Beanstalkはとにかくインフラは分からないからWebアプリの実行できる環境を作って欲しいってときに使えます。デプロイだけしたい場合はこちらですね。

それに比べてOpsWorksも同じような機能を提供しているんですが、より詳細に設定することができ、Chefレシピを実行してソフトウェアをサーバーにインストールしたあとにデプロイするなんてことができるみたいです。

実行環境を作るだけならElastic Beanstalk、より細かくソフトウェアをインストールするなどの手順が生じる場合はOpsWorksを利用するという使い分けになりそうです。

まとめ

ソリューションアーキテクトアソシエイト(SAA)の勉強していて悩んだことを整理してみました。

正直オンプレでもインフラの構築経験がある人は悩まないんだろうなーってところが多いのですが、地道に勉強するしかないですね。

 

 

-AWS

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

【AWS Dev Day Tokyo2019】Chaos Engineering 〜入門と実例〜を聞いて

AWS DevDay Tokyo 2019が10/3、10/4で開催されていたので参加してきました。 私は以下のセッションを聞いてきました。 第1回 AWS Fargate かんたんデプロイ選手権 C …

AWS Developer Associateを取得したときの勉強法と反省

先日ようやくAWS Developer Associate(DVA)を受験し、無事に合格することができました。 そのときの勉強法と反省点を振り返ってみようと思います。 Contents1 SAAとは同 …

【AWS】2週間でソリューションアーキテクトアソシエイト(SAA)に合格した話

本日ソリューションアーキテクトアソシエイト(以下SAA)を受験し、なんとか合格しました。 勉強を初めて2週間、本格的に勉強を始めたのは1週間前からでした。 [box05 title=”私の …

AWSを使った仮想デスクトップ環境構築

EC2インスタンス上にPythonを使える環境作って欲しいと言われたので、候補の一つとしてリモートデスクトップでサーバーにアクセスする方法を考えてみました。 リモートの接続先にAnacondaをインス …

AWSを勉強する上で目標となる「AWS認定」ってどんな資格?

仕事でAWSに携わリ始めたので、どうにもAWSの有識者として頑張らなければならなくなりました。 そのため最近AWSをぼちぼち勉強し始めたのですが、どうやらAWS認定というものがあるらしいですね。 その …