イノベーション エンジニアブログ


株式会社イノベーションのエンジニアたちの技術系ブログです。ITトレンド・List Finderの開発をベースに、業務外での技術研究などもブログとして発信していってます!


このエントリーをはてなブックマークに追加

カスタムコンテナイメージを使った AWS Fargate で Azure の BLOB Storage をチラ見してみた

お久しぶりです。
プライベートで Azure を使っている SRE チームの syoga です。

もうすぐ今年も終わりですね! という訳で、
今回は AWS Fargate を使ってみようと思います。

Fargate で何をしようかな

Fargate は AWS が提供する ECS でインスタンスを意識せず利用できる、フルマネージドなコンテナ実行環境です。 詳細は AWS の公式ページ等で要チェックください。

で! 何をしようかと思ったのですが、以前の 記事 で作成した LINE BOT で Azure の Blob Storage にアップロードした 画像ファイルを気軽に参照できるようにしたいという思いがありましたので、そんな仕組みのコンテナイメージを作って Fargate で利用してみます。

おさらい

LINE を通じてアップロードした画像を Cognitive Service が解析しますが、その際にアップロードされた画像は BLOB Storage に保存されます。

保存されている画像をチラ見するアプリケーションを作成し、Fargateで起動しておけば好きな時に確認できますね!!

blog1.png

システム構成は上記の通りで Azure と AWS を仲良く利用します。

Azure SDK for PHP を利用し BLOB Storage に保存してある画像の URL 一覧を 取得して表示する Web アプリケーションを作成しておきます。

上記のコンテナイメージを作成し Fargate で利用するのが今回の目的です。

早速 Fargate してみる…前に、ECR

ECR にリポジトリを作成し、ローカルで作成したコンテナイメージを Push しておきます。

早速タスクを作成する

タスクの作成を行います!
※ ECSにはクラスター、サービス、タスクという概念がありますが、今回は割愛します。

blog2.png

AWS コンソールから ECS のメニューを開いてタスク定義を作成します。

blog3.png

起動タイプは Fargate を選択します。

blog4.png

タスクとコンテナの定義の設定で必要な情報を入力していきます。

blog5.png

タスク実行の IAM とタスクサイズを選択します。

blog6.png

Fargate で利用するコンテナを選択するため「コンテナの追加」をポチります、その後上記の設定画面が表示されるので、利用するコンテナの情報を入力し、今回はこのままタスクを作成します。

早速クラスターを作成する

クラスターの作成を行います!

blog8.png

ECS のポータル画面から「クラスターの作成」をポチっとしてクラスターの作成を開始します。

blog9.png

クラスターテンプレートは 「AWS Fargate を使用」 を選択して「次のステップ」へ。

blog10.png

クラスター名と VPC の作成にチェックを入れて作成ボタンをポチります。

VPC、サブネットの作成インターネットゲートウェイのアタッチを自動でしてくれるので、楽ちんです。

早速サービスを作成する前に ロードバランサ

自動で作成された VPC に対してロードバランサを作成しておきます、今回は blog-ecs-alb という名称で ALB を作成しておきました。

早速サービスを作成する

作成したクラスターのリンクを押下し、サービスの作成を選択します。

blog12.png

起動タイプに Fargate を選択しサービス名は任意の名称とします。 先程作成したタスク、クラスターはここで設定します。

blog11.png

タスクの配置は AZ バランススプリットを選択して、「次のステップ」をポチ。

blog13.png

ネットワーク構成はクラスター作成時に自動で作成された VPC とサブネットを設定。

blog14.png
blog15.png

ELB の設定では先程作成した ALB を選択して、リスナーポート、ターゲットグループ等ネットワークの設定を行い「次のステップ」へ。

blog16.png

Auto Scaling は今回は行わないので、そのまま「次のステップ」へ

確認画面が表示されるので内容を確認し「作成」ボタンを押して完了です!

では試してみます

まずはいつも通り弊社フリー素材の Kotani 氏の写真を bot に送ります。

blog17.png

33歳だと…やはりPKB(パツキンボーイ)になったので若く見られているのでしょうか(個人の見解です)

ロードバランサの DNS 名でアクセスしてみます。

blog18.png

こんな感じでブラウザ上から、アップロードした画像が参照できるようになりました!
ボケボケだとしても!!!

設定も楽ちんですし、EC2インスタンスの事を考えずに運用できるので OPS の人にも優しいですね。
弊社でもどんどんプロジェクトに取り入れていきたいと考えております。