exec /usr/local/bin/docker-entrypoint.sh: exec format errorにハマる AWS ECRへプッシュ後、AWR ECSから起動しようとするとどうしてもコケる。 原因 イメージ作成時に稼働プラットフォームを指定すべきであった。
AWS CDKは、使い慣れたプログラミング言語を使ってAWSのクラウドリソースを定義できる、オープンソースのソフトウェア開発フレームワークです。 しかし、AWS CDKを利用する上で、Pythonなどの環境設定が面倒で、Pythonのバージョン、Node、AWS CLI、AWS CDKなど、両方を指定しなければならないのがややこしいところです。 CDKのバージョンアップが早いし、チームで作業する場合、全員が環境を同期させるのは大変なことなんです。 その際、全員の開発環境を統一するためにDockerを使用することをおすすめです。 Dockerを使用してAWS CDKを実行する方法について説明します。 1.Docker、AWS CLIをインストールする CDKプロジェクトの初期化はコンテナ内で行えるので、NodeやAWS CDK関連のパッケージをローカルにインストールする必要はなく、最低限のD
手順 dockerとdocker-composeがインストールされている環境で、以下の通り準備および実行します。 0. ディレクトリ構成 aws-cdk - Dockerfile - docker-compose.yml - docker-compose-run.sh 以下、aws-cdkディレクトリ内での作業となります。 1. Dockerfileを作成 Pythonの公式コンテナイメージを使って、AWS CDK入りのコンテナイメージを作成します。 必要なコマンドをDockerfileに書き連ねていきます。 インストールされるAWS CDKはPython3対応です。 # the latest Python FROM python:latest # install the latest nodejs & npm RUN apt update \ && apt install -y node
これはなに? AWS CLIでECRの untagged イメージにタグ名をつける手順メモ。 公式の手順だとイメージ変更にタグ名が必要だが、そもそもタグが付いてないイメージなので困って調べた。 イメージにもう一度タグを付ける - Amazon ECR 目次 これはなに? 目次 実行環境 作業 最後に 実行環境 AmazonLinux2 作業 1. タグ名を変更したいイメージの ”imageDigest" 値を取得する。 aws ecr describe-images --profile <your_profile_name> --repository-name <your_repo_name> 2. マニフェストを作成する。 ここが肝で、--image-ids に imageDigest を指定します。 sha256:xxxx の部分は、1で取得した値を入れます。 MANIFEST=$(a
[小ネタ] Amazon ECR(Elastic Container Registry)のlatestタグの向き先をAWS CLIで変更する ども、大瀧です。 Amazon ECR(Elastic Container Registry)は、Dockerイメージを格納できるプライベートリポジトリのマネージドサービスです。弊社が提供するEC/CRMサービスPrismatixはAmazon ECSで稼働しており、コンテナイメージをECRでホストしています。各コンテナのアプリケーションコードはGitHub、CIとしてCircle CIで管理しておりECRにPushするDockerイメージにはCircle CIのビルド設定によって、自動でlatestタグが付与されます。 そのためECSのタスク定義でlatestタグを参照すると最近Pushされたイメージを参照してしまうため、実験的なコードを試すとき「
ECRの使用方法リポジトリ作成まずDockerイメージを保管する場所となるリポジトリを作成します。 AWSマネジメントコンソールにログイン → 画面上部検索窓 [ registry ] で検索 → Elastic Container Registry をクリック → ECR画面の左ペイン [ Repositories ] → [ リポジトリを作成 ] を押下し、次の画面でリポジトリの設定を行います。 一般設定可視性設定一般的な開発では基本的に プライベート を使っていくことになると思います。プライベートに設定するとリポジトリへのアクセスに、IAMでの認証が必要となります。 認証なしで公開するには パブリック を選択します。ECR Public Gallery に公開され誰でもアクセスできるようになります。 リポジトリ名任意の名前を入力します。 タグのイミュータビリティDockerイメージは
はじめに Amazon ECS に、Container Insights というコンテナワークロードに特化したモニタリング機能があります。ECS クラスターで稼働するサービスやタスクを一目で把握する可視化機能や、サービス単位のパフォーマンスメトリクスを確認する機能があります。また、サービス配下のタスク単位では、最新時刻のパフォーマンスを確認する機能があり、タスクに対する負荷の集中が確認しやすくなります。 Container Insights は、簡単に始められるので有効化の方法を確認してみましょう。 Container Insights の有効化 Amazon ECS クラスターの詳細画面を引きます。CloudWatch monitoring に Default と表示されている場合は、Container Insights は無効化となっています。 既存の ECS クラスターの有効化は、マ
CloudFormation を使用するときは、CloudFormation スタックの作成、更新、または削除時に問題が発生する場合があります。以降のセクションは、発生する可能性のある一般的な問題のトラブルシューティングに役立ちます。 CloudFormation に関する一般的な質問については、「AWS CloudFormation のよくある質問」を参照してください。また、AWS CloudFormation フォーラムで回答を検索したり、質問を投稿したりすることもできます。 トラブルシューティングガイド CloudFormation がスタックの作成、更新、または削除に失敗する場合は、問題に関する詳細情報の入手に役立つエラーメッセージやログを表示できます。ここでは、CloudFormation の問題をトラブルシューティングするための一般的な方法について説明します。特定のエラーと解決
こんにちは! ZOZOテクノロジーズ開発部の塩崎です。 この記事ではCloudFormationにDBのマスタパスワードなどの秘密情報を渡す3つの方法を説明いたします。 前提 我々のチームではAWSインフラリソースのプロビジョニングにCloudFormationを使用しています。 CloudFormationのテンプレートファイルはGitHubでバージョン管理されており、スタックに対するチェンジセットの作成をCircleCIから行っています。 このあたりの詳細は以下の記事に書かれているため、詳細はそちらをごらんください。 techblog.zozo.com 課題 このような方法でCloudFormationテンプレートを管理していましたが、それに伴う課題が生まれました。 DBのマスタパスワードなどの情報をどのようにして渡すかということです。 テンプレート内で使用するためのパラメーターは以下
イメージを更新しECRにプッシュ ローカルのプロジェクトを更新したら、イメージを作成してECRにプッシュする。 docker-compose build ↓ AWS ECRにログイン aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin 111111111111.dkr.ecr.ap-northeast-1.amazonaws.com ↓ doker tag <対象のイメージ名:タグ名> <変更後のイメージ名:タグ名> ※イメージ名はECRのレジストリIDとエンドポイント ↓ docker push <対象のイメージ名:タグ名> ECRレポジトリを確認 イメージが正しくプッシュされているか確認する。 ECSのタスク定義の更新 既存のタスク定義を選択し
最近Dockerアプリの開発環境をAWSのAmazon ECSに構築する必要があって、環境構築の方法とかは普通に見つかったけど、デプロイの方法とかが分かりにくかったので、手順をここに纏めとく。 なお、タイトルに「Latest運用簡易版」とある通り、いわゆるタグを latest とかで毎回上書きする簡易的な手順。 latest でのデプロイは、本番では推奨されていないので注意。 (タグを変えてのデプロイは、CodeDeploy とかを使うと出来るらしい?) 1. Amazon ECRのリポジトリ作成AWS上のDockerコンテナレジストリであるAmazon ECRに、使用するDockerイメージ用のリポジトリを登録する。 (Docker Hubとかでも流れは同じだと思うが、今回は以下ECRで説明。) これは基本的に名前を入れるだけなので、あまり迷うことは無いと思う。 Latest運用というこ
この記事では、プライベートサブネット上のECSコンテナを立てて、アクセスしてみます。 はじめに 以前作ったコンテナをECSで起動してみました。 本番運用のつもりでプライベートサブネット上にfargateでデプロイしています。 VPCエンドポイント、ECS各種コンポーネントのいい勉強になりました。 目的 プライベートサブネット上にコンテナを立てる コンテナオーケストレーションとしてAmazon ECS、コンピューティングリソースとしてAWS Fargateを使用 そのコンテナにALB経由でアクセスする プライベートサブネットからAWSリソースへのアクセスのため、VPCエンドポイントを各種作成する 前提 無料枠に収まりません。 作成後は必要に応じて削除してください。 AWSコンソールで各種作業を行います。 ECRだけAWS cliを使用します。 環境 OS/ツール バージョン
AWS Fargateについて無知だったので、RailsアプリケーションをFargateで動かすことを目指して、色々触っていました。 とりあえず、RailsアプリをGithubActionsで自動デプロイしてSidekiqも裏で動く、みたいなところまでできるようになりましたので、その手順を半年後の自分でもわかるように残しておきます。 ※本番環境で使われるベストプラクティスを示しているとかではありません。ご了承ください AWSコンソールでの設定 東京リージョンを選択しておきます。 IAMポリシー・IAMロールの作成 ECSを動かす際に必要なIAMポリシー作成とIAMロールの編集を行います。 まずは、以下から、IAMポリシーの作成を行います。 ポシリーの作成画面に遷移後、JSONのタブを開きます。 こちらのJSONを入力ください。自分のアカウントIDを入力する欄もあります。アカウントIDの確認
概要 2020年7月にDocker社とAWSが協業を発表した。 DockerとAWSが協業 Docker DesktopとAmazon ECSが連係可能に - ITmedia NEWS それから約半年後、ついにdockerコマンドでAWSに一発デプロイできるようになった Docker ComposeとAmazon ECSの統合が一般提供に:CodeZine(コードジン) ここでは、dockerコマンドを使ってfargateにデプロイする方法をメモする。dockerを使ってAWSにデプロイする、ということは数年前からできてたことで、それ自体は何も新鮮ではないのだが、ざっくりいうとAWSの設定を全く、ないしは極力せずにデプロイできるところが今回のアップデートの強みと言える。 今までのAmazon ECS CLIである「ecs-cli」コマンドは使わない AWS CloudFormationの設
この記事について 「AWS & Game Advent Calendar 2020」3日目はゲーム開発に役立つコンテナ技術についてご紹介します。 大規模なゲーム開発においてはプロジェクト管理するツールとして Redmine というソフトウェアを利用される方は数多くいらっしゃいます。ゲームを開発する過程では頻繁に変更が発生するため、その作業工程を管理し、往々にして人数が膨れ上がりがちなプロジェクトメンバーに最新の状況をシェアする必要があります。 デバッグ時に発見されたバグはチケットの形で一覧化され、1つ1つを作業として割り振っていくチケット駆動開発のスタイルはアジャイル開発と相性もよく、多くのゲーム開発会社で取られている開発スタイルとなります。 ゲーム開発において身近な存在である Redmine ですが、下手をするとプロジェクト毎にサーバーが乱立しがちとなり、その構築や運用のための工数が気付
はじめに Amazon ECR(Elastic Container Registry)のDockerイメージを取得するには事前にECRレジストリに対してDockerクライアントを認証させる必要があります。 本記事はDockerクライアントのレジストリ認証の手順についてまとめたものとなります。 Amazon ECR では、ユーザーがレジストリに対して認証したり、AWS ECRレポジトリとの間でイメージをプッシュまたはプルしたりできるためには、事前に IAM ポリシーを通じて ecr:GetAuthorizationToken API へのアクセス権限を許可されている必要があります。 イメージのプル - Amazon ECR 使用環境とバージョン macOS Catalina aws-cli/2.0.28 Docker version 19.03.13 記事の対象 ある程度AWSとDocker
今回はawsのECRに登録するという手順の方を紹介してみようと思います。 ※この記事では、aws cliが使える状態まで来ている前提で書いていきます。 以下の手順はDocker hub編と同じなので省略します。 Dockerfileを作成Dockerfileの中でmysqlをコンパイルする処理を書くコンパイルする部分以外は極力Docker hubで公式に配られているmysqlのDockerfileに寄せる 最後のプッシュの部分はプッシュ先をECRにしますので、ここの手順が変わります。 DockerイメージをIntel Mac(x86_64)とM1 Mac(arm64)両方作成してDocker hubにプッシュする 成果物 https://github.com/gendosu/docker-mysql 手順 M1 Macだけだとちょっと難しいかなという事で M1 MacとIntel Macを
Step Functions EC2 Lambda Aurora CodeBuild CodeCommit CodePipeline CloudFormation S3 S3 Glacier CloudWatch SNS SQS Athena Kinesis Data Firehose AppSync Elastic Container Registry Application Auto Scaling CloudTrail Systems Manager API Gateway Amplify Secrets Manager AWS WAF Fargate ECS ELB Route53 DynamoDB RDS https://github.com/redmica/redmica_s3 db: name: [db_name] user: [user_name] password: [p
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く