◎はじめに ・下記のようECSを使うためDockerの学習をしていましたが概要ぐらいは掴めた気がするため、今回はECS(Amazon EC2 Container Service)を実際に触ってみました。 AWS ECSを使用する前にDockerを理解しなきゃ Docker学習中につき!(コマンドの整理とイメージ構築など) Docker学習中につき!(ユーザ定義ネットワークでコンテナ間の通信) 1. ECS使用開始 ■とりあえず触ってみよう ・とりあえずECSを動かしてみたかったため、下記公式ドキュメントの記載に沿ってやってみました。 ・今回はCLIは使っておらずAWSコンソールから実施しています。 [セットアップ] [Amazon ECS の使用開始] 1-1. IAM ○ IAMユーザ作成 ・セキュリティの観点からECS操作用のIAM ユーザーを作成する 1) Set user deta
概要 ECS上のコンテナをダウンタイム0で更新(デプロイ)する方法をまとめます。 環境 ALB ECS container agent 1.13.0 Docker 1.11.2 Amazon ECS Container Agent Versions - Amazon EC2 Container Service ポイント minimumHealthyPercentとmaximumPercentを適切に設定する connection drainingを適切な長さにする この2つを意識していればOKです。 minimumHealthyPercentとmaximumPercentを適切に設定する desiredCount: 4、min: 0%、max: 100%の場合 この場合最低0つ(0%)まで縮小し、最高でも4つ(100%)までしか増えない状態で更新するということになります。 つまりダウンタイ
大栗です。 Network Load Balancer(NLB)はIPアドレスが固定で、秒間数百万リクエストでも簡単にスケーリングするロードバランサーですがTCPのバランシングを行うだけでTLSのTerminationは行なえませんでした。アップデートによりTLSのTerminationが可能になり、アクセスログも出力可能になりました。 New – TLS Termination for Network Load Balancers Network Load Balancer Now Supports TLS Termination TLS Listeners for Your Network Load Balancer NLBのTLS Termination TCPに対するTLS Terminationは旧世代のロードバランサーであるClassic Load Balancer(CLB)で
ここまで既にだいぶ長かったですが、あとは味付け程度の流れになります。 アプリケーションを更新する場合は当然デプロイして、インスタンスやコンテナの中身を入れ替えることになるのですが、今回はスタイリッシュに Blue-Green Deployment してみましょう。 目次 (0) はじめに (1) Docker (2) イメージ自動生成 (3) サービス起動 (4) デプロイ ← イマココ! (5) Auto Scaling (6) 費用と性能 Blue-Green Deployment とは AWSで良い記事がありました。(さすがの @riywo 先生) AWS Solutions Architect ブログ: Blue/Greenデプロイとは? あとは画像検索でググったりしてください。その上でサラッと説明します。 古来のデプロイ方法は組織ごとに色々あるでしょうが、例えば何かしらのデプロイ
こんにちは、かたいなかです。 先日のre:InventにてECSに対してCodeDeployを使用してBlue/Green Deploymentを行う機能が発表されました。 AWS CodeDeploy/AWS CodePipelineでAWS Fargate/Amazon ECSのCI/CDがサポートされました! #reinvent 個人的にワクワクが止まらくなってしまい、ラスベガスに行ってもないのに早速試してみましたので、内容を紹介します。 今回の記事では、デプロイ後に本番トラフィックを向ける前に本番環境内で動作を確認し、動作確認後リリースを行う、という流れを実装していきます。 Blue/Green Deploymentとは Blue/Green Deploymentはデプロイの一つのパターンです。 本番環境内に2つの環境を用意し、トラフィックを片方だけに向けておきます。新しいバージョ
AWSエンジニアは朝5時に起きるらしいと聞いていましたが、まさか自分がそっち側に回るとは思ってもいなかったもこ@札幌オフィスです。 とうとうきてしまいました! とうとう、ALB一つだけでターゲットグループの重み付けが出来るようになってしまいました!!!! Application Load Balancer simplifies deployments with support for weighted target groups New – Application Load Balancer Simplifies Deployment with Weighted Target Groups 従来までのBlue/Green(カナリアリリース) デプロイ方法 重み付けをしてトラフィックの数パーセントを新しい環境に流すような場合は、複数のロードバランサーを用意した環境で、Route53にて重み付
Amazon ECSにおけるmackerel-container-agentのセットアップ手順です。 動作条件 mackerel-container-agentの動作には下記の条件が必要となります。 EC2起動タイプをご利用の場合 Amazon ECS コンテナエージェント バージョン1.26.1以降 Fargate起動タイプをご利用の場合 AWS Fargate プラットフォームバージョン 1.3.0以降 mackerel-container-agentの動作に問題がある場合、ご利用環境がこちらの条件を満たしているかご確認ください。 課金に関する注意事項 1つのタスクに対して1つのホストがMackerelに登録されます。有料プランの場合は課金が発生しますのでご注意ください。詳しくはFAQ・ホスト数の計算方法についてをご覧ください タスク定義にコンテナを追加する 監視したいタスク定義にma
AWS Auto ScalingやHerokuなど、負荷に応じて自動的にサーバーを増減させるAuto Scalingの仕組みは徐々に普及しつつあります。 ここではAuto Scaling環境でMackerelをうまく使うための方法を紹介します。Herokuを利用している場合は、HerokuをMackerelで監視するも合わせて参照してください。 自動退役処理についての注意点 mackerel-agentのAuto Scaling環境向け設定 ホスト起動時にホストステータスをworkingにする ホスト縮退時に自動退役させる rpm/debでインストールしている シェルスクリプトで起動している Windows版mackerel-agentを利用している AWSインテグレーションを利用してEC2を登録している Auto Scaling対応のグラフを見る mackerel-agent がインスト
はじめに AWS Fargateの東京リュージョンが始まったため、既存システムのEC2をホストとしたECSからFargateへ移行したので、AWS Fargateで環境を作るための手順を書きます。 手順 VPC、サブネットなどのネットワーク周りの作成 ecs-cliの初期設定 ECSクラスターの作成 CloudFormation によるALBの作成 ecs-cli によるサービスのデプロイ ネットワーク周りの作成 VPCの作成 まずはecs-cliで作成できないVPCやセキュリティグループの作成をします。 詳しい説明は省きますが、AWS CloudFormation VPC テンプレートを参考にほぼそのままの内容となっています。 AWSTemplateFormatVersion: '2010-09-09' Description: Fargate sample vpc # https://
モチベーション Fargate簡単だよ系の記事は見かけるが、実際にやるといくつかパニクりポイントがあります。 公式ドキュメントは逆引き系なので使い易いんですが、単語が多い為か最初は難解、 ここでは備忘録として残します。 Fargateとは Dockerです。 こんな感じの構成になってます クラスタ/サービス/タスク/コンテナ 起動タイプがEC2の場合はクラスタの部分がEC2インスタンスのクラスタとなり自分で管理する必要あり。 Fargateの場合、裏側で勝手に管理してくれるのでスケールアウトがメタクソ楽になります。 その代わりお値段が約2割増です。 パニクりポイント 初めての人がALBを使ってAPIをデプロイしようとするとパニクりポイントに出会えます。 その1. TARGET GROUPについて ターゲットグループを真っ先に作りましょう。 なぜかって? ECSのデプロイはターゲットグループ
要約 ECSでWebサーバーを動かしてみようとしたら、表題の通りの問題が発生。 問題解決に至るまでに何を調べたか、何を考えたかを書いた。 (2020/12/02追記) ちなみに、投稿から2年経ってますが、この記事の主眼はECSの知識と言うより原因調査の考え方なので、読む価値は無くなってないんじゃないかなと思います。 それに、ECSやVPCの仕様が根本的に変わったってことも無いと思いますし。 問題発生 いい加減にECS勉強しておかなきゃと思い、試しにウィザードに沿ってECSクラスターを作って見たところ、Run Taskでエラーになる。 Unable to run task No Container Instances were found in your cluster. 確かに、ECS Instancesのタブには1つもインスタンスが表示されない。だが、EC2のダッシュボードには「ECS
概要 dockerコンテナを管理するコマンドは複数あるが(docker, docker-composeなど)、デプロイ先に AWS ECS/ECR を考えた場合、ecs-cli ベースで管理すると便利そうだとわかった。 利用方法をメモしておく。 ecs-cli のよいところ 基本的には docker-compose と同じコマンド体系 基本的には docker-compose と同じ構成管理ファイル(docker-compose.yml)が使える ECS専用のパラメータは別ファイルとして切り出せる AWSの認証周りの面倒なところをうまいことラップしてくれる 手順 環境変数を設定する アカウント情報を環境変数として設定する direnv で自動読み込みされるようにしておく AWS_ACCESS_KEY_ID=1234xxxxx AWS_SECRET_ACCESS_KEY=5678xxxxx
概要 これの続きから ecs-cli ベースでイメージを管理する とりあえずECRにイメージがあがったので、Fargateを使って非常駐のタスクとして実行してみる。 (常駐コンテナ=service, 非常駐コンテナ=run-task というらしい) 手順 ECSクラスタを作成する ECSクラスタを作る。Fargateを使うので、EC2のインスタンスなどを用意する必要はない。 クラスタの事前設定 まずはクラスタの事前設定を行う $ ecs-cli configure --cluster hello-world --config-name hello-world --default-launch-type FARGATE --region $AWS_REGION
みなさんコンテナを使うことの意味を自信もって答えられるでしょうか? ここ1年ほどコンテナ関連の仕事をメインでやっているハマコーですが、いろんなお客様からこういったお声をいただくことが多くありました。 「それはコンテナ化する意味があるの?」 「こんなコンテナ運用は危ない?」 「ECSの設定とか実際めんどい。docker runじゃだめ?」 「EKSって使えんの?」 そういう声を聴く中で、自分なりの答えを模索していたわけですが、岡山での弊社イベントAWS最新技術の祭典Developers.IO 2019 at 岡山城へ登壇するにあたり、そのあたりのもやもやを自分なりに昇華したのが、本日の内容です。 「このアプリをコンテナ化する意味があるのか、わからない」 「コンテナ化することで余計めんどくさくなった」 「AWSのコンテナサービスの何を使ったら良いのかわからない」 という悩みを抱えている方には、
結論 docker-compose.ymlをecs-cli用に書き直すことは必要だけどとりあえず、デプロイまではできた build ディレクティブなどが書けないようなので注意 チュートリアル: ECS CLI を使用して EC2 タスクのクラスターを作成する(公式) 用意するもの docker-compose 実行環境(開発環境) ecs-cli (Amazon ECSのコマンドラインツール) - aws-cliみたいなもの AWS Access key ID AWS Secret Access Key AWS EC2のキーペア:KEY_NAME(ECSのベースとなるEC2インスタンスを起動するため) 開発環境の用意 docker-compose.ymlをせこせこつくる Docker HubにあるPHP(Apache)とかMySqlとかのコンテナイメージを 公式を優先して組み合わせ env
前回の続きです。 実際にTemplateを作成したので、スタックを作成します。 ただ、ポリシーを設定していなかったのでその時の対処方法についてまとめます。 websandbag.hatenablog.com この記事で得られる事 CloudFormationでロール作成(iam:CreateRole)を追加する時に必要なポリシーがわかる。 イントロダクション 今回作成したソースについて https://github.com/websandbag/image_uploader 事象 v0.1で作成したポリシーでスタックを作成しようとすると、AWS CLIでCloudFormatioのスタックを作成したが、ロールバックしてしまう。 02:07:40 UTC+0900 CREATE_FAILED AWS::IAM::Role ExecRole API: iam:CreateRole User:
概要 前回 ECS に docker-compose 的なことができる ecs-cli を使って複数コンテナで構成されるアプリを立ち上げました イメージはすでに docker hub で公開されているものを使いました 今回は自分でビルドしたイメージを使った docker-compose アプリを ECS 上にデプロイしてみました 環境 Amazon EC2 Container Service (ECS) 2017/01/05 時点 CentOS 7.3.1611 docker-compose 1.9.0 aws-cli 1.11.35 事前準備 今回も docker-compose が動作する手元の環境が必要なので構築しておいてください 前回も使っているので前回の環境があればそのまま使って OK です また、ECS 上にクラスタおよびコンテナインスタンスとリポジトリを作成しておいてください
この記事は AWS Advent Calendar 2015 - Qiita の 3 日目の記事です。昨日は “AWS CodeDeploy と CircleCI で Docker コンテナを自動デプロイ” という記事を書きましたが、それに引き続き AWS CodeDeploy ネタです。 Fabric や Capistrano などのデプロイツールを利用していると、AutoScaling によって起動してくるインスタンスへのアプリケーションのデプロイをどうするかというのは悩みの種ですが、 AWS CodeDeploy を利用すると、最後にデプロイに成功したリビジョンを起動時にデプロイしてくれるので非常に助かります。その一方で、 AutoScaling と連携して使うときに気をつけておくべきいいポイントがいくつかあるので、それについて書きます。 1. User Data でのプロビジョニン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く