LoginSignup
2
1

More than 5 years have passed since last update.

1ヵ月で取得するAWSソリューションアーキテクト (2日目)

Last updated at Posted at 2016-09-13

概要

もう2日目も終わりですが…
1日目で書いてなかった大事なことを振り返っていこうと思います。

AWSの全体像

AWSって個人的にはEC2とS3ってイメージが強いんですけど、
色々あるんですよね…

というわけで改めて役割別の代表的なサービスを並べていってみようと思います。
ボリュームが多いので2日に分けようと思います。

◆コンピューティング

1.Amazon Elastic Compute Cloud(Amazon EC2)

まずは代表的なEC2ですね。いわゆる仮想サーバを提供してくれるサービスです。
ちなみに覚えておく用語としては以下の2点としておきます。

 ・Amazonマシンイメージ(AMI) = 仮想サーバの起動元となるマシンイメージ
 ・インスタンス = マシンイメージから起動された状態の仮想サーバ

image

2.Amazon EC2 Container Service (ECS)

次にECSと呼ばれるサービスです。
これはDockerというコンテナ型の仮想化ソフトウェアを最初から搭載した形で
EC2クラスター上でインスタンスを提供してくれて、しかも管理まで自動で行ってくれるようです。

ユーザーはDockerの管理を行う必要はなく、インスタンスを追加するだけで良いみたいですが、
どこまで本当なんだか怪しいところですね…

ちなみにコンテナ型仮想化の説明はここ↓を参照。

【図解】コレ1枚で分かるコンテナ型仮想化とDocker
http://blogs.itmedia.co.jp/itsolutionjuku/2015/05/docker.html

image

3.Elastic Beanstalk

AWSのインスタンス上にアプリケーションを迅速にデプロイする機能とのこと。

Java、.NET、PHP、Node.js、Python、Ruby、Go、Docker

サポートしているのは上記で構成されているWebアプリケーションとのことですが、
言葉だけだとどうもイメージできないですね…

動きとしてはユーザーはアプリケーションをアップロードするだけで、
Elastic Beanstalk が自動的にスケーリングし、容量のプロビジョニング、
負荷分散、アプリケーションの状態をモニタリングしてくれるとのこと。

image

4.Lambda

こちらはとりあえずAmazon様のお言葉をそのまま拝借したいと思います。

AWS Lambda は、コードを AWS Lambda にアップロードすると、
サービスがAWS インフラストラクチャを使用して
コードの実行を代行するコンピューティングサービスです。

自動でコードを実行してくれるサービス?
ジョブ管理のようなイメージでよろしいのでしょうか?

あんまりイメージがつかないため、もう少し掘り下げてみますと…

・Amazon S3 バケットまたは Amazon DynamoDB テーブルのデータ変更などの
 イベントに対応して AWS Lambda がコードを実行する
 イベント駆動型コンピューティングサービスとして。

・Amazon API Gateway を使用した HTTP リクエストまたは AWS SDK を使用した
 API 呼び出しに対応してコードを実行するコンピューティングサービスとして。

image

どうやら、すごく便利な代物のようですね。

イベントドリブンなアプリケーション開発を行う際に考慮すべきスケーリングや
耐障害性も利用者は意識することなく利用できるようになっているとのこと。

スケーリングはイベントの発生レートを自動分析し、AWSの裁量で自動的に行うようです。
そして、利用可能な言語は以下の3つのようです。

Node.js – v0.10.36, v4.3.2 (推奨)
Java – Java 8
Python – Python 2.7

Lambda 実行環境と利用できるライブラリ
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/current-supported-versions.html

(2016/9/14日修正 okanikaniさん、ありがとうございました!)

処理はLambdaファンクション(Node.js)で定義し、カスタムのイベントは
JSON形式にすれば他のアプリケーションに任意のデータを渡すことが可能とのこと。

ただし、処理の終了時点でデータが破棄されてしまうため、
ステートレスな形式で実装するか永続的にデータを保存する場合は
S3やAmazon DynamoDBなどを利用するのが良いとのこと。

◆総括

今日、触れるのはコンピューティングの部分までにしておきます。
AWSと一口に言いますけど、サービスの幅が広いですし、
あたりまえですが、本当に各サービス色々と考えて作られてますね。

それに最新鋭の技術を積極的に採用しているのもAWSのすごいところだと改めて感じました。
(勉強してんのか?ってツッコミは受け付けません)

それと実際のAWSインスタンスを使用した検証が始まるまでの
主にWebなどで調べた記事に関するご質問は受けませんので悪しからず。
(情報・私の認識違いに関するツッコミは↓のコメントまでお願いします)

それでは眠いので、また!

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1