健斗(32)108108件のシェア(ちょっぴり話題の記事)こんにちわ、札幌のヨシエです。2019は自分も参加出来て本当に勉強になりました。今回は発表された複数セッションで度々登場した「ecspresso」が気になったので使用感を知りたく触ってみました。ecspressoとは?面白法人カヤック様から提供されているGo製のECSデプロイツールです。kayac/ecspresso読み方は「エスプレッソ」というようです。v0.11.1ECSサービスのコードエクスポート最初にやることとしてecspressoで管理出来る設定ファイルをエクスポートします。ecspressoではクラスター名とサービス名を指定するすることで実行中のECSサービス情報をコード出力してくれます。test-fargate.yaml成果物として以下のファイルがカレントディレクトリへ出力されました。test-fargate.yamlecs-service-def.jsonecs-task-def.jsontest-fargate.yamlECSで定義されているクラスターやクラスターに設定されているサービスとタスク定義のファイル名が記載されてます。5m0secs-service-def.jsonサービス定義情報が記述されております。test-fargate-serviceを実行した結果と同じように見えますが、AWSCLIではサービス自体のイベントが出力される点から「定義情報のみ」を求める際は非常に重宝する情報です。[]}ecs-task-def.json設定されているタスク定義が出力されます。service情報と同じようにECS上でJSONファイルを表示すると普段はあまり必要としていない項目が表示されてしまいますが主にユーザーが必須として入力する部分を網羅して表示してくれます。[]}確認:タスクのスケールアウト/スケールインコンテナ環境の運用で特に対応を行うスケールアウト/スケールインをやってみました。statusサブコマンドを指定して現在のコンテナ数を確認します。running:1現時点ではmonitor-http:9というコンテナが1台のみ起動していることが見えました。このコンテナを10個にスケールアウトします。Completed!無事にmonitor-http:9のコンテナが10台にスケールアウトが出来ました。ここでポイントなのが--skip-task-definitionというオプションです。このオプションをせずに実行した場合でもコンテナのスケールアウトが実現できますが、リビジョンが一つ上がります。使い方としては新しいコンテナを追加起動したい時に使うのが良いかと思いますが、テストが未完や急なアクセスが予想される目的のスケールアウトでは--skip-task-definitonを指定してスケールアウトする形になると思います。同じようにスケールインを実施してみます。やり方は--tasksで指定している数値を変更するのみです。running:3※今回の検証環境はALBとコンテナを接続しており、ECSとしてスケールインの処理は素早く入りました。ALBの接続維持時間の設定を忘れていたのでdraining状態が続いたことでスケールインの完了までに時間がかかりました。確認:タスクのロールバックコンテナの良いところであるロールバック機能も対応しております。このコマンドを実行すると、一つ前のコンテナリビジョンに戻ってくれます。Completed!コマンド一行でロールバックが出来ました。動作自体はロールバック先のリビジョンを起動した後に残っているロールバック元のコンテナを終了していたので気になったのが今回はFargateを利用していたので問題はありませんでした。Trunking設定を入れるとより安全にロールバックが出来るかと思います。(というよりも必須で入れたほうが良い設定です)ECSにおけるインスタンスのENI制限が大幅に改善されネットワーク設計が簡単になりました!確認:タスクのデプロイ今度は使っているApacheコンテナを監視したくなる時があると思いまして、mackerel-container-agentをサイドカーで起動してみます。タスク定義はecs-task-def.jsonに記載されており、今回は「>」で指定している部分をmackerel-container-agentのコンテナ定義を部分ととして、containerDefinitionsに追加の記述を行います。[]}同じようにデプロイを行ってみます。Completed!このように無事mackerel-container-agentがサイドカーとして起動して、監視が出来るようになりました。最後にコンテナを運用する上で担当者がかゆいと思う部分を網羅されたツールでした。スケール対応はもちろんですが、ロールバックやデプロイ周りが一つに集約されてイメージしやすいコマンドを実行することで環境を維持しやすくなることやCD向けのオプションを処理に組み込むことで容易にコンテナ環境のCD環境を作ることが可能です。今回書ききれませんでしたが、--dry-runやsuspend-autoscalingといった様々な環境に対して導入しやすいツールだと考えております。コンテナ環境を運用している皆様も試して頂けると幸いです。コメントは受け付けていません。328,022AWS好きです、ゲームもちゃんと好きです。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。