【開発環境】右も左もわからないAWS初心者のための導入の仕方からECSを使ってEC2にファイルをぶち込んでぶっ壊すまで。

【開発環境】右も左もわからないAWS初心者のための導入の仕方からECSを使ってEC2にファイルをぶち込んでぶっ壊すまで。:


まずはAWSのアカウントを作成

https://aws.amazon.com/jp/

これは難なく完了。次AWS CLIのインストール。

とにかくよくわからないからページをスクロールして見つけたコマンドを実行。

aws ec2 describe-instances 
当然のごとく動かない。のでもう少しページを調べてみます。

Mac および Linux

Python 2.6.5 以降が必要です。


pip を使ってインストールします。

見逃してました。

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 
 
sudo python get-pip.py 
 
sudo pip install awscli --upgrade --ignore-installed six 
 
aws configure 
 
そしたらこんなんが順番に出てくる

AWS Access Key ID [None]:  
AWS Secret Access Key [None]:  
Default region name [None]:  
Default output format [None]:  
でIDとかなんやらを入れろってなってるけど、アクセスキー?シークレットアクセスキー?ってなったので、ぐぐってみる。そして見つけました。
参考:AWSアクセスキーIDとシークレットアクセスキーを取得する方法

どうやらログインして取得する必要があるようです。


各項目の意味合い
  • AWS Access Key ID [None]: "アクセスキーID"をコピー
  • AWS Secret Access Key [None]: "シークレットアクセスキー"をコピー
  • Default region name [None]: "ap-northeast-1"を入力
  • (これがTokyoリージョンらしいので日本国内ならこれ)
  • Default output format [None]: "text","JSON","table"のどれかを指定(とりあえずtextで指定しました。)
参考:AWS CLIのセットアップ

設定の確認

aws configure list 
最新版のインストーラーをダウンロードし再インストールする。

sudo pip install -U awscli 
参考:AWS CLIのインストール

「AWS ECS」を使ってファイルをAWSにアップする

Dockerのダウンロードも忘れずに
Dokerの公式サイト

アカウント登録 → ダウンロード

※WiFi環境でやらないと時間がかかる。テザリングだと早くて1時間ぐらい

IMS 権限の設定

プログラムからのアクセスにチェックをしないとCLIでアクセスできない

aws ecr get-login --no-include-email --region us-east-2 
を打つとコマンドラインに文字列がかえってくる

その文字を「amazonaws.com」までをコピーして、貼り付け→Enter

Login Succsesstedが返って来ればOK

pushできる準備が整う

下記の1から順番に実行

1. docker build -t php . 
 
2. docker tag php:latest 510930968738.dkr.ecr.us-east-2.amazonaws.com/php:latest 
 
3. docker push 510930968738.dkr.ecr.us-east-2.amazonaws.com/php:latest 
全部実行したらAWSのリポジトリにファイルがアップロードされる


クラスターとタスクの定義をします

ECSの機能を使ってEC2のサーバーを立ち上げる時に


クラスターの設定

EC2 Linax ネットワーキングをせんたく

※ネットワーキングのみだとルート権限のあるものを制御できない

→自分でEC2を管理しなくてもいい

※定義できないエラーが出たら先にタスクを作成する


タスクの作成

タスクを作成してからクラスターを定義したらできました。

ちなみにサーバーやクラスターの管理をしないでコンテナを実行できる仕組み「ファーゲート」もある

EC2 インスタンスタイプはその時に応じて、今回の場合そんなに大きなものはいらないので「t2micro」でOK。

キーペアは重要

「新しいキーペアは EC2 コンソールで作成できます」から遷移して作成

タスクの定義をします。

ECSはEC2を自動的に立ち上げてコンテナを入れる

sshしたい場合は、接続を押して「例」にかいてあるところのコードを貼り付けて実行します。

けどエラーになる場合があるののでsshのポートの設定を「マイIP」に変更してください。

sshのportが空いてないのsshのポートの設定を「マイIP」にする


sshできない!

ファーゲートで設定で行なった場合は中のログとか全部みれないのが欠点。

サーバーレスの開発を行なっている場合はgoodです。

ログを見たい場合は、自分でログをはくプログラムを書かないといけない。


インスタンスの消し方

ESCから立ち上げたEC2は削除できない

ECSの考え方は指定したインスタンスは常に立ち上げるからインスタンスを消してもダメ

クラスターを消す必要がある

クラスターの操作画面から「クラスターの削除」を選択すると削除できます。

※「ECS CLI」 ECS専用のCLIもある


まとめ

かなり簡単に全く同じ開発環境がいくつも作れて便利ではないかと感じました。

AWSの管理画面の操作がそれなりに複雑な気もするのではじめのうちは何度も作ってはぶっ壊すかもしれませんがこのような開発環境の構築の仕方もあるのだと勉強になりました。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)