技術書典6で購入した本1冊目。
ガチで役に立つ本でした。
コンテナ時代のWebサービスの作り方 | 楽描商店 https://t.co/xFdOX3orNn 技術書典6で頒布した本をboothにて委託しております。ご活用ください。#booth_pm #技術書典 — とまと(nasum)技術書典え35楽描帳 (@tomato360) April 14, 2019 とりあえず、76/103ページまでやってみました。ここまで行くと、ソースをコミットしたら自動的にサイトに反映される仕組みが動きます。
が、多少悪戦苦闘したところもありますので、その辺をメモ。
リージョン 書籍では、東京リージョン(ap-northeast-1)を使うことになっていますが、元々オハイオを使っていたのでそちらのus-east-2を使うことにしてみました。
すると、
The image id ‘[ami-785c491f]’ does not exist となります。これはリージョンによって異なるので、ami-8b92b4eeに変更します。(参考)https://docs.docker.com/machine/drivers/aws/
Terraform Terraform初体験。インフラをコードで定義するとはこういうことなんだ。
しかし、これも簡単に進ませてはくれません。
Error inspecting states in the “s3” backend: BucketRegionError: incorrect region, the bucket is not in ‘us-east-2’ region status code: 301, request id: , host id: 今回一番ハマったかもしれないのはこのエラー。
例えば、
aws s3 ls なんかを叩くと帰ってくるので、この接続でs3の所定のバケットが見えていないわけでもない。結局、フォルダ全体を一回消して、再度やり直したらOKという最悪パターンでした。
また、実際の発生順序は前後しますが、さらに進んでまたこのエラーが出るようになりましたが、書籍だと、aws_route_table.tf、aws_route_table_association.tfが、間違っているのでgithub(書籍に記載あり)のソースを見て記載しました。
rubyバージョン 元々のローカル環境がruby2.3.7だったのが悪いと思うのですが、最初にそれで進めてしまい、いざbuildが動くと
You must use Bundler 2 or greater with this lockfile が出るようになってしまいました。
Docker push AWS ECR 編
色々な編ができていく・・・
ずっとはまっていてもダメなので、ちょっとGitLabからのPullはどこかで質問することにします。
そして、AWS ECS で pull するのであれば、当然相性良いだろうと思われる、ECR にpushしてみます。
イメージのプッシュ
https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/docker-push-ecr-image.html
もうpushするimageはできているところからスタートします。
Docker 環境をステージング環境へ(Docker push編)
https://www.programmers-office.ml/2019/01/14/docker-%E7%92%B0%E5%A2%83%E3%82%92%E3%82%B9%E3%83%86%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0%E7%92%B0%E5%A2%83%E3%81%B8%EF%BC%88docker-push%E7%B7%A8%EF%BC%89/
python環境 pushするためには、まず1.の認証が必要です。
そのために、AWS CLIのインストールが必要です。
まあ、そうなんだろうけど面倒は面倒ですね。どんどん遡る・・・
結局、開発環境をDockerで作るとしても、それを扱うための環境(ここで言えばpython環境)をローカルに作らなければいけない。もう少しローカル依存を減らしたいのですが・・・
AWS CLI をインストールする方法
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html
おもむろに
$ pip install awscli –upgrade –user を叩くと、「pip: command not found」のつれないメッセージ。
$ python -m pip -V
/usr/bin/python: No module named pip そこからか・・・
python3 そもそも、macの初期インストールpythonは
python –version
Python 2.7.10 です。
pipはPython 3.4以降には、標準で付属しているそうです。
Python3系を入れましょう。
Code4Startupの時は、普通にインストーラーをダウンロードする形でしたが、今時だとやはり、Homebrewでしょうか。
https://brew.sh/index_ja.html
インストールのスクリプトを素直に実行。
インストール完了後、
$ brew doctor