Node.jsのインストール(nodenvを使う)
Node.jsのインストールをしてみました。
手順は次のとおりです。
Homebrewインストール
Homebrewのインストールする。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
エラーになった。メッセージに出力された内容を実行。
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow /usr/local/bin/brew update --force --quiet
anyenv
anyenvをインストールする。
brew install anyenv anyenv init echo 'eval "$(anyenv init -)"' >> ~/.zprofile anyenv install --init
nodenv
nodenvをインストールする。
anyenv install nodenv exec $SHELL -l
Node.jsのインストール可能なバージョンをみる。
nodenv install -l mkdir -p $(anyenv root)/plugins git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
Node.js
Node.jsをインストールする。
nodenv install 16.2.0 source ~/.zprofile
インストールしたnodeのバージョンを確認する。
nodenv whence npm
コンピュータのデフォルトに指定。
nodenv global 16.2.0
nodeが使えるか確認する。
node -v
参考にしたQiita
Node.jsのインストール
Qiitaを参考に自分のMacにNode.jsをインストールしました。
手順を書いておきます。
Homebrewのインストールする。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
エラーになった。メッセージに出力された内容を実行。
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow /usr/local/bin/brew update --force --quiet
nodebrewのインストールする。
Homebrewを使用してインストールする。
brew install nodebrew nodebrew -v nodebrew setup 202105 % nodebrew setup Fetching nodebrew... Installed nodebrew in $HOME/.nodebrew ======================================== Export a path to nodebrew: export PATH=$HOME/.nodebrew/current/bin:$PATH ========================================
Node.jsのインストールする。
nodebrew install-binary latest
インストールしたnodeを有効化する。
nodebrew ls nodebrew use v16.2.0
環境パスに通す。
echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zprofile source ~/.zprofile
nodeが使えるか確認する。
node -v
AWSの勉強
Athena。S3に対して標準SQLでインタラクティブなクエリサービス。
Amplify。Cognito, API Gateway, AppSync, Iot Core, DynamoDB, S3, CloudFrontから成る構成を、Amplify APIで共通的な操作手順で作成できる。独自バックエンドの追加も可能である。
オーケストレーション。ECS、EKS
イメージレジストリ。ECR
実行環境。Fargate、EC2。
ECSとmesosで、mesosを選択する事例。
Quby. | Sysdigユーザー事例 - コンテナ・Kubernetes環境向けセキュリティ・モニタリング プラットフォーム
増減が簡単
AWS以外のクラウドが選択肢に残る
AWS Black Belt Online Semirar AWS CDKメモ
AWS Cloud Deployment Kitを見ながらのメモ書き。
CDKについてというより、付帯して自分の知らないキーワードめも。不勉強。
プロビジョニングツール
あるべき状態の定義。
- AWS CloudFormation
- CloudFormation
- HashiCorp Configuration Language(HCL)
- TerraForm
CDK開発環境の準備
- AWS CLI
- Node.js 10.3.0
- npm install -g aws-cdk
- cdk init app --language=typescript
- CDKデプロイ管理用の環境(S3バケット)
- cdk bootstrap
- ビルドとCFnテンプレート生成
- npm run build
- cdk synth mystack
- デプロイ
- cdk deploy mystack
- npm run test
Pythonの場合
- node --version
- cdk --version
- python3 --version
- cdk init sample-app --language=python
- vertialenv
- source .env/bin/activateでvertualenvを有効化
- pip install -r requreiments.txt
Javaビルドとデプロイ
- javac -version
- mvn -version
- mvn versions:use-latest-versions
- cdk ls
- mvn package
- cdk deploy
virtualenv
nuget
.NET Core
Fargate
CDKアプリケーションの構成
Multi-language libaries
JSii
Dockerコンテナの連携(同一ホスト)
mkdir ~/build_mysql vi ~/build_mysql/Dockerfile FROM enakai00/centos:centos6 MAINTAINER txcdb738 ENV HOME /root RUN yum -y install mysql-server ADD init.sh /usr/local/bin/init.sh RUN chmod u+x /usr/local/bin/init.sh EXPOSE 3306 CMD ["/usr/local/bin/init.sh"]
vi ~/build_mysql/init.sh #!/bin/bash service mysqld start cat <<EOF >>~/.bashrc trap 'service mysqld stop; exit 0' TERM EOF exec /bin/bash
docker build -t txcdb738/mysql:ver1.0 ~/build_mysql docker run -itd --name mysql01 txcdb738/mysql:ver1.0 docker attach mysql01 mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'nodeuser'@'localhost';" mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'nodeuser'@'%' IDENTIFIED BY 'pas4mysql';" mysql -u nodeuser -e "CREATE DATABASE shorturl_service;" mysql shorturl_service -u nodeuser -e " ¥ CREATE TABLE url_list ( ¥ hash CHAR(2) PRIMARY KEY, ¥ url VARCHAR(256) UNIQUE NOT NULL COLLATE utf8_bin ¥ );"
cd ~ git clone https://github.com/enakai00/build_shorturl cd build_shorturl git checkout dockerbon cp pre-commit .git/hooks/ git commit -a -m "Commit to build an image."
~/build_shorturl/Dockerfile
FROM enakai00/centos:centos6 MAINTAINER txcdb738 RUN yum -y install epel-release RUN yum -y install nodejs nodejs-mysql nodejs-ejs nodejs-express RUN mkdir /root/app ADD app /root/app ADD init.sh /usr/local/bin/init.sh RUN chmod u+x /usr/local/bin/init.sh ENV NODE_DBNAME shoturl_service ENV NODE_DBUSER nodeuser ENV NODE_DBPASS pas4mysql ENV NODE_PATH /usr/lib/node_modules CMD ["/usr/local/bin/init.sh"]
~/build_shorturl/init.sh
#!/bin/bash cd /root/app node server.js & cat <<EOF >>~/.bashrc trap 'pkill-TERM node; sleep 3; exit 0' TERM EOF exec /bin/bash
~/build_shorturl/app/server.js
var LISTEN = '0.0.0.0; var HOSTNAME = 'localhost'; var PORT = 80; var DBHOST = process.env.DB_PORT_3306_TCP_ADDR; var DBPORT = process.env.DB_PORT_3306_TCP_PORT; var DBNAME = process.env.NODE_DBNAME; var DBUSER = process.env.NODE_DBUSER; var DBPASS = process.env.NODE_DBPASS; var sys = require('sys), express = require('express'), ejs = require('ejs'), mysql = require('mysql'), crypto = require('crypto') function db_access(callback) { var client = mysql.createConnection({ host: DBHOST, port: DBPORT, user: DBUSER, password: DBPASS, database: DBNAME });
docker run -itd -p 8000:80 --link mysql01:db --name shorturl01 txcdb738/shorturl:ver1.0 docker run -itd --name mysql01 --expose 3306 txcdb738/mysql:ver1.0
Dockerfileからshellを使ってビルド
Dockerfileを記述する。
[centos@ip-172-31-39-215 build_rails]$ vi Dockerfile FROM enakai00/fedora:21 MAINTAINER txcdb738 RUN rpm --rebuilddb; yum install -y make gcc gcc-c++ ruby-devel rubygem-rails \ rubygem-therubyracer libsqlite3x-devel ADD create_app.sh /usr/local/bin/create_app.sh RUN chmod u+x /usr/local/bin/create_app.sh && /usr/local/bin/create_app.sh ADD init.sh /usr/local/bin/init.sh RUN chomd u+x /usr/local/bin/init.sh CMD ["/usr/local/bin/init.sh"]
Dockerfileから呼び出すcreate_app.sh
[centos@ip-172-31-39-215 build_rails]$ vi create_app.sh #!/bin/bash -x mkdir /root/rails cd /root/rails rails new dengonban cd dengonban echo "gem 'therubyracer', platforms: :ruby" >> Gemfile sed -i "s/# \(config.time_zone\) =.*/\1 = 'Tokyo' /" \ config/application.rb sed -i "s/\(config.serve_static_assets\) =.*/\1 = true/" \ config/environments/production.rb RAILS_ENV=production bundle exec rake assets:precompile rails generate scaffold Message name:string content:text date:datetime rake db:migrate RAILS_ENV="production"
Dockerfileから呼び出されるinit.sh
[centos@ip-172-31-39-215 build_rails]$ vi init.sh #!/bin/bash export SECRET_KEY_BASE=\ $(ruby -e 'require "securerandom"; print SecureRandom.hex(64)') cd /root/rails/dengonban rails s -e production -p 80 -d cat <<EOF >>~/.bashrc trap 'pkill -TERM ruby-rmi; sleep 3;exit0' TERM EOF exec /bin/bash
docker run -itd -p 8000:80 --name rails01 txcdb738/rails:ver1.0 docker ps -l docker top rails01 ax | unexpand -t20 docker stop rails01 docker rm rails01