見出し画像

【AWS備忘録】AWS Fargateで「WordPress」ってやつを動かしてみる①(GUIのみ)

こぐま

こんにちはこぐまです。

書きたい記事はたくさんあるけどなかなか進まないここ最近です。
頑張ってたくさん書きたい・・。

さて、久しぶりにECS(Fargate)のお話です。
Fargateといえば、AWSのECSの基盤部分の運用をまるっとお任せできるコンテナオーケストレーションサービスですね。
最近性能も上がってきたみたいで(なんかのセミナーで聞いた気がする)、
結構コンテナでは人気のサービスのような気がしています。
しかし、実際サクッとWordPressを動かしてみようかなと思ったら、かなり苦戦しました・・。でも、たくさんいろんなこと知りました。

なので本日のテーマは、
「もうこの通りやれば、とりあえず「AWS Fargate」で「WordPress」動かせるよ!」
ってのを書いてまとめてみようと思います。

準備するもの

1.AWSアカウント

  すでにこのNoteをここまで読んで下さっている方はAWSアカウントをお持ちの方がほとんどだと思いますが、もしまだの場合は、以下の記事からお読みいただければと思います。

2.好奇心

     かなり大事!手を動かして得られる経験はプライスレス!

上記以外は不要です。
また、今回リージョンとしては「大阪リージョン」を使ってみようと思います!(大阪リージョンで既に作成したリソースがない前提でお話ししますね)ではいきましょう!

1.クラスター作成まで

1-1.AWSマネジメントコンソールにログインし、右上のタブから「大阪」リージョンを選択する。

これは簡単ですね!

1-2.検索欄に「ECS」と入れて「Elastic Container Service」をクリックする。

★マークしておくとブックマークできるので便利です!
こんな画面になります。

1-3.左メニューから「クラスター」を選択する。

簡単ですね!

1-4.「クラスターの作成」をクリックする。

簡単ですね!

1-5.「ネットワーキングのみ」が選択されているので、そのまま「次のステップ」をクリックする。

「次のステップ」をクリックするだけです!


1-6.とりあえず以下のようにクラスター属性を埋めていく

ここから少し入力項目があったりします。

  • クラスター名:「test-wordpress-cluster」

  • VPCの作成:チェックつける

  • CIDRブロック:チェック付けた後に表示される値のまま

  • タグ:何もなし

  • Container Insightsを有効にする:チェックなしでOK

IPの部分は、チェック付けると自動的に入力されると思います。

しばらく待つと、「ECSクラスター」「CloudFormationスタック」というものが両方緑になります。

しばらく待つと・・・
緑色になりましたね!
そしたら、「クラスターの表示」をクリックして戻りましょう。
下に表示されるクラスターリソースはたくさんつらつら出てきますが、
そんなに気にしなくていいです。
こんな感じで出てきたら成功です!

これでクラスターの作成は完了です。

2.タスク定義の作成

ここがキモです!
そしていざ手を動かしてみるといろんなところで躓いて、いろんな発見がありました。それらをまとめていきたいと思います。

2-1.画面左のメニューから「タスク定義」を選択する。

簡単ですね!

2-2.「新しいタスク定義の作成」をクリックする。

簡単ですね!

2-3.「FARGATE」が選択されている状態で、「次のステップ」をクリックする。

今回は「Fargate」を使います。使ってみたかったのです。

2-4.タスク定義の最初の部分を設定していく

ここは少し長いので、ゆっくり順番に行きます。
まず最初の「タスクとコンテナの定義の設定」から。

  • タスク定義名:「test-task」(別に何でもいいです!)

  • タスクロール:「ecsTaskExecutionRole」 (プルダウンからこれを選んでください)

  • オペレーティングシステムファミリー:「Linux」(プルダウンからこれを選んでください)

入力できない部分も実は大事な部分なのですが、
今回はとりあえず動かすことを目的としているので説明は割愛します!

続いて、「タスクの実行IAMロール」と「タスクサイズ」です。

  • タスクの実行IAMロール:「ecsTaskExecutionRole」(たぶんそのまま入っていると思います。)

  • タスクメモリ:1GB

  • タスクCPU(vCPU):0.5vCPU

それぞれプルダウンから選んでいくだけなので簡単だと思います!

2-5.「コンテナの定義」のポップアップを開く

つづいて「コンテナの定義」です。まずコンテナの追加を押下します。

