type
status
date
slug
summary
tags
category
icon
password
书籍
😀
EC2内でDockerがセットアップして、それをAWS EFSにマウントしました。
手順を共有したいと思います。
  • EC2のオペレーティングシステム:LINUX2023
  • Dockerのバージョン:最新版を sudo dnf install -y docker コマンドでインストールしました。」
 

構成図

構成を説明します。
  • formation templateにより、VPCを構築しております
  • formation templateにより、EC2を構築しております
  • formation templateにより、EFSを構築しております
  • formation templateにより、RDSを構築しております
  • EC2内にDockerをインストールしておリます。
  • EFSの/がEC2の/mnt/efsとマウントしておリます。
  • Docker内にwordpressをインストールしておリます。
  • Dockerの/var/www/htmlをホスト機の/mnt/efsにマウントしておリます
  • wordpress pressのデータベースはRDSを使っております。
これでアプリケーションがステートレスの状態でスケーラブルが容易になります。

notion image

1.formation templateにより、リソースを構築する操作手順

ローカルformation templateを用意し、下記の流れで、リソースを構築できます。
notion image
notion image
 
notion image
notion image
notion image
notion image
notion image

2.formation templateにより、VPCを構築

10-VPC.yml formation templateにより、下記のリソースが構築されます
リソース名
タイプ
説明
CFnVPC
AWS::EC2::VPC
VPC(仮想プライベートクラウド)の定義
PublicSubnet1
AWS::EC2::Subnet
パブリックサブネット1の定義
PublicSubnet2
AWS::EC2::Subnet
パブリックサブネット2の定義
PrivateSubnet1
AWS::EC2::Subnet
プライベートサブネット1の定義
PrivateSubnet2
AWS::EC2::Subnet
プライベートサブネット2の定義
CFnVPCIGW
AWS::EC2::InternetGateway
VPCのインターネットゲートウェイの定義
CFnVPCIGWAttach
AWS::EC2::VPCGatewayAttachment
インターネットゲートウェイをVPCにアタッチ
PublicRouteTable
AWS::EC2::RouteTable
パブリックルートテーブルの定義
PublicRoute
AWS::EC2::Route
インターネットゲートウェイを経由するデフォルトのルートの定義
PublicSubnet1Association
AWS::EC2::SubnetRouteTableAssociation
パブリックサブネット1をパブリックルートテーブルに関連付ける
PublicSubnet2Association
AWS::EC2::SubnetRouteTableAssociation
パブリックサブネット2をパブリックルートテーブルに関連付ける
下記のコードを使って、Cloud formationで、VPCを構築します

3.formation templateにより、EC2を構築

20-EC2.yml formation templateにより、下記のリソースが構築されます
リソース名
タイプ
説明
プロパティ
EC2WebServer01
AWS::EC2::Instance
EC2インスタンスの定義
ImageId: EC2インスタンスが使用するAMIのID InstanceType: インスタンスのサイズ SubnetId: EC2インスタンスを配置するサブネットのID UserData: インスタンスの起動時に実行されるスクリプト KeyName: SSHキーペアの名前 SecurityGroupIds: 関連付けるセキュリティグループのID
EC2SG
AWS::EC2::SecurityGroup
EC2インスタンス用のセキュリティグループの定義
GroupDescription: グループの説明 VpcId: 関連付けるVPCのID SecurityGroupIngress: 入力トラフィックを制御するルールのリスト
下記のコードを使って、Cloud formationで、VPCを構築します

4.formation templateにより、EFSを構築

30-EFS.yml formation templateにより、下記のリソースが構築されます
項目
説明
設定値
EFSCreate
AWS EFS ファイルシステム
- FileSystemTags: - Key: Name Value: ecs-handson-efs - PerformanceMode: generalPurpose - ThroughputMode: bursting - Encrypted: false
EFSMountTargetSecurityGroup
EFS マウントターゲット用 EC2 セキュリティグループ
- GroupDescription: EFS マウントターゲット用セキュリティグループ - VpcId: ImportValue(VPCStackName-VPCID) - SecurityGroupIngress: - IpProtocol: tcp FromPort: 2049 ToPort: 2049 CidrIp: 0.0.0.0/0
EFSMountTarget1
AWS EFS マウントターゲット #1
- FileSystemId: 参照(EFSCreate) - SecurityGroups: 参照(EFSMountTargetSecurityGroup) - SubnetId: ImportValue(VPCStackName-PublicSubnet1)
EFSMountTarget2
AWS EFS マウントターゲット #2
- FileSystemId: 参照(EFSCreate) - SecurityGroups: 参照(EFSMountTargetSecurityGroup) - SubnetId: ImportValue(VPCStackName-PublicSubnet2)
EFSInboundRule
EFS マウントターゲットセキュリティグループのインバウンドルール
- GroupId: 参照(EFSMountTargetSecurityGroup) - IpProtocol: tcp - FromPort: 2049 - ToPort: 2049 - CidrIp: 0.0.0.0/0
下記のコードを使って、Cloud formationで、EFSを構築します

5.formation templateにより、RDSを構築

