はじめに
今回はAWSを使用してコンテナを起動する方法を紹介します。
また、今回のブログ記事は個人のメモとなるためキャプチャは添付しておりません。予めご了承ください。
使用するサービスは以下になります。
- ECR
- ECS(Fargate)
前提条件
以下のコマンドをインストールしている前提で説明します。
- AWS CLI
- Docker
ECRの作成
まず最初にコンテナイメージをアップロードするECRを作成します。
作成手順は以下になります。
- リポジトリの作成ページを開く
- 可視性設定を設定する
- リポジトリ名で任意の値を入力する
- その他の設定はデフォルトとする
IAMアカウントの作成
ECRにコンテナイメージをアップロードする場合は権限を持ったIAMアカウントが必要になります。
IAMアカウントを作成して権限を付与する手順を紹介します。
- AWSマネジメントコンソール > IAM > ユーザー > 「ユーザーを追加」を選択する
- ユーザー名を入力して次の画面に進む
- 許可を設定で次のように設定する
- 許可のオプション:
ポリシーを直接アタッチする
- 許可ポリシー:
AmazonEC2ContainerRegistryFullAccess
- 許可のオプション:
- 次の画面に進む
- その他の情報を入力してアカウントを作成する
- IAM > ユーザー > 作成したユーザー > セキュリティ認証情報 を開く
- 「アクセスキーを作成」を押下する
- 画面に従ってアクセスキーを作成する
- 8が終わるとアクセスキーとシークレットキーが表示される。
- アクセスキー及びシークレットキーは後で使用するため控えておくこと
- これらの値はインターネット上に公開してはいけないものであるため慎重に扱うこと
Dockerイメージのアップロード
Dockerイメージを作成してECRにアップロードする方法を紹介します。
- ターミナルで``aws configure`を実行する
- 表示内容に従ってアクセスキーやシークレットキー等を入力する
- 認証トークンを取得してDockerクライアントを認証する
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com
- 任意のDockerイメージをビルドする
docker build --platform linux/x86_64 . -t sandbox:latest
- コンテナを起動する際にエラーが発生するため
--platform
オプションをつける必要がある
- 2のイメージにタグ付けを行う
docker tag sandbox:latest xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/sandbox:latest
- イメージをPUSHする
docker push xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/sandbox:latest
2~5のコマンドは AWSマネジメントコンソールのECR > リポジトリ から任意のリポジトリを開き、画面右上の「プッシュコマンドの表示」を押すことで表示することができます。
コンテナイメージの起動
アップロードしたコンテナイメージを起動する方法を紹介します。
コンテナイメージを起動するために以下のものを作成する必要があります。
- クラスター
- タスク定義
- サービス
クラスターの作成
以下の手順でクラスターを作成します。
- AWSマネジメントコンソール > ECR > クラスターを開き、「クラスターの作成」を押下する
- 以下の値を入力する
- クラスター名: 任意の値
- VPC: 任意のものを選択する
- サブネット: 任意のものを選択する
- その他の設定: デフォルト
- 「作成」を押下する
タスク定義の作成
以下の手順でタスク定義を作成します。
- AWSマネジメントコンソール > ECR > タスク定義 を開き、「新しいタスク定義の作成」を押下する
- 今回は「新しいタスク定義の作成」を使用して説明する
- 以下の値を入力する
- タスク定義ファミリー: 任意の値
- コンテナ - 1
- 名前: 任意の値
- イメージURI: ECRにアップロードしたコンテナイメージのURI
- ポートマッピング: 使用するポートを入力する
- 他の設定はデフォルトとする
- 次の画面で以下の値を入力する
- アプリケーション環境: AWS Fargate
- オペレーティングシステム/アーキテクチャ: Dockerビルドで指定した値
- CPU: 任意の値
- メモリ: 任意の値
- 他の設定はデフォルトとする
- 次の画面で確認画面が表示される。問題がなければ「作成」を押下する
サービスの作成
以下の手順でサービスを作成します。
- AWSマネジメントコンソール > ECR > クラスターを開き、作成したクラスターを選択します。
- 画面下の
サービス
タブにある「作成」を押下します。 - 以下の値を入力します。
- ファミリー: 作成したタスク
- サービス名: 任意の値
- 他の設定はデフォルトとする
- サービスのステータスがアクティブになればコンテナが起動している状態になります。
実際にアクセスしてみる
今回はnginxのコンテナを作成したため実際にブラウザからアクセスして疎通できるかどうかを確認します。
IPアドレスは以下の手順で確認することができます。
- AWSマネジメントコンソール > ECR > クラスターを開き、作成したクラスターを選択します。
- 「タスク」タブを開き、実行しているタスクのタスクIDを選択します。
- 設定の中にパブリックIPが表示されていることを確認します。
上記のIPアドレスをブラウザに入力してコンテナが起動していることが確認できました。
まとめ
今回はECRとECSを使用してコンテナを起動する方法を紹介しました。 ECRやECS等を触る機会がなかったため設定に苦戦しましたが、思ってたより簡単にコンテナを起動することができました。
- コメントを追加
- 閲覧数 369
color contacts prescription
online homeopathic remedies <a href=""> https://forums.dieviete.lv/profils/127605/forum/ </a> alternative drug rehab
コメントを追加