簡単ですね!

そうするとこんな感じでポップアップ?が出てきます。
この必要な部分を入力していきます。

ここからさき、ちょっと入力が多くなるので、いったん分けます。

2-6.「mysql」コンテナの定義を作っていく

今回は「1つのタスク」の中に「2つのコンテナ」を作ります。
2つのコンテナとは、
wordpress-con(いわゆるwordpressアプリ本体)」
mysql-con(wordpressが必要とするデータベース)」
です。2つのコンテナは「一組のタスク」として先ほど作成したクラスター上で動きます。
まずはDB側の「mysql-con」というコンテナの定義を作っていきます。
(コンテナという意味を込めて、-conと付けましたが、別にコンテナの名前は何でもよいです。)

「スタンダード」という部分で入力するのは3つだけです。

  • コンテナ名:「mysql-con

  • イメージ:「mysql」(mysqlとだけ書きます。これだけでDockerHubから公式のmysqlイメージを持ってきてくれます。)

  • ポート:3306

続いてヘルスチェックの部分です。
ここは、コマンドの枠の中に、
一字一句間違わず、以下のように入れてください。(超大事!)
(いろいろ変更することもできますが、とりあえずまずは以下のまま入れてください。)

CMD-SHELL , mysqladmin ping -u testuser -ptestpass -h 127.0.0.1 || exit 1
mysqlに定期的に接続するコマンドのようです。
反応があればヘルスチェックは成功となります。
接続ユーザ名は「testuser」接続パスワードは「testpass」としています。
大きなポイントとして、-u の次はスペースがいるが、
-pの次はスペースがいらないということです。(なんでだろう・・)

そのほか、間隔、タイムアウト、開始期間、再試行がありますが、
それぞれ以下のように入力してください。

間隔~開始期間は「10」、再試行は「3」と入力する。

そして、もう少し下のほうにある、「環境変数」という場所で、
それぞれ以下のように入力します。
ここも、(最初は)一字一句間違えないように入力してください。

  • MYSQL_DATABASE Value wordpress

  • MYSQL_PASSWORD Value testpass

  • MYSQL_ROOT_PASSWORD Value rootpass

  • MYSQL_USER Value testuser

真ん中のプルダウンは「Value From」ではなく、「Value」を
選択してください。
大文字小文字にも気を付けてください。

上記以外は何も変更せずそのままで大丈夫です。
下までスクロールし、「追加」をクリックください。

コンテナの定義として「mysql-con」が追加されました。

2-7.「wordpress」コンテナの定義を作っていく

続いて、もう一つのコンテナ「wordpress-con(いわゆるwordpressアプリ本体)」の定義を作っていきましょう。
同じく、コンテナの追加をクリックします。

簡単ですね!

スタンダードのところで、以下のように入力していきます。

  •  コンテナ名:「wordpress-con

  • イメージ:「wordpress」(wordpressとだけ書きます。これだけでDockerHubから公式のwordpressイメージを持ってきてくれます。)

  • ポート:80

 

下にスクロールしていき、環境変数の部分です
なお、wordpress-con側ではヘルスチェックの設定は不要です。

  • WORDPRESS_DB_HOST Value 127.0.0.1

  • WORDPRESS_DB_NAME Value wordpress

  • WORDPRESS_DB_PASSWORD Value testpass

  • WORDPRESS_DB_USER Value testuser

こちらも一字一句間違えぬように入力してください。
mysqlコンテナの時と同じく、プルダウンは「Value」を選んでください。

環境変数のすぐ下に、「スタートアップ依存順序」というのがあります。
コンテナ名のプルダウンから「mysql-con」を選択し、
状態として「HEALTHY」を選択してください。

これもかなり重要な部分です。(たくさん失敗しました・・)

上記以外は何も変更せずそのままで大丈夫です。
下までスクロールし、「追加」をクリックください。

これで2つのコンテナ定義が作成できました。

2-8.タスク定義の一番下までスクロールし、「作成」をクリックする。

他にも設定できる部分はありますが、今回は利用しません。
一番下までスクロールし、「作成」をクリックします。

簡単ですね。
タスク定義が無事に作成できました。
最初に戻って、タスク定義をクリックすると、
「test-task」というのができているのがわかります。

これで準備完了です!
長くなってきましたので続きは②で書きます!

ここまで読んで下さってありがとうございました。

この記事が参加している募集

最近の学び

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!