40-RDS.yml formation templateにより、下記のリソースが構築されます
項目
リソース
設定値
パラメータ
VPCStack
デフォルト値: VPC-10
DBUser
デフォルト値: dbmaster
DBPassword
デフォルト値: (非表示) 1214567qaz
リソース
DBInstance
タイプ: AWS::RDS::DBInstance
削除ポリシー: Delete
DBInstanceClass: db.t3.micro
AllocatedStorage: "10"
StorageType: gp2
Engine: MySQL
MasterUsername: DBUserへの参照
MasterUserPassword: DBPasswordへの参照 (非表示)
DBName: wordpress
BackupRetentionPeriod: 0
DBSubnetGroupName: DBSubnetGroupへの参照
VPCSecurityGroups: DBSecurityGroupへの参照
DBSubnetGroup
タイプ: AWS::RDS::DBSubnetGroup
DBSubnetGroupDescription: DB Subnet Group for Private Subnet
SubnetIds:
- Fn::ImportValue: VPCStack-PrivateSubnet1への参照
- Fn::ImportValue: VPCStack-PrivateSubnet2への参照
DBSecurityGroup
タイプ: AWS::EC2::SecurityGroup
GroupDescription: AWS::StackName-MySQL
VpcId: Fn::ImportValue: VPCStack-VPCIDへの参照
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 3306
ToPort: 3306
CidrIp: 10.0.0.0/16
出力
DBEndpoint
Value: DBInstance.Endpoint.Addressからの取得
Export: Name: AWS::StackName-DBEndpoint
下記のコードを使って、Cloud formationで、RDSを構築します

7.EC2内にDockerをインストールしておリます。

テンプレートのユーザデータに、EC2が起動後に自動的に、Dockerをインストールするので、この作業の実施は不要
notion image

8.EFSの/がEC2の/mnt/efsとマウント

SSHでEC2にログインします。
notion image
notion image
 
 
 
下記のコードを使って、先ずは、EC2の「/mnt/efs」をEFSの「/」にマウントします。
マウントコマンドを使用して EFS を一時的にマウントする:
  • まず、mount コマンドを使用して EFS を一時的にマウントします。これにより、EC2 インスタンスで EFS を利用できるようになります。
    notion image
    EFS ファイルシステムのマウント:
    • /etc/fstab ファイルを編集して、EC2 インスタンスの起動時に EFS を自動でマウントするように設定します。
    • ここで、fs-12345678 の部分は EFS ファイルシステムの ID に置き換えます。
    notion image
    • sudo コマンドを使用して、/etc/fstab ファイルを開きます。
    • ファイルの末尾に、EFS ファイルシステムのマウント設定を追加します。
    <ファイルシステムID> を EFS ファイルシステムの ID に、<リージョン> を EFS ファイルシステムが作成された AWS リージョンに置き換えます。
    ファイルを保存して終了します。保存するには Ctrl + O、終了するには Ctrl + X を押します。
    これで、/etc/fstab ファイルが更新され、次回の再起動時に EFS が正しくマウントされるようになります。
    これで、EC2 インスタンスの /mnt/efs は EFS ファイルシステムのルートディレクトリにマウントされます。

    9.Docker内にwordpressをインストールします。

    下記のコードでwordpressのイメージをインストールします
    notion image
    下記のコマンドで、イメージを作るをコンテナとして起動し、ホスト機の80ポートをコンテナの80に設定して、コンテナの/var/www/html/wp-contentをホスト機の/mnt/efsにマウントするように設定します。各環境構築変数をコンテナにインポートするよう、下記のコードを参照してください。
    これで、EC2の公有 IPv4 DNSでアクセスしてみましょう
    notion image
     
    notion image

    📎 参考文章

    • 一些引用
    • 引用文章
     
    💡
    有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
    相关文章
    クラウド技術の共有 | AWS Site-to-Site
    Lazy loaded image
    Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
    Lazy loaded image
    EKSでのWordPressデプロイ:KCNA-JP試験対策 (Kubernetes実践編)
    Lazy loaded image
    初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)
    Lazy loaded image
    529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
    Lazy loaded image
    528-AWS SAP AWS 「理論・実践・一問道場」Migration Evaluator
    Lazy loaded image
    初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)IBM クラシック・インフラストラクチャーと VPC インフラストラクチャー
    Loading...
    みなみ
    みなみ
    一个普通的干饭人🍚
    最新发布
    TOKYO自習島
    2025-5-8
    営業保証金-21問
    2025-5-6
    平成26年秋期 午後問1
    2025-5-6
    令和5年秋期 午後問1
    2025-5-3
    令和2年秋期 午後問1
    2025-5-2
    第1回:オリエンテーション/意思決定と会計情報
    2025-4-30
    公告

    🎉 欢迎访问我的博客 🎉

    🙏 感谢您的支持 🙏

    📅 本站自 2024年9月1日 建立,致力于分享在 IT・MBA・不动产中介 等领域的学习与实践,并推动 学习会 的自主开展。
    📖 博客语言使用比例
    🇯🇵 日语 90% 🇨🇳 中文 8% 🇬🇧 英语 2%

    📚 主要内容

    💻 IT・系统与开发

    • 系统管理:Red Hat 等
    • 容器与编排:Kubernetes、OpenShift
    • 云计算:AWS、IBM Cloud
    • AI 入门:人工智能基础与实践
    • 技术笔记与考证经验

    🏠 不动产 × 宅建士

    • 宅建士考试笔记

    🎓 MBA 学习笔记

    • 管理学、经济学、财务分析等

    🔍 快速查找内容(标签分类)

    由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
    📌 定期更新,欢迎常来看看!
    📬 有任何建议或想法,也欢迎留言交流!