LoginSignup
3
3

More than 1 year has passed since last update.

【JAWS-UG 名古屋】 AWS ECSハンズオン

Last updated at Posted at 2022-06-06

◆Agenda

1.ハンズオン概要
2.ハンズオンを始める前に・・・
3.ハンズオン環境準備
4.ECSクラスター設定
5.ECSタスク設定
6.ECSサービス設定
7.ALBエンドポイントへの接続
8.WordPressの設定


1.ハンズオン概要


◆概要

  • このECSハンズオンは、Dockerの公式ドキュメントで紹介している「クイックスタート:ComposeとWordPress」の構成について、ECSとRDSを使用して構築する内容になっています。

基礎知識としてのDockerについては触れません。

参考:Dockerについて知りたい方 Dockerについて知りたい方は、下記リンクを参照してみてください。

【図解】Dockerの全体像を理解する -前編-
【図解】Dockerの全体像を理解する -中編-
【図解】Dockerの全体像を理解する -後編-


2.ハンズオンを始める前に・・・


確認事項①

  • 会場設置のWi-Fiへ接続願います。
      ※インターネットへの接続を前提としています。

  • AWSアカウントの準備はお済みですか?
      ※ハンズオン開始前までに準備願います。
       作成手順:https://aws.amazon.com/jp/register-flow/


確認事項②

  • AWSマネジメントコンソールにログインして、東京リージョンになっている事を確認してください。
image.png

確認事項③

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

※使用したEC2・ALB・RDS・ECSは、AWSの課金対象になります。
必要ない場合は、削除してください。
 [ECSクラスター(クラシックコンソール)削除方法]
 [ECSクラスター(新しいコンソール)削除方法]
 [ECSタスク定義の登録解除方法]
 [Cloudformation削除方法]


3.ハンズオン環境の準備


【ハンズオンの構成図】

構成図.PNG

3-1.ECSハンズオン環境構築のCloudFormationの実行

  • 下記リンクをクリックします。

Launch Stack

参考:CloudFormationテンプレート内容

このブログにあるテンプレートからカスタマイズしました。
https://aws.amazon.com/jp/blogs/news/running-wordpress-amazon-ecs-fargate-ecs/

---
  #*******************************************************************************
  #* 【テンプレート名】:ECS hands on
  #* 【作成者】        :JAWS-UG NAGOYA
  #* 【作成日】        :2022/05/22
  #*******************************************************************************

  AWSTemplateFormatVersion: "2010-09-09"

  Description: "VPC, NAT Gateway, RDS for MySQL, ALB Create 2022-05-27"
  Parameters:
    VPCName:
      Description: The name of the VPC being created.
      Type: String
      Default: "ECS-hands-on"
    RDSMasterUserName:
      Description: The name of the RDS Master User created.
      Type: String
      Default: "admin"
    RDSMasterUserPassword:
      Description: The password of the RDS Master User created.
      Type: String
      Default: "password"
  
  #*******************************************************************************
  #* マッピング定義
  #* テンプレートの各種設定値を定義する。
  #* VPC CIDR :VPC のIPアドレス空間を定義
  #* Public0  :Public subnet 0 のIPアドレス空間を定義
  #* Public1  :Public subnet 1 のIPアドレス空間を定義
  #* Private0 :Private subnet 0 のIPアドレス空間を定義
  #* Private1 :Private subnet 1 のIPアドレス空間を定義
  #* AZRegions:各リージョンのアベイラビリティゾーンを定義
  #*  - 東京リージョン          ap-northeast-1a, ap-northeast-1c
  #*  - 大阪リージョン          ap-northeast-3a, ap-northeast-3b
  #*  - バージニア北部リージョン us-east-1a,      us-east-1c
  #*******************************************************************************
  Mappings:
    SubnetConfig:
      VPC:
        CIDR: "10.0.0.0/16"
      Public0:
        CIDR: "10.0.0.0/24"
      Public1:
        CIDR: "10.0.1.0/24"
      Private0:
        CIDR: "10.0.2.0/24"
      Private1:
        CIDR: "10.0.3.0/24"

    # This mapping accounts for the scenario when certain AZs
    # are not available to use (this differs on a per account
    # per customer basis). E.g., if the 'b' AZ is not available
    # in a specific region in one's account then updating the
    # list contained in the mapping below here will allow a
    # different AZ to be chosen.
    AZRegions:
      ap-northeast-1:
        AZs: ["a", "c"]
      ap-northeast-3:
        AZs: ["a", "b"]
      us-east-1:
        AZs: ["a", "b"]

  #*******************************************************************************
  #* リソース設定
  #*******************************************************************************
  Resources:

    # 仮想プライベートネットワーク設定
    VPC:
      Type: "AWS::EC2::VPC"
      Properties:
        EnableDnsSupport: "true"
        EnableDnsHostnames: "true"
        CidrBlock:
          Fn::FindInMap:
            - "SubnetConfig"
            - "VPC"
            - "CIDR"
        Tags:
          -
            Key: "Application"
            Value:
              Ref: "AWS::StackName"
          -
            Key: "Network"
            Value: "Public"
          -
            Key: "Name"
            Value: !Ref 'VPCName'

    # パブリックサブネットワーク設定(インターネット公開用)
    PublicSubnet0:
      Type: "AWS::EC2::Subnet"
      Properties:
        VpcId:
          Ref: "VPC"
        AvailabilityZone:
          Fn::Sub:
            - "${AWS::Region}${AZ}"
            - AZ: !Select [ 0, !FindInMap [ "AZRegions", !Ref "AWS::Region", "AZs" ] ]
        CidrBlock:
          Fn::FindInMap:
            - "SubnetConfig"
            - "Public0"
            - "CIDR"
        MapPublicIpOnLaunch: "true"
        Tags:
          -
            Key: "Application"
            Value:
              Ref: "AWS::StackName"
          -
            Key: "Network"
            Value: "Public"
          -
            Key: "Name"
            Value: !Join
              - ''
              - - !Ref "VPCName"
                - '-public-'
                - !Select [ 0, !FindInMap [ "AZRegions", !Ref "AWS::Region", "AZs" ] ]

    PublicSubnet1:
      Type: "AWS::EC2::Subnet"
      Properties:
        VpcId:
          Ref: "VPC"
        AvailabilityZone:
          Fn::Sub:
            - "${AWS::Region}${AZ}"
            - AZ: !Select [ 1, !FindInMap [ "AZRegions", !Ref "AWS::Region", "AZs" ] ]
        CidrBlock:
          Fn::FindInMap:
            - "SubnetConfig"
            - "Public1"
            - "CIDR"
        MapPublicIpOnLaunch: "true"
        Tags:
          -
            Key: "Application"
            Value:
              Ref: "AWS::StackName"
          -
            Key: "Network"
            Value: "Public"
          -
            Key: "Name"
            Value: !Join
              - ''
              - - !Ref "VPCName"
                - '-public-'
                - !Select [ 1, !FindInMap [ "AZRegions", !Ref "AWS::Region", "AZs" ] ]

    # プライベートサブネットワーク設定(インターネット非公開用)
    PrivateSubnet0:
      Type: "AWS::EC2::Subnet"
      Properties:
        VpcId:
          Ref: "VPC"
        AvailabilityZone:
          Fn::Sub:
            - "${AWS::Region}${AZ}"
            - AZ: !Select [ 0, !FindInMap [ "AZRegions", !Ref "AWS::Region", "AZs" ] ]
        CidrBlock:
          Fn::FindInMap:
            - "SubnetConfig"
            - "Private0"
            - "CIDR"
        Tags:
          -
            Key: "Application"
            Value:
              Ref: "AWS::StackName"
          -
            Key: "Network"
            Value: "Private"
          -
            Key: "Name"
            Value: !Join
              - ''
              - - !Ref "VPCName"
                - '-private-'
                - !Select [ 0, !FindInMap [ "AZRegions", !Ref "AWS::Region", "AZs" ] ]

    PrivateSubnet1:
      Type: "AWS::EC2::Subnet"
      Properties:
        VpcId:
          Ref: "VPC"
        AvailabilityZone:
          Fn::Sub:
            - "${AWS::Region}${AZ}"
            - AZ: !Select [ 1, !FindInMap [ "AZRegions", !Ref "AWS::Region", "AZs" ] ]
        CidrBlock:
          Fn::FindInMap:
            - "SubnetConfig"
            - "Private1"
            - "CIDR"
        Tags:
          -
            Key: "Application"
            Value:
              Ref: "AWS::StackName"
          -
            Key: "Network"
            Value: "Private"
          -
            Key: "Name"
            Value: !Join
              - ''
              - - !Ref "VPCName"
                - '-private-'
                - !Select [ 1, !FindInMap [ "AZRegions", !Ref "AWS::Region", "AZs" ] ]

    # インターネットゲートウェイ設定
    InternetGateway:
      Type: "AWS::EC2::InternetGateway"
      Properties:
        Tags:
          -
            Key: "Application"
            Value:
              Ref: "AWS::StackName"
          -
            Key: "Network"
            Value: "Public"
          -
            Key: "Name"
            Value: !Join
              - ''
              - - !Ref "VPCName"
                - '-IGW'

    # インターネットゲートウェイをVPCに割り当て
    GatewayToInternet:
      Type: "AWS::EC2::VPCGatewayAttachment"
      Properties:
        VpcId:
          Ref: "VPC"
        InternetGatewayId:
          Ref: "InternetGateway"

    # パブリックサブネット用ルーティングテーブル設定
    PublicRouteTable:
      Type: "AWS::EC2::RouteTable"
      Properties:
        VpcId:
          Ref: "VPC"
        Tags:
          -
            Key: "Application"
            Value:
              Ref: "AWS::StackName"
          -
            Key: "Network"
            Value: "Public"
          -
            Key: "Name"
            Value: !Join
              - ''
              - - !Ref "VPCName"
                - '-public-route-table'

    PublicRoute:
      Type: "AWS::EC2::Route"
      DependsOn: "GatewayToInternet"
      Properties:
        RouteTableId:
          Ref: "PublicRouteTable"
        DestinationCidrBlock: "0.0.0.0/0"
        GatewayId:
          Ref: "InternetGateway"

    # ルートテーブルをパブリックサブネットに割り当て
    PublicSubnetRouteTableAssociation0:
      Type: "AWS::EC2::SubnetRouteTableAssociation"
      Properties:
        SubnetId:
          Ref: "PublicSubnet0"
        RouteTableId:
          Ref: "PublicRouteTable"

    PublicSubnetRouteTableAssociation1:
      Type: "AWS::EC2::SubnetRouteTableAssociation"
      Properties:
        SubnetId:
          Ref: "PublicSubnet1"
        RouteTableId:
          Ref: "PublicRouteTable"

    # パブリックサブネット用ネットワークACL設定
    PublicNetworkAcl:
      Type: "AWS::EC2::NetworkAcl"
      Properties:
        VpcId:
          Ref: "VPC"
        Tags:
          -
            Key: "Application"
            Value:
              Ref: "AWS::StackName"
          -
            Key: "Network"
            Value: "Public"
          -
            Key: "Name"
            Value: !Join
              - ''
              - - !Ref "VPCName"
                - '-public-nacl'

    InboundHTTPPublicNetworkAclEntry:
      Type: "AWS::EC2::NetworkAclEntry"
      Properties:
        NetworkAclId:
          Ref: "PublicNetworkAcl"
        RuleNumber: "100"
        Protocol: "-1"
        RuleAction: "allow"
        Egress: "false"
        CidrBlock: "0.0.0.0/0"
        PortRange:
          From: "0"
          To: "65535"

    OutboundPublicNetworkAclEntry:
      Type: "AWS::EC2::NetworkAclEntry"
      Properties:
        NetworkAclId:
          Ref: "PublicNetworkAcl"
        RuleNumber: "100"
        Protocol: "-1"
        RuleAction: "allow"
        Egress: "true"
        CidrBlock: "0.0.0.0/0"
        PortRange:
          From: "0"
          To: "65535"

    # ネットワークACLをパブリックサブネットに割り当て
    PublicSubnetNetworkAclAssociation0:
      Type: "AWS::EC2::SubnetNetworkAclAssociation"
      Properties:
        SubnetId:
          Ref: "PublicSubnet0"
        NetworkAclId:
          Ref: "PublicNetworkAcl"

    PublicSubnetNetworkAclAssociation1:
      Type: "AWS::EC2::SubnetNetworkAclAssociation"
      Properties:
        SubnetId:
          Ref: "PublicSubnet1"
        NetworkAclId:
          Ref: "PublicNetworkAcl"

    # プライベートサブネット用NAT Gateway設定
    ElasticIP0:
      Type: "AWS::EC2::EIP"
      Properties:
        Domain: "vpc"

    NATGateway0:
      Type: "AWS::EC2::NatGateway"
      Properties:
        AllocationId:
          Fn::GetAtt:
            - "ElasticIP0"
            - "AllocationId"
        SubnetId:
          Ref: "PublicSubnet0"

    # NAT Gatewayを冗長化する場合は、以下のコメントを外してください。

    # ElasticIP1:
    #  Type: "AWS::EC2::EIP"
    #  Properties:
    #    Domain: "vpc"

    # NATGateway1:
    #  Type: "AWS::EC2::NatGateway"
    #  Properties:
    #    AllocationId:
    #      Fn::GetAtt:
    #        - "ElasticIP1"
    #        - "AllocationId"
    #    SubnetId:
    #      Ref: "PublicSubnet1"

    # プライベートネットワーク用ルーティングテーブル設定
    PrivateRouteTable0:
      Type: "AWS::EC2::RouteTable"
      Properties:
        VpcId:
          Ref: "VPC"
        Tags:
          -
            Key: "Name"
            Value: !Join
              - ''
              - - !Ref "VPCName"
                - '-private-route-table-0'

    PrivateRouteTable1:
      Type: "AWS::EC2::RouteTable"
      Properties:
        VpcId:
          Ref: "VPC"
        Tags:
          -
            Key: "Name"
            Value: !Join
              - ''
              - - !Ref "VPCName"
                - '-private-route-table-1'

    PrivateRouteToInternet0:
      Type: "AWS::EC2::Route"
      Properties:
        RouteTableId:
          Ref: "PrivateRouteTable0"
        DestinationCidrBlock: "0.0.0.0/0"
        NatGatewayId:
          Ref: "NATGateway0"

    # NAT Gatewayを冗長化する場合は、NatGatewayIDの設定を
    # NATGateway0 => NATGateway1 に修正してください。
    PrivateRouteToInternet1:
      Type: "AWS::EC2::Route"
      Properties:
        RouteTableId:
          Ref: "PrivateRouteTable1"
        DestinationCidrBlock: "0.0.0.0/0"
        NatGatewayId:
          Ref: "NATGateway0"

    # ルートテーブルをプライベートサブネットに割り当て
    PrivateSubnetRouteTableAssociation0:
      Type: "AWS::EC2::SubnetRouteTableAssociation"
      Properties:
        SubnetId:
          Ref: "PrivateSubnet0"
        RouteTableId:
          Ref: "PrivateRouteTable0"

    PrivateSubnetRouteTableAssociation1:
      Type: "AWS::EC2::SubnetRouteTableAssociation"
      Properties:
        SubnetId:
          Ref: "PrivateSubnet1"
        RouteTableId:
          Ref: "PrivateRouteTable1"

    # EFSを使用する場合は、以下のコメントを外してください。

    # FileSystem:
    #   Type: AWS::EFS::FileSystem
    #   Properties:
    #     Encrypted: true
    #     FileSystemTags:
    #       - Key: Name
    #         Value: Wordpress-demo
    #     PerformanceMode: generalPurpose
    #     ThroughputMode: bursting

    # MountTargetSecurityGroup:
    #   Type: AWS::EC2::SecurityGroup
    #   Properties:
    #     GroupDescription: FileSystem Security Group
    #     VpcId: !Ref VPC
    #     GroupName: Wordpress-Demo-EFS-SG
    #     SecurityGroupIngress:
    #     - IpProtocol: "tcp"
    #       FromPort: 2049
    #       ToPort: 2049
    #       CidrIp: 10.0.0.0/16

    # MountTarget1:
    #   Type: AWS::EFS::MountTarget
    #   Properties:
    #     FileSystemId: !Ref FileSystem
    #     SubnetId: !Ref PrivateSubnet0
    #     SecurityGroups:
    #       - !Ref MountTargetSecurityGroup

    # MountTarget2:
    #   Type: AWS::EFS::MountTarget
    #   Properties:
    #     FileSystemId: !Ref FileSystem
    #     SubnetId: !Ref PrivateSubnet1
    #     SecurityGroups:
    #       - !Ref MountTargetSecurityGroup

    # AccessPoint:
    #   Type: AWS::EFS::AccessPoint
    #   Properties:
    #     FileSystemId: !Ref FileSystem
    #     PosixUser:
    #       Uid: "1000"
    #       Gid: "1000"
    #     RootDirectory:
    #       CreationInfo:
    #         OwnerGid: "1000"
    #         OwnerUid: "1000"
    #         Permissions: "0777"
    #       Path: "/bitnami"

    # RDS用DBサブネットグループ設定
    DBSubnetGroup:
      Type: AWS::RDS::DBSubnetGroup
      Properties:
        DBSubnetGroupName: wp-db-subnet-group
        DBSubnetGroupDescription: wp-db-subnet-group
        SubnetIds:
        - !Ref PrivateSubnet0
        - !Ref PrivateSubnet1

    # RDS用セキュリティグループ設定
    DBSecurityGroup:
      Type: AWS::EC2::SecurityGroup
      Properties:
        GroupDescription: RDS Security Group
        VpcId: !Ref VPC
        GroupName: Wordpress-Demo-RDS-SG
        SecurityGroupIngress:
        - IpProtocol: "tcp"
          FromPort: 3306
          ToPort: 3306
          CidrIp: !FindInMap [ "SubnetConfig", "VPC", "CIDR" ]

    # RDS設定
    WordpressDB:
      Type: AWS::RDS::DBInstance
      Properties:
        DBInstanceIdentifier: wp-db1
        DBInstanceClass: db.t3.micro
        DBName: wordpress
        Engine: mysql
        MasterUserPassword: !Ref "RDSMasterUserPassword"
        MasterUsername: !Ref "RDSMasterUserName"
        PubliclyAccessible: false
        AllocatedStorage: 20
        DBSubnetGroupName: !Ref DBSubnetGroup
        VPCSecurityGroups:
          - !Ref DBSecurityGroup

    # アプリケーションロードバランサー用セキュリティグループ設定
    ALBSecurityGroup:
      Type: AWS::EC2::SecurityGroup
      Properties:
        GroupDescription: ALB Security Group
        VpcId: !Ref VPC
        GroupName: Wordpress-Demo-ALB-SG
        SecurityGroupIngress:
        - IpProtocol: "tcp"
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0

    # アプリケーションロードバランサー設定
    WordPressALB:
      Type: AWS::ElasticLoadBalancingV2::LoadBalancer
      Properties:
        Name: wp-load-balancer
        SecurityGroups: 
        - !Ref ALBSecurityGroup
        Subnets:
          - !Ref PublicSubnet0
          - !Ref PublicSubnet1

    WordPressTargetGroup:
      Type: AWS::ElasticLoadBalancingV2::TargetGroup
      Properties:
        Name: WordPressTargetGroup
        TargetType: ip
        Port: 80
        Protocol: HTTP
        HealthCheckPort: 80
        UnhealthyThresholdCount: 5
        HealthCheckTimeoutSeconds: 30
        HealthCheckIntervalSeconds: 60
        VpcId: !Ref VPC

    WordPressALBListener:
      Type: AWS::ElasticLoadBalancingV2::Listener
      Properties:
        LoadBalancerArn: !Ref WordPressALB
        Protocol: "HTTP"
        Port: 80
        DefaultActions:
          - Type: forward
            ForwardConfig:
              TargetGroups:
                - TargetGroupArn: !Ref WordPressTargetGroup
                  Weight: 1

    # ECS Fargate用セキュリティグループ設定
    FargateSecurityGroup:
      Type: AWS::EC2::SecurityGroup
      Properties:
        GroupDescription: Fargate Security Group
        VpcId: !Ref VPC
        GroupName: Wordpress-Demo-Fargate-SG
        SecurityGroupIngress:
        - IpProtocol: "tcp"
          FromPort: 80
          ToPort: 80
          CidrIp: !FindInMap [ "SubnetConfig", "VPC", "CIDR" ]

  # 各種設定情報を出力
  Outputs:

    VPCId:
      Description: "VPCId of VPC"
      Value:
        Ref: "VPC"
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-VPC"

    PublicSubnet0:
      Description: "SubnetId of public subnet 0"
      Value:
        Ref: "PublicSubnet0"
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-PublicSubnet0"

    PublicSubnet1:
      Description: "SubnetId of public subnet 1"
      Value:
        Ref: "PublicSubnet1"
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-PublicSubnet1"

    PrivateSubnet0:
      Description: "SubnetId of private subnet 0"
      Value:
        Ref: "PrivateSubnet0"
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-PrivateSubnet0"

    PrivateSubnet1:
      Description: "SubnetId of private subnet 1"
      Value:
        Ref: "PrivateSubnet1"
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-PrivateSubnet1"

    DefaultSecurityGroup:
      Description: "DefaultSecurityGroup Id"
      Value: !GetAtt VPC.DefaultSecurityGroup
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-DefaultSecurityGroup"

    # EFSFSId:
    #   Description: "ID of EFS FS"
    #   Value:
    #     Ref: "FileSystem"
    #   Export:
    #     Name: !Sub "${AWS::Region}-${AWS::StackName}-FileSystem"

    # EFSAccessPoint:
    #   Description: "EFS Access Point ID"
    #   Value: !GetAtt AccessPoint.AccessPointId
    #   Export:
    #     Name: !Sub "${AWS::Region}-${AWS::StackName}-AccessPoint"

    RDSEndpointAddress:
      Description: "RDS Endpoint Address"
      Value: !GetAtt WordpressDB.Endpoint.Address
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-WordpressDB"

    ALBDNSname:
      Description: "ALB DNS Name"
      Value: !GetAtt WordPressALB.DNSName
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-ALBDNSName"

    ALBSecurityGroup:
      Description: "ALB Security Group"
      Value: !GetAtt ALBSecurityGroup.GroupId
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-ALBSecurityGroup"

    WordPressTargetGroup:
      Description: "ALB Target Group"
      Value:
        Ref: "WordPressTargetGroup"
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-ALBTargetGroup"

    FargateSecurityGroup:
      Description: "Fargate Security Group"
      Value: !GetAtt FargateSecurityGroup.GroupId
      Export:
        Name: !Sub "${AWS::Region}-${AWS::StackName}-FargateSecurityGroup"

3-2.スタックのクイック作成

  • リンクをクリックすると、ブラウザーにスタックのクイック作成ページが表示されるので、各項目が下記のようになっている事を確認し、右下の「スタックの作成」をクリックします。
  • スタックの実行は数分かかります。
image.png

数分後、スタックの情報からステータスを確認してください。

image.png

※正常に終了すると、下記の構成が出来ています。
image.png

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


4.ECSクラスター設定


4-1.ECSサービスへの移動

  • マネージメントコンソールの検索から「ECS」と入力するとサービスにElastic Container Serviceが表示されるので、リンクをクリックします。
  • 上記操作で表示出来ない場合は、こちらの [リンク] をクリックしてください。

画面左上の新しい ECS エクスペリエンスがONになっている場合は、OFFにしてください。
image.png
※上記のようになっていますか?


4-2.ECSクラスター作成手順を参照して、クラスターを作成してください。

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

【設定情報】

使用テンプレート クラスター名
ネットワーキングのみ ecs-cluster

5.ECSタスク設定


5-1.ECSタスク定義作成手順を参照して、タスクを作成してください。

[ECSタスク定義作成手順]

【設定情報】(1/2)

起動タイプの
互換性の選択
タスク定義名 オペレーティング
システムファミリー
タスクメモリ タスクCPU
FARGATE ecs-tasks linux 0.5GB 0.25vCPU
コンテナ名 イメージ ポートマッピング
wp-container wordpress:latest 80

【設定情報】(2/2)

環境変数名 設定値
WORDPRESS_DB_HOST wp-db1.XXXXXXX.ap-northeast-1.rds.amazonaws.com:3306
WORDPRESS_DB_USER admin
WORDPRESS_DB_PASSWORD password

XXXXXXXは、各自のRDSのエンドポイントアドレスを参照してください。


6.ECSサービス設定


6-1.ECSサービス作成手順を参照して、タスクを作成してください。

[ECSサービス作成手順]

【設定情報】(1/2)

起動タイプ サービス名 タスクの数
FARGATE ecs-service 1
クラスターVPC サブネット セキュリティグループ パブリック IP の
自動割り当て
ECS-hands-on ECS-hands-on-private-a,
ECS-hands-on-private-c
Wordpress-Demo-Fargate-SG DISABLED

【設定情報】(2/2)

ロードバランサー名 プロダクション
リスナーポート
ターゲットグループ名
wp-load-balancer 80 : HTTP WordPressTargetGroup

7.ALBエンドポイントへの接続


7-1.ブラウザーで、ALBのDNSアドレスを入力し接続します。

image.png

8.WordPressの設定


8-1.表示言語の選択

image.png

8-2.下記の内容で、WordPressの初期設定を実施します。

【設定情報】

設定項目 設定内容
サイトのタイトル ecs-hands-on
ユーザー名 wp_admin
パスワード 任意の値
メールアドレス 各自のメールアドレス入力

※入力したパスワードはメモしてください。


※設定完了後、下記画面が表示されます。
image.png


8-3.下記画面からログインします。

image.png

※正常にログインすると、下記画面が表示されます。
image.png

3
3
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
3