投稿

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

静的Webサイトホスティング二重化してみる(その2)

イメージ
少し間が空いてしまいました。 前回 に引き続いて静的ホスティングサイトを二重化してみる編です。バックアップサイトをどうするか考えたときに、パッと出てきたのがそう、 GoogleCloud です。以前に GoogleCloudで静的サイトホスティング をやったときは結局は FireBaseでやっちゃいました が今回は冗長構成を取るという構成なのでFireBaseよりはGoogleCloud本体を使用した構成で考えています。下図の様な感じですね。ひとまずGoogleCloud側の作業に取り掛かります。ちなみにGoogleCloudは一部コマンドラインで設定とかあるんですが面倒なのですべてコマンドラインで操作しました。GUIでポチポチやってもいいんですが、どうしても一部コマンドラインが入るのでそれならということでコマンドラインでやりました。まぁほとんど参考サイトのコピペですけどね。 ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:GoocleCloudでLoadBaranser+GCS構成を作りDNSでフェイルオーバ その3:S3とGCSにGitHubActions使ってコンテンツ同期 その4:TerraformでIaC化 ◆手順概要 1.事前準備 1-1.GoogleCloudプロジェクト関連設定 1-2.静的IPアドレス取得 1-3.GCP用のSSL証明書発行 2.GoogleCloud作業 2-1.CloudStorageでバケット作成・公開設定 2-2.LoadBarancingの設定 3.Route53のフェイルオーバ設定 3-1.Aレコードの削除 3-2.ヘルスチェックの作成 3-3.フェイルオーバーレコードの作成 1.事前準備 1-1.GoogleCloudプロジェクト関連設定 $ gcloud components update $ gcloud config list $ gcloud config set project create {project_name} $ gcloud config set project {project_name} $ gcloud config configurations activate {project_name} $ gcloud config configurations list

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

 タイトルのまんまです。 以前、EXCELで似たようなこと をしていたのでGASではどうするのかなぁと思ってやってみました。まぁほとんど丸パクリです。とりあえず、また使うかもしれないので自分用にメモです。しかしGASでGoogleDriveのファイル一覧嘗め回そうとすると3分かかってしまう。数が多いと6分制限に引っかかるのでこれでは使えない。せいぜい100ファイルとか数が少ないところで使う分にはいいけどダイナミックな場合は何回かに分割してやらないと少し厳しいかもしれない。 ◆GAS //設定値取得 const SHEET_URL = SpreadsheetApp.getActiveSpreadsheet().getUrl(); const ss = SpreadsheetApp.openByUrl(SHEET_URL); const SETTING_SHEET = ss.getSheetByName('設定') const TARGET_FOLDER_ID = SETTING_SHEET.getRange('B2').getValue(); const SAVE_FOLDER_ID = SETTING_SHEET.getRange('B3').getValue(); const SAVE_FILE_NAME = SETTING_SHEET.getRange('B4').getValue(); const SAVE_SHEET_NAME = SETTING_SHEET.getRange('B5').getValue(); function writeSheet(values, labels, sheetUrl, sheetname, width) { /* スプレッドシートに書き出し */ try { if (values.length > 0) { // シートを追加する let spreadSheet = SpreadsheetApp.openByUrl(sheetUrl); let sheet = set_sheet(sheetUrl,sheetname); // 1行目だけヘッダ追加 let he

GASでSlackの投稿をスプレッドシートに出力するスクリプト

#2020/12/30追加 スレッドを取得してくるように改修、</pre>と</div>の箇所があるので全角になっているからそこは書き換えないといけない。 いい加減、Git使おうよオレ氏、、、。そして100行ほど膨れ上がりました。 過去分の Slack の投稿を一覧したいと思って、 Googleスプレッドシート に出力する GAS を仕方なく書いた。色々と癖が強かったのとAPIが古い奴のサンプルしかなかったので仕方なく自分でいろんなとこからコピペしたつぎはぎスクリプトです。 350行ほどです。後、手動でぶっこ抜くところあったので色々と元のシートにパラメータ埋め込んでます。へっぽこなので相変わらずセンスないコードです。 ◆GAS //固定設定値 const SHEET_URL = SpreadsheetApp.getActiveSpreadsheet().getUrl(); const ss = SpreadsheetApp.openByUrl(SHEET_URL); const SETTING_SHEET = ss.getSheetByName('設定') const ARCHIVE_URL = SETTING_SHEET.getRange('B2').getValue(); const OLDEST = SETTING_SHEET.getRange('B3').getValue(); const LATEST = SETTING_SHEET.getRange('B4').getValue(); const CHANNEL_SHEET = '対象チャンネル' const FILE = SETTING_SHEET.getRange('B5').getValue(); const OUTFILE = SETTING_SHEET.getRange('B6').getValue(); const OUTFOLDER = SETTING_SHEET.getRange('B7').getValue(); /* SlackAPI操作 */ //APIトークン const API_TOKEN = PropertiesServic

静的Webサイトホスティング二重化してみる(その1)

イメージ
 AWSの 静的Webサイトホスティングパターン はされつくしている感じがありますが、それ関連の記事です。CloudFrontってそこそこの頻度で障害を起こしているのでCloudFront障害時でもなんとかサイトのサービスを継続して提供できないかと思い色々と調べてみました。 こんな風 にとか こんな感じ で KeyCDN を使っているケースが多いみたいです。まぁそのパターンでやってみるという手もあるのですが、裏側がS3だとAWSが壊滅したときにアウトです。 Route53は100%の可用性 を誇っているので、まぁそこは利用するとしてそのほかで色々と構成を考えていきたいと思います。今回はその1なのでまずはAWSでCloudFront+S3を使って独自ドメインでサイトを立てるところからスタートします。 ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:GoocleCloudでLoadBaranser+GCS構成を作りDNSでフェイルオーバ その3:S3とGCSにGitHubActions使ってコンテンツ同期 その4:TerraformでIaC化 ◆手順 1.Route53でホストゾーン作成 2. Freenom で取得したドメインにRoute53情報登録 3.S3バケット作成 4.ACMで証明書作成 5.CloudFrontの設定 6.Route53のAレコード設定 1.Route53でホストゾーン作成 ・Route53で[ホストゾーン]を選びホストゾーンを作成をクリックする ・「ホストゾーンの作成」が表示されるので[ドメイン名]を入力し[ホストゾーンの作成]をクリックする。 ・[ホストゾーン]を選ぶとNSレコードができているのでそのNSレコードをメモする。 2.Freenomで取得したドメインにRoute53情報登録 *ドメインの取得は参考サイト見てやってください。 ・freenomにログインし[Services]→[MyDomains]をクリック ・取得したドメインの横にある[ManageDomain]をクリック ・[ManagementTools]をクリックし[Nameservers]をクリック ・[Use custom nameservers (enter below)]をクリックしNameserver1~4までにRoute53で発行した