0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-01-31

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

これは難なく完了。次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の管理画面の操作がそれなりに複雑な気もするのではじめのうちは何度も作ってはぶっ壊すかもしれませんがこのような開発環境の構築の仕方もあるのだと勉強になりました。

0
1
0

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
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?