「広告」

AWS コンテナサービス FARGATE

「広告」
記事内に広告が含まれています。
「広告」
「広告」

注目のAWS FARGATE

コンテナサービスを一歩進めたFARGATE!
東京リージョンでも、2018年7月からサービス開始!
と注目度抜群のサービスです。

「広告」

AWS FARGATEは、何がいいの?

EC2が不必要なコンテナサービス

従来のコンテナサービスは、EC2がベースでしたが、EC2の管理も不要となる。
コンテナ単独でスケールアウトが可能となる。
ELBからのアクセスも可能である。

AWS Fargate FAQs
Find answers to frequently asked questions on general service information, security and compliance, and SLA, for AWS Far...

には、

FAQAWS Fargate はどのようなユースケースをサポートしていますか?

AWS Fargate はコンテナの一般的なユースケースをすべてサポートしています。
たとえば、マイクロサービスアーキテクチャアプリケーション、バッチ処理、機械学習アプリケーション、オンプレミスアプリケーションのクラウドへの移行などです。

とあります・・となると、
lamdaからのバッチ処理などにもいい!
CPUパワーが必要となる処理。
必要な時だけに起動をして、スケールアウトしてくれる!
と便利な事がいろいろとありそうです。

今回は、バッチ処理ではないが、httpアクセスを例にFARGATEを体験してみます。

「広告」

docker image を作成

Dockerfileを作成します。

# cat Dockerfile
FROM httpd:latest

httpdだけという単純なコンテナ

# docker build -t httpd_t .

↑作成します。

# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
httpd_t latest xxxxxxxx 5 weeks ago 177.5 MB

# docker run -d -p 80:80 httpd_t

↑念のため、この段階で起動をしてみます。

# wget http://localhost/ -O res.txt

localhost をDNSに問いあわせています... ::1, 127.0.0.1
localhost|::1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 45 [text/html]
`res.txt' に保存中

100%[==========>] 45 --.-K/s 時間 0s

res.txt へ保存完了 [45/45]

# cat res.txt
<html><body><h1>It works!</h1></body></html>

↑無事、アクセスができました。

「広告」

AWSにイメージをpushします

ECSとECRのアクセスがあるロールで、ログイン

#aws ecr get-login --no-include-email --region us-east-1

「docker login -u AWS -p」 で始まる長い、コマンドプロンプトが返ってくるので
そのまま、コピー&ペースとして実行。

「Login Succeeded」

と出てくればOK!

↑「xxxhttpd」というECRリポジトリを作成しておきます。

#docker tag httpd_t:latest (AWS ID).dkr.ecr.us-east-1.amazonaws.com/xxxhttpd

↑タグ付けを行います。

#docker push (AWS ID).dkr.ecr.us-east-1.amazonaws.com/xxxhttpd

↑ECRへpushします。

↑ECRにpushされました。

(AWS ID).dkr.ecr.us-east-1.amazonaws.com/xxxhttpd

↑リポジトリのURLをコピーしておきます。

↑「custom」を選びます。

↑先ほど、コピーした「(AWS ID).dkr.ecr.us-east-1.amazonaws.com/xxxhttpd」
を赤枠部分に貼り付けます。

↑「ロードバランサーの種類」を「Application Load Balancer」にします。

↑その他の項目は、デフォルトにして、「作成」をして、少しすると、すべて「完了」となります。

↑作成後、「Auto Scaling」を調整します。5個まで、スケールアウトするようにします。

↑「EC2」の「ロードバランサー」を選び、該当ののものをみつけて、赤枠の「DNS名」「Aレコード」をコピーします。

↑少し経つと、ブラウザからアクセスができるようになります。

「広告」

AWS FARGATEまとめ

AWS FARGATEは、EC2を気にすることなくスケールアウトが可能なコンテナサービス。
通常は稼働をしていないで、SQSや、lambdaをきっかけに、処理をさせたり、LApython でのバッチ処理など、用途は広がります。

「広告」

参考書

この本、お勧めです!もちろん、買っています!

タイトルとURLをコピーしました