#はじめに
都内某所に住む大学院生です!
休学しているということもあり、空いてる時間が多いので、今のうちにインフラ周りであるテスト・デプロイの自動化(CI/CDパイプラインの構築)方法について学ぼうと思ったので勉強し、その結果をまとめました!
ブログ感覚で書き始めました。ちなみに初投稿なんで優しい目で見ていただけるとありがたいですm(_ _)m
(あと、本記事はまだ本編スタートしないので読まなくても構わないです。。)
前提知識
この記事を読む上で、知っておいて欲しいこと一覧。(というか、各ツールの詳細部分までは__説明しない__ので、詳細を知りたい方は、他の記事を参考にして欲しい。)(付け足すかも)
〜ネットワーク編〜
・ サブネット
・ ルートテーブル
・ CIDR
〜Docker(docker-compose)編〜
・run
/ exec
等基本コマンド
〜CircleCI編〜
・YAML(.yml)ファイルの記法
本シリーズ集
この__『AWSに自動でテスト/デプロイしてくれるインフラの設定・構築』__シリーズは、今のところは6回くらいほど続く予定
タイトル | |
---|---|
0 | 目標・やりたいこと |
1 | AWS編 |
2 | rails開発環境構築編 |
3 | Nginx・MySQL編 |
4 | Capistrano編 |
5 | CircleCI編 |
6 | 総集編 |
使用するツール
- AWS
- CircleCI(version-2.1)
- Docker(version-19.03.5, docker-compose: version-1.24.1)
- Github
- Nginx(version-1.19.5(Dockerのlatestタグ))
- Rails (rubyのgem。 version-6.0.3.4)
- Capistrano(gem。 version-3.14.1)
- puma (gem。 version-4.3.6)
- MySQL(version-5.7。 Docker)
rails などのgemも基本はDocker(docker-compose)を使用します。
目標・やりたいこと
- AWSでEC2インスタンス(後述)3つを立てて、その中で__Docker__を使用して、Nginx(Webサーバ)・puma(APサーバ)・__MySQL(DBサーバ)__それぞれの本番環境を構築する。
- また、Github__と__CircleCI・Capistrano__を利用して、AWSのEC2に自動でテスト&デプロイしてくれる(所謂、『CI/CDパイプラインの構築』__)よう設定する。
Dockerとは?
終わる前にDockerについて一言。
近年流行っている__仮想化技術__の一つ。
コンテナを作成し、その中で、ローカルの環境とは別の、__独立した環境__で開発等々を行う技術。
↓参考になったサイト・記事
・Dockerとは何か、何が良いのか
・Docker超入門①〜Dockerってなに?〜【初心者向け】
⬇️このツール群で唯一参考にしたudemyの講座。すごく助かりました。
・米国AI開発者がゼロから教えるDocker講座
最後に、筆者について
とあるSI系の会社でインターンとして働いており、これまではふんわりと『普通にどこかの企業に就職するかな〜っ』て考えていました。
ですが、休学を機に、自分は何をやりたいか?と考えた結果、IT系に進もうと決心しました。
そして、『このままではダメだ!基礎から勉強しよう!』と思い、基礎情報処理__や__応用情報処理、__ネットワーク周り__を勉強し始めました(ちょっとネットワーク周りは勉強しすぎた感ありますが)。
一通り、基礎固めが終了し、言語の習得もそこそこにして(元々インターンで培っているので、他の人よりはプログラミング言語の習得は早いと思います)、次はインフラ周りの勉強するぞ!という段階です。
まだ本腰入れて勉強し始めて3ヶ月ほどなので、間違ったことを書いていれば、コメントで指摘していただければ有難い限りです。