【ハンズオン演習】コンテナ(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
◆今回の演習環境について
【演習内容】
①演習環境準備
②EC2を使用してコンテナイメージ作成&リポジトリ登録
③Fargateでアプリケーション実行&プログラム更新
◆ハンズオンを始める前に・・・
・AWSマネジメントコンソールにログインして、東京リージョンが選択されている事を確認してください。
・画面上にIAM・EC2・S3の文字が表示されている事を確認してください。
※表示されていない場合は、画面左上のサービスをクリックして各サービスを選択してください。
①演習環境の準備
1.ハンズオンのVPC環境構築用のCloudFormationの実行
上のリンクより、ハンズオン用のVPC環境を構築するためのCloudFormationを実行します。
※環境構築完了後、次の手順に進んでください。
2.EC2用のキーペアー作成
2-1.[作成手順]
※作成済みの場合は、次へ進んでください。
3.ハンズオンのEC2環境構築用のCloudFormationの実行
上のリンクより、ハンズオン用のEC2環境を構築するためのCloudFormationを実行します。
※環境構築完了後、次の手順に進んでください。
3-1.KeyNameの選択
※2.で作成したキーペアーまたは作成済みキーペアーを選択
3-2.機能の項目で、承認欄をチェック
※チェック後、スタックの作成をクリックしてください。
4.EC2への接続
4-1.Amazon EC2コンソールを開きます。
※リンク先をクリックすると、東京リージョンのコンソールに接続します。
4-2.作成したEC2サーバを選択し、[接続]をクリックします。
4-3.パブリックDNSの文字列をコピー、ターミナルソフトでssh接続します。
ログインユーザー |
---|
ec2-user |
5.ハンズオンのALB環境構築用のCloudFormationの実行
上のリンクより、ハンズオン用の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アドレスを入力し、接続します。
3.リポジトリ登録
3-1.[リポジトリ作成手順]
リポジトリ名 |
---|
jawsug/iwata/sampleap |
3-2.リポジトリへのコンテナイメージプッシュ手順
リポジトリを選択し、プッシュコマンドの表示をクリック
# 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は、プッシュコマンドの表示で確認してください。
登録が成功すると、下記のようになります。
③Fargateでアプリケーション実行&プログラム更新
1.ECSでクラスター作成
1-1.[ECSクラスター作成手順]
クラスター名 |
---|
ecs-cluster |
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 |
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 |
4.ALBにブラウザーで接続
4-1.ALBのDNSアドレスを入力し、接続します。
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は、プッシュコマンドの表示で確認してください。