3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[JAWS-UG 磐田] コンテナハンズオン

Last updated at Posted at 2019-08-21

【ハンズオン演習】コンテナ(Docker)に触ってみよう

◆概要

 コンテナについて解説を交えて触ってみましょう。

 参考 【図解】Dockerの全体像を理解する


◆ハンズオンを始める前に

・パソコンの準備をお願いします。

  ※パソコンでのハンズオンを実施いたします。

・会場設置のWi-Fiへ接続願います。

  ※インターネットへの接続を前提としています。

・AWSアカウントの準備はお済みですか?

  ※ハンズオン開始前までに準備願います。
   作成手順:https://aws.amazon.com/jp/register-flow/

・ターミナルソフトウェアの準備

  ※EC2(サーバ)の操作時に使用します。
   Windowsクライアントの方は、Tera TermやPuTTYなどをご用意ください。

・ハンズオン終了後の操作について

  ※使用したEC2・ECS・ECR・ALBは、AWSの課金対象になります。必要ない場合は、削除してください。
   [ECS(クラスター)削除方法]
   [ECS(タスク定義)登録解除方法]
   [ECRイメージ削除方法]
   [Cloudformation削除方法]
    ※下記順番で削除願います。
    1.jawsug-iwata-20190821-alb
    2.jawsug-iwata-20190821-ec2
    3.jawsug-iwata-20190821-vpc


◆今回の演習環境について

構成図.PNG

【演習内容】
①演習環境準備
②EC2を使用してコンテナイメージ作成&リポジトリ登録
③Fargateでアプリケーション実行&プログラム更新


◆ハンズオンを始める前に・・・

・AWSマネジメントコンソールにログインして、東京リージョンが選択されている事を確認してください。

image.png


・画面上にIAM・EC2・S3の文字が表示されている事を確認してください。

 ※表示されていない場合は、画面左上のサービスをクリックして各サービスを選択してください。

image.png


①演習環境の準備

1.ハンズオンのVPC環境構築用のCloudFormationの実行

Launch Stack

上のリンクより、ハンズオン用のVPC環境を構築するためのCloudFormationを実行します。

※環境構築完了後、次の手順に進んでください。

2.EC2用のキーペアー作成

2-1.[作成手順]

 ※作成済みの場合は、次へ進んでください。

3.ハンズオンのEC2環境構築用のCloudFormationの実行

Launch Stack

上のリンクより、ハンズオン用のEC2環境を構築するためのCloudFormationを実行します。

※環境構築完了後、次の手順に進んでください。

3-1.KeyNameの選択

keyname.PNG

  ※2.で作成したキーペアーまたは作成済みキーペアーを選択

3-2.機能の項目で、承認欄をチェック

機能.PNG

  ※チェック後、スタックの作成をクリックしてください。

4.EC2への接続

4-1.Amazon EC2コンソールを開きます。

 ※リンク先をクリックすると、東京リージョンのコンソールに接続します。

4-2.作成したEC2サーバを選択し、[接続]をクリックします。

image.png

image.png

4-3.パブリックDNSの文字列をコピー、ターミナルソフトでssh接続します。

ログインユーザー
ec2-user

5.ハンズオンのALB環境構築用のCloudFormationの実行

Launch Stack

上のリンクより、ハンズオン用のALB環境を構築するためのCloudFormationを実行します。

※環境構築完了後、次の手順に進んでください。


②EC2を使用してコンテナイメージ作成&リポジトリ登録

1.ターミナルソフトからコマンド入力

# ハンズオンフォルダーに移動
cd docker-hands-on

# コンテナイメージの作成
docker build -t jawsug/iwata/sampleap:ver1.0 ./

# コンテナイメージの確認
docker images

# コンテナの実行
docker run -d -p 80:80 --rm --name sampleap jawsug/iwata/sampleap:ver1.0

2.ブラウザーで接続

  パブリックDNSアドレスを入力し、接続します。

docker_image_test.PNG

3.リポジトリ登録

3-1.[リポジトリ作成手順]

リポジトリ名
jawsug/iwata/sampleap

ecr.PNG

3-2.リポジトリへのコンテナイメージプッシュ手順

  リポジトリを選択し、プッシュコマンドの表示をクリック

ecr01.PNG

# ECRリポジトリへの接続
$(aws ecr get-login --no-include-email --region ap-northeast-1)

#  コンテナイメージのタグ名変更
docker tag jawsug/iwata/sampleap:ver1.0 XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/jawsug/iwata/sampleap:latest
※XXXXXXXXXXXXは、プッシュコマンドの表示で確認してください。

#  コンテナイメージのレジストリ登録
docker push XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/jawsug/iwata/sampleap:latest
※XXXXXXXXXXXXは、プッシュコマンドの表示で確認してください。

 登録が成功すると、下記のようになります。

ecr02.PNG


③Fargateでアプリケーション実行&プログラム更新

1.ECSでクラスター作成

1-1.[ECSクラスター作成手順]

クラスター名
ecs-cluster

ecs_cluster01.PNG
ecs_cluster02.PNG
ecs_cluster03.PNG

2.ECSでタスク定義作成

2-1.[ECSタスク定義作成手順]

タスク定義名
ecs-tasks
タスクメモリ タスクCPU
0.5GB 0.25vCPU
コンテナ名 イメージ ポートマッピング
sampleap XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/jawsug/iwata/sampleap:latest 80

ecs_task01.PNG
ecs_task02.PNG
ecs_task03.PNG
ecs_task04.PNG
ecs_task05.PNG
ecs_task06.PNG

3.ECSでサービス作成

3-1.[ECSサービス作成手順]

サービス名
ecs-service
タスクの数
1
クラスターVPC
JAWS-UG IWATA VPC_Tokyo01
サブネット
Trust-A
Trust-C
セキュリティグループ
fargate-sg
パブリック IP の自動割り当て
DISABLED
ロードバランサー名 プロダクションリスナーポート ターゲットグループ名
jawsug-iwata-20190821-ALB 80 : HTTP jawsug-iwata-20190821-TG

ecs_service01.PNG
ecs_service02.PNG
ecs_service03.PNG
ecs_service04.PNG
ecs_service05.PNG
ecs_service06.PNG
ecs_service07.PNG
ecs_service08.PNG
ecs_service09.PNG

4.ALBにブラウザーで接続

4-1.ALBのDNSアドレスを入力し、接続します。

alb_check.PNG

alb_check2.PNG

5.プログラムの更新

5-1.ターミナルソフトからコマンド入力

cd docker-hands-on
cp -p src/index_ver2.0.php src/index.php
docker build -t jawsug/iwata/sampleap:ver2.0 ./
docker tag jawsug/iwata/sampleap:ver2.0 XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/jawsug/iwata/sampleap:latest
docker push XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/jawsug/iwata/sampleap:latest
※XXXXXXXXXXXXは、プッシュコマンドの表示で確認してください。

5-1.[タスク定義の更新]

5-2.[サービスの更新]:タスク定義のリビジョンを最新の番号に更新する。

service_update.PNG

6.ALBにブラウザーで接続

6-1.ALBのDNSアドレスを入力し、接続します。

service_update2.PNG


3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?