投稿

2019の投稿を表示しています

strAPIをyarnで導入してみた

色々とあって strAPI という Headless な CMS を試してみたいという話が某所で起こったので、まぁ頑張ってください。ローカルで試すんですよねぇ。と思っていたら。 なんか何人かで検証したいのでみんなが触れるところに入れられないかという話があったんでサクッとサーバ立てることにしました。まぁいつも通り AWS の EC2 構成です。 ひとまずは最小構成で構わないとのことなので t3 で行こうと思ったら間違って t3a でAMI展開しちゃいました。 では、お約束の手順となります。ほぼコピペのみでやってます。先人の偉大な方々に感謝です。調べたサイトでみんな npm でやってて、 yarn でやってる人がまったくいなかったので困りました。(自分がゴミレベルなだけだからかもしれませんが、、、 ■手順 1.事前準備 # ホスト名設定 $ sudo hostnamectl set-hostname starapisv # アップデート(パッチ類適用) $ sudo apt -y update $ sudo apt -y upgrade # ubuntuユーザをwww-dataグループに追加 $ sudo usermod -aG www-data ubuntu 2.ミドルウェア類設定 # nginxインストール $ sudo apt-get -y install nginx $ nginx -v nginx version: nginx/1.14.0 (Ubuntu) # node,npmインストール(nパッケージで導入) $ sudo apt install -y nodejs npm $ sudo npm install n -g $ sudo apt install -y nodejs npm $ sudo npm install n -g $ sudo n stable $ sudo apt purge -y nodejs npm $ node -v v12.14.0 $ npm -v 6.13.4 $ exec $SHELL -l # yarnインストール $ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - $ echo "

LambdaでキーのみのDynamoDBテーブルを作成させてみた

業務で色々とDynamoDBをもてあそぶ機会があるんですが、DynamoDBのテーブル設定するのが面倒くさいのとキーのところのコピペがうまくいかなかったりと、なんだかイライラとするところが多くて、これ何とかなんないのかと思って、少し調べました。 既に データをインポートするところ は作っているのでキーだけを付与するDynamoDB作成用のツールがほしかったわけです。ググってコピペって完成です。いつも通り とりあえず個人で使用するので環境変数を書き替えてLambdaのコンソールで[テスト]ってすれば動くようになっています。後は単独 ハッシュキー のプライマリキーか ハッシュ+ソート の複合プライマリーキーを設定して作成できるようにしています。 セカンダリ―インデックス は使用しないので今回は対象外です。そして オンデマンド です。 エラー処理はほぼないです。相変わらずのへぼちんです。そして追加ライブラリはなしです。一応、Lambdaのpython3.8ランタイムで動きました。 ■ソースコード import datetime import logging import json import os import urllib import boto3 LOGGER = logging.getLogger() LOGGER.setLevel(logging.INFO) dynamodb = boto3.resource('dynamodb') # DynamoDB def make_table(table_name,key_name,tag_value): try: if type(key_name) is str: attrdef = [{ 'AttributeName': key_name ,'AttributeType': 'S'}] keyschem = [{ 'AttributeName': key_name ,'KeyType': 'HASH'}] elif len(key_name) == 2: attr

GCPでプロジェクト整理のため組織作ってみた(その2)

イメージ
引き続きGCPの組織アカウントの作業を続ける。前回の作業は こちら を参照、今回は既存のアカウントを組織に紐づけする。 1.グループの作成 1)作成した管理者アカウントで https://admin.google.com/ にログインする。 *シークレットウィンドウで作業したほうがいい。 2)[管理コンソール]→[グループ]を選択する 3)[グループを作成]をクリック 4)グループの詳細情報([名前]、[説明]、[メールアドレス])を入力する。グループのオーナーに既存のGCPのログインアカウントを設定する。[次へ]をクリックする。 5)[アクセスタイプ]を[チーム]に設定しその他はデフォルトで[グループを作成]をクリック 6)確認画面が表示されるので[完了]をクリックする。 以上でグループの作成は完了なんだけど どうやって組織と紐づけるんだと思ったところで、詰んでます。 最初に管理者を作ってGCPのIAMから組織を作ればすんなりいくようですが 既に作成済みのGCPからプロジェクトを設定するとなると、これ行けるのかという 感じです。 今回は一旦終了して引き続き調査してみます。

GCPでプロジェクト整理のため組織作ってみた(その1)

イメージ
某社 のGCPセミナーを受けた際に、 GCP では[組織]→[フォルダ]→[プロジェクト]みたいな単位で IAM管理 しているという話を聞いた。 個人アカウントでプロジェクトがゴロゴロしていてて正直なところ見通しが悪いと思ってたので、 フォルダで束ねられる と聞いてこれはやらねばと思ってセミナーの講師の人に聞くと 組織 がないとできないとのこと。組織を作るには GSuite が必須なんだろうなぁと思っていると、 CloudIdentity があれば対応できるとのこと。 個人でも無償で開設できるとのことなので早速、試してみた。まぁほぼほぼ ここ の手順をなぞっているだけですがね、、、 1.Cloud Identity無料版開設 1)GCPのコンソールにアクセス 2)[メニュー]→[IDと組織]→[Cloud Identity]→[申込]をクリック 3)説明画面出てくるので[次へ]をクリック 4)[ビジネス名]を入力し[従業員の数]を入力し[次へ]をクリック 5)[国]で表示が日本であることを確認し[次へ]をクリック 6)[現在のメールアドレス](管理者用のメールアドレスgmailで可)を入力し[次へ] 7)[ご利用のドメイン名]を入力して[次へ]をクリック 8)確認画面が表示されるので、そのまま[次へ]をクリック 9)管理者の[姓]、[名]を入力して[次へ]をクリック 10)[ユーザ名]と[パスワード]を入力して[次へ]をクリック 11)フィードバックの画面が表示されるので[OK]をクリック 12)ロボットではありませんをチェックして[同意してアカウントを作成]をクリック 13)アカウントが作成されるのでシークレットウィンドウを開いて以下にログインする。 https://admin.google.com/setup/u/0/identity/gcp 2.ドメイン設定 CloudIdentityを使うにはドメイン認証が必要となるのでドメインを登録しているDNS

mongoDBインストールしてコンソールでCRUD試してみた

クローリングしてきたデータの保存先、最初はテキストでいいかと思っていたんですが やはり検索とか考えるとデータベースにぶち込んだ方がいいかなぁと思って RDB を使うか、 はやりの NoSQL を使うかで悩んでいました。もともと保存しているテキストが JSON 形式で あることと放り込んだデータに後から項目を追加するということも考えていたところもあって 柔軟性がほしいなぁと思ったので mongoDB を使ってみることにしました。 python からいじくる予定なのですが、まずは動作検証してみたいということでmongoDBをインストール してみました。ま、よそで色々とされているのでコピペしてぶっ込んでみて、そして簡単に CRUD してみた だけです。 ほとんど新しい知見はえられない記事です。  ■手順 1.mongoDBインストール #キーを入手 $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 $ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list $ sudo apt update ・mongodbインストール $ sudo apt install -y mongodb-org #動作確認 $ mongod --version db version v4.0.13 git version: bda366f0b0e432ca143bc41da54d8732bd8d03c0 OpenSSL version: OpenSSL 1.1.1 11 Sep 2018 allocator: tcmalloc modules: none build environment: distmod: ubuntu1804 distarch: x86_64 target_arch: x86_64 matarain

ACM+CloudFront+Route53でS3バケットをhttps付きでWeb公開

イメージ
もはやAWSでは出さされつくした感のある S3をhttps形式で公開しましょう というデザインパターンを試してみました。 前回 のWordPressを移行した後の設定で使用した内容です。まぁ ここの手順 そのままチックではあるんですが、、、とりあえず個人の備忘録として置いておきます。 1.ACMの設定  Amazonのコンソールにログインしてリージョン設定を[米国東部(バージニア北部)]に変更する。 サービスで「ACM」と検索してCertificateManagerを選択する。  [今すぐ始める]ボタンをクリックする。 ※ない場合は[証明書のリクエスト]をクリックする。 [パブリックの証明書リクエスト]が選択されていることを確認して[証明書のリクエスト]をクリックする。 [ドメイン名]の箇所に証明書を発行したいドメインを入力する。その後[この証明書に別の名前を追加]をクリックする。  「*.ドメイン名」を入力する。 ※ほんとはワイルドカードじゃなくて個別のサブドメイン指定するほうがいい。 入力できたら[次へ]をクリック  [DNSの検証]を選択する。 *自分はRoute53を使うのでこうすると楽  [確定とリクエスト]をクリックする。  ドメイン名の横の「▲」をクリックして[Route53でのレコードの作成]をクリックする。  「成功」表示を確認してから[続行]をクリックする。  「状況」で[成功]となっていれば作業は完了 リージョン設定を[アジアパシフィック(東京)]に変更する 2.CroudFrontの設定  サービスで「CloudFront」と検索してCloudFrontを選択する。  [CreateDistribution]をクリックする。  [Web]となっているほうの[Get Started]をクリックする。  あらかじめWeb用に作成したS3bucketを選択する。 ・Restrict Bucket Accessは[YES]を選択する。 ・Origin Access Identityは[Create a New Identity]を選択する。 ・View Protocol Policyは[Redirec

既存のVPSのWordPressをEC2+AuroraServelessに移行してみた

今現在、趣味で Conoha にて運用している WordPress のサイトがあるのですが、VPSを別の用途で使いたいと思いまして、サイトの移行を考えています。 そして移行第一弾としてこのWordPressサイトをそのまま AWS に移してみようということで今回、移行作業にトライしてみました。 これを機会に DNS もConohaに設定していたのを Route53 に移しています。 ちなみに Route53 への移行はこ このサイト を参考にしました。後は VPC の設定とかは 事前に全部完了させている想定です。 大まかな手順は以下の通りです。色々と先人がいたおかげで、結構簡単にできました。 1.既存サーバでデータベースのエクスポートと既存サイトの圧縮 2. EC2 にてWebサーバを構築( nginx + PHP7.3 ) 3. AuroraServeless にてデータベース設定 4.既存サーバから取得したデータベースと既存サイトを展開 5.nginx起動 ではコマンド類です。 参考 https://qiita.com/morizyun/items/f45dc580bac0ebba79ab   1.既存サイト側の作業  (1)MySQLバックアップ $ sudo mysqldump --default-character-set=utf8 -u root -p samplesite > ~/20191001_wpdump.sql $ cd $ sudo chown sshloginuser 20191001_wpdump.sql $ sudo mv 20191001_wpdump.sql /home/sshloginuser (2)WordPressバックアップ $ cd /var/www/ $ sudo tar -czvf samplesite_bkup.tar.gz samplesite $ sudo chown sshloginuser samplesite_bkup.tar.gz $ sudo mv samplesite_bkup.tar.gz /home/sshloginuser $ sudo vi samplesite/wp-config.php ※以下の箇所を控えておく(移行時に使用する) ----

GCPのGAEでDataStoreにデータ投入して検索するAPIのサンプル作ってみた

前回 の続き、 GCP の開発環境は作ってみたものの。肝心の GAE + DataStore の環境ができていないのでローカル環境でサンプル的なものを作って動かしてみることにした。 もしかしたら DynamoDB でも似た様な事をできるのかもしれないけど グローバルセカンダリインデックス の考え方がよく分からなかったのと複合条件とかが結構複雑な考え方でやらないといけないっぽかったのでGCPとAWSを適材に応じて使えますとか言ったら、 転職に有利になるかと 、会社のお役に立てると思い今回はGAEでやってみました。 1.環境構築 (1)作業用ディレクトリ作成 $ mkdir flasksample $ cd flasksample (2)DataStore用cloud-gui導入 参考サイト: https://engineer.crowdworks.jp/entry/2019/03/08/161559 https://qiita.com/kerupani129/items/60ee8c8becc2fe9f0d28 $ mkdir datastore $ cd datastore $ cd ../ $ sudo apt update $ sudo apt install -y nodejs npm $ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - $ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list $ sudo apt update $ sudo apt -y install yarn $ sudo yarn global add google-cloud-gui $ sudo npm i -g google-cloud-gui (3)CloudSDK設定 参考サイト: https://qiita.com/G-awa/items/e6904b040caa0096fba0 https://qiita.com/sky0621/items/597d4de7ed9ba7e31f6d h

aptでGCloud入れてみた。

GoogleCloudPlatform で DataStore と flask を利用して GAE でAPIを作れないかと色々と調べているものの 前回作成した環境 だと2020年1月サービス終了のpython2系環境に固定されちゃうんで嫌だなぁと思って、何か他にうまい手がないか調べたところ、 公式 ではaptで入れられるらしいし ここ を調べるとpython2系と3系をpyenvで併存させられるみたいなので、こっちの 環境でgcloudを入れ直してみた。 ■以下はコマンド #pyenv設定 $ pyenv global 2.7.16 3.7.3 $ pyenv global 2.7.16 3.7.3 #CloudSDKインストール $ export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" $ echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list $ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - $ sudo apt-get update && sudo apt-get -y install google-cloud-sdk google-cloud-sdk-app-engine-python google-cloud-sdk-app-engine-python-extras google-cloud-sdk-datastore-emulator google-cloud-sdk-pubsub-emulator google-cloud-sdk-cbt google-cloud-sdk-bigtable-emulator kubectl #インストール後確認 $ gcloud --version Google Cloud SDK 259.0.0 alpha 2019.08.16 app-engine-python 1.9.86 ap

AWSのUbuntu18.04LTSにmauticをインストール

最近 マーケティングオートメーション なる考え方を勉強していて、 マルケト SATORI HUBSPOT Salesforce Pardot なんか色々とあるということは理解できたけど、ほとんどが有償でハードルが高いです。 調べていた中でOSS版 mautic だとお手軽に勉強できそうだったのでインストールしてみました。ひさびさにPHPのサーバ構築で、 FastCGI のところでやや嵌りましたが無事にインストールできました。なのでひとまず備忘録として置いておきます。 この通りの手順でやって損害出るかもなのでコピペして本番運用はしない方がいいかと思います。それなりにセキュリティ対策はしておいてください。環境はAWSのUbuntu18.04+PHP7.2+MariaDBです。PHP7.3でやりたかったんですが、対応してないってことなので泣く泣くPHP7.2です。 あとはゆくゆくのバージョンアップを考えて git clone でインストールしてみました。 バージョンアップ 、これは今後の課題、それでは以下手順です。 ◆作業手順 ## ホスト名設定 $ sudo hostnamectl set-hostname mautic_srv ## アップデート $ sudo apt-get -y update $ sudo apt-get -y upgrade ## sshセキュア強化 $ sudo vi /etc/ssh/sshd_config PermitRootLogin no ←追記 $ sudo service ssh restart ## 日本語化 $ sudo apt-get -y install language-pack-ja $ sudo update-locale LANG=ja_JP.UTF-8 $ sudo apt-get -y install binutils $ strings /etc/default/locale $ sudo apt-get -y install manpages-ja manpages-ja-dev ## timeZone設定 $ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime $ sudo dpkg-r