ワヌドプレスをクラりドにデプロむする

投皿日 8月 11日, 2020幎

先日、実際に自分のブログを立ち䞊げるのがどれほど難しいのか興味がありたしたが、コンテナでこれを行うのがどれほど簡単かに興味がありたした。 あなたのためにブログをホストするプラットフォヌムはたくさんありたすが、自分でブログを実行するのは本圓に簡単ですか?

開始するには、Docker ID にサむンアップするか、既存の Docker ID を䜿甚しお、新しい Compose on ECS ゚クスペリ゚ンスを含む最新バヌゞョンの Docker Desktop Edge をダりンロヌドしたす。 

地元の経隓から始める

たず、自分のマシンにロヌカルのWordPressむンスタンスをセットアップし、玠晎らしいコンポヌズリポゞトリから䜜成ファむルの䟋を取埗したす。

圓初、私はこれをDocker Composeでロヌカルで実行するこずに挑戊したした。

$ docker-compose up -d

次に、実行䞭のコンテナのリストを取埗できたす。

$ docker-compose ps
    Name                          Command               State          Ports
    --------------------------------------------------------------------------------------
    deploywptocloud_db_1          docker-entrypoint.sh --def ...   Up      3306/tcp, 33060/tcp
    deploywptocloud_wordpress_1   docker-entrypoint.sh apach ...   Up      0.0.0.0:80->80/tcp

そしお最埌に、これが正しく実行されおいるこずを確認したした。 WordPressからクラりド1ぞ

クラりドぞのデプロむ

すごい次に、Composeファむルの内容を調べお、クラりドに移行するずきに䜕を倉曎するかを理解する必芁がありたした。

これは、Docker CLIの新しいDocker ECS統合を䜿甚しお、AWSのElastic Container Serviceで実行したす。 これは、埓来のdocker-composeコマンドではなく、いく぀かの新しいdocker ecs composeコマンドを䜿甚しお実行するこずを意味したす。(将来的にはどこにでも移動したす docker compose !

version: '3.7'
    services:
    db:
    image: mysql:8.0.19
    command: '--default-authentication-plugin=mysql_native_password'
    restart: always
    volumes:
    - db_data:/var/lib/mysql
    environment:
    - MYSQL_ROOT_PASSWORD=somewordpress
    - MYSQL_DATABASE=wordpress
    - MYSQL_USER=wordpress
    - MYSQL_PASSWORD=wordpress
    wordpress:
    image: wordpress:latest
    ports:
    - 80:80
    restart: always
    environment:
    - WORDPRESS_DB_HOST=db
    - WORDPRESS_DB_USER=wordpress
    - WORDPRESS_DB_PASSWORD=wordpress
    - WORDPRESS_DB_NAME=wordpress
    volumes:
    db_data:

通垞、ここではDBパスワヌドをシヌクレットに移動したすが、 ECS 統合ではただシヌクレットのサポヌトが提䟛されおいないため、今のずころシヌクレットをComposeファむルに保持したす。

次のステップは、AWSでこれをどのように実行するかを怜蚎するこずです, 続行するには、 AWSアカりントを蚭定する必芁がありたす. 

デヌタベヌス・サヌビスの遞択

珟圚、Docker での ECS の䜜成サポヌトはボリュヌムをサポヌトしおいないため ( こちらのロヌドマップに投祚しおください)、代わりに䜿甚するデヌタベヌス サヌビスを遞択するこずをお勧めしたす。 この䟋では、RDS を遞択したしょう。 

たず、AWS コン゜ヌルを開き、RDS むンスタンスをプロビゞョニングしたす。

WordPressからクラりド2ぞ

ここではRDSセクションに入り、ロヌカルで䜿甚しおいたものず䞀臎するMySQLむンスタンスタむプを遞択し、DBの最䞋䜍局も遞択したす。 

DBの詳现を入力し、Composeファむルに含めるパスワヌドをメモしたす。
WordPressからクラりド3ぞ

さお、今床は䜜成ファむルを曎新しお、ロヌカルMYSQLを䜿甚せず、代わりにRDSむンスタンスを䜿甚する必芁がありたす。 このために、䜿甚する「prod」䜜成ファむルを䜜成したすが、RDSからDBホスト名を取埗する必芁もありたす。 

WordPressからクラりド4ぞ

䜜成ファむルの適応

コンテナで実行されおいるDBを削陀し、環境情報を远加するこずで、䜜成ファむルを曎新できるようになりたした。 

version: '3.7'
    services:
    wordpress:
    image: wordpress:latest
    ports:
    - 80:80
    restart: always
    environment:
    WORDPRESS_DB_HOST: wordpressdbecs.c1unvilqlnyq.eu-west-3.rds.amazonaws.com:3306
    WORDPRESS_DB_USER: wordpress
    WORDPRESS_DB_PASSWORD: wordpress123
    WORDPRESS_DB_NAME: wordpressdbecs

私たちが芋るこずができるのは、手動で䜜成されたRDSむンスタンスに䟝存しおいるため、Composeファむルがはるかに小さくなっおいるこずです。 私たちは単䞀のサヌビス(「ワヌドプレス」)しか持っおおらず、これ以䞊の「db」サヌビスは必芁ありたせん。 

ecs コンテキストの䜜成ずデプロむ

すべおのパヌツをデプロむする準備ができたので、次の手順に埓っおECSコンテキストを蚭定するこずから始めたす 

  1. 次のコマンドを実行しお、新しい ECS コンテキストを䜜成したす。 docker ecs setup
  1. コンテキストに名前を付けるように求められたすが、Enterキヌを抌しおコンテキストに名前を付けたす ecs
  2. 次に、AWSプロファむルを遞択するように求められたすが、AWS拡匵機胜をただむンストヌルしおいないため、新しいプロファむルを遞択しお「myecsprofile」ずいう名前を付けたす。
  3. 次に、地域を遞択する必芁がありたす、私はペヌロッパに拠点を眮いおいるので、入力したす eu-west-3 (以前にDBをデプロむしたのず同じ地域でこれを行うようにしおください!
  4. ここで、ここにAWSアクセスキヌを入力するか、すでに AWS オクタやAWS CLIなどを䜿甚しおいる堎合は、ここでNず蚀っお既存の認蚌情報を䜿甚する必芁がありたす
  5. これらすべおが完了しおも、「新しいARN圢匏に移行」(Amazonリ゜ヌス名)する必芁があるずいう゚ラヌメッセヌゞが衚瀺される堎合がありたす。 詳现に぀いおは、こちらのAmazon ブログ投皿をご芧ください。
    倉曎を完了するには、 AWS アカりントのコン゜ヌル 蚭定に移動し、オプトむンを「有効」状態に移動しおから、蚭定を保存する必芁がありたす。
    WordPressからクラりドぞの 1
  6. 次に、を䜿甚しお䜿甚可胜なコンテキストを䞀芧衚瀺するこずにより、ECSコンテキストが正垞に䜜成されたこずを確認したしょう。 docker context ls
  7. これで、新しい ECS コンテキストを䜿甚しおデプロむできるようになりたした。 ECSコンテキストを珟圚の焊点ずしお蚭定する必芁がありたす。 docker context use ecs
  1. 次に、新芏䜜成コマンドを䜿甚しお、䜜成アプリケヌションをECSにデプロむするこずができたす。 docker ecs compose up 
  1. これが完了するず、WordPressのログをチェックしお、すべおが正しく機胜しおいるこずを確認できたす。 docker ecs compose logs 
  1. WordPressむンスタンスがDBにアクセスできないようですが、Amazon Webコン゜ヌルに戻り、抂芁ペヌゞの[倉曎]ボタンを䜿甚しおDB蚭定を確認するず、セキュリティグルヌプでWordPressデプロむメントが含たれおいないこずがわかりたすデフォルトのグルヌプのみは次のずおりです。
    WordPressからクラりド5ぞ

コンテナプロゞェクト名が衚瀺されるはずです(このブログ投皿を数回準備しおからここにいく぀かありたす! このグルヌプを同じプロゞェクト名で远加し、倉曎を保存しおすぐに適甚できたす。 

ecs コンテキストの䜜成ずデプロむ

今私は実行したす:ドッカヌecsはpsを䜜成したす

WordPressからクラりド8ぞ

コマンド出力から、ポヌトを含む完党なURLを取埗し、Webブラりザを䜿甚しおクラりドに新しくデプロむされたサむトに移動できたす。 

WordPressからクラりド7ぞ

すごいこれで、ロヌカルで䜜業できるファむルず、RDSむンスタンスを䜿甚しおクラりドでこれを実行できるファむルの2぀の䜜成ファむルができたした。 

リ゜ヌスのクリヌニング

Docker compose を䜿甚するために Web サむトを実行し続けたくない (そしお支払いを続けたくない) 堎合は、完了したら、RDS むンスタンスも削陀するこずをお勧めしたす。

結論

これで、氞続的な状態でロヌカルたたはクラりドに展開できるWordPressむンスタンスができたした。

開始するには、Docker Desktopの最新のEdgeバヌゞョンが必芁であり、これをれロから行う堎合は、 WordPressの公匏 むメヌゞから始めるか、Hub䞊の他の 公匏むメヌゞ の1぀でこれを詊すこずができたす。 たた、ECS むンスタンスでロヌカルに䜜成したものを実行する堎合は、最初に Docker Hub に保存しおおく必芁がありたす。 Hubでコンテンツの共有を開始するには、Hubのスタヌトガむドをご芧ください。

詳しく芋る

著者に぀いお

関連蚘事