search
LoginSignup
0

posted at

updated at

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

◆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

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
What you can do with signing up
0