「広告」

AWS コンテナサービス FARGATE

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

注目のAWS FARGATE

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

「広告」

AWS FARGATEは、何がいいの?

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

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

よくある質問 - AWS Fargate | AWS
コンテナ用のサーバーレスコンピューティングエンジンである AWS Fargate の、サービス全般の情報、セキュリティとコンプライアンス、SLA に関するよくある質問の回答をご覧いただけます。

には、

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をコピーしました