サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
nopipi.hatenablog.com
はじめに Limaとは セットアップ手順 前提のセットアップ brewコマンドのインストール Limaのインストールとdockerインスタンスの作成 Limaのインストール dockerが入ったLinux仮想環境の起動 (参考)dockerが入ったLinux仮想環境の停止 (参考)dockerが入ったLinux仮想環境の2回目以降の起動 dockerコマンドのセットアップ dockerコマンドのインストール dockerコマンドからLimaの仮想環境上のdockerデーモンへの接続 docker起動スクリプト 補足 補足1 Limaの操作 Limaで稼働している仮想環境の一覧 固有のインスタンス名をつけた仮想環境の新規作成と起動 Limaの仮想環境の停止 既存の仮想環境の起動 起動中の仮想環境にインタラクティブなシェルで入る Limaの起動可能なテンプレート一覧参照 補足2 dockerの
概要 利用方法 前提条件 (オプション)AWS CLIのための準備 コードのダウンロード 設定情報の取得 CloudFormationによるデプロイ NLBのDNS取得 テスト 概要 NLB + EC2(Squid)構成のフォワードプロキシを作成するCloudFormationのテンプレートです。 ソースコードはこちらのGitHubにあります。 クライアントはNLBに対してTCPの3128ポートにプロキシ接続してアクセスして利用します。 プロキシはSquidを利用 https(TLS)接続のみ許可 ドメインでの許可リスト型統制を実施しており、許可リストはCloudFormationテンプレートのパラメータで指定可能 インスタンスはAutoScalingで制御し、デフォルトでは1インスタンスのAutoHealing構成(インスタンス数はテンプレートのパラメータで変更可能) Squidのログは
はじめに GitHub ActionsによるTerraformのCIサンプルです。 実際のコードはGitHubのリポジトリを参照ください。 このサンプルの特徴は以下の通りです。 OpenID Connect(OIDC)でのAWS認証によるActions実行により、アクセスキー&シークレットキー管理が不要 Terraformのデファクトとなっているディレクトリ構成で作成 その上でActionsでは、更新があったディレクトリを特定し、そのディレクトリのみTerraformを実行 CIに、IaCコードの静的解析を行うcheckovを組み込み、Pull Requestで自動実行(最近流行りの、DevSecOpsぽいものを実現) terrafrom/envs/xxxのように環境面でTerraform実行先が固定されている場合(実行面数が増加しない場合)は、こんな面倒なやり方をせずワークフローを分けて
AWS CLIを利用してS3のパブリックアクセス ブロックを設定しようとしたら、設定対象によってCLIのコマンドが異なるという面倒な仕様だったのでメモを書いておきます。またAccess Pointは、Access Pointの作成時しかパブリックアクセス ブロックの設定ができない点は留意が必要です。 パブリックアクセス ブロックのCLI設定 アカウントに対して設定: aws s3control put-public-access-blockで設定 バケットに対して設定: aws s3api put-public-access-blockで設定 Access Pointに対して設定 aws s3control create-access-pointでAccess Point作成時に設定(作成後の変更不可!!) アカウントに対してパブリックアクセス ブロックを設定するCLI手順 PROFILE
はじめに Checkovとは ローカルPCでの使い方 インストール (留意事項)レベルアップ 静的解析のやりかた 静的解析の実行方法 指摘事項のスキップ方法(Terraformのオブジェクト単位) 指摘事項のスキップ方法(ルール単位) GitHub ActionsへのCheckovの組み込み はじめに Terraformコードのセキュリティーチェックを行う必要があり、IaC用の静的コード解析ツールであるcheckovをGitHub ActionsのCIに組み込んでみた時のメモです。 最初にcheckovをローカルで実行する場合のやりかたを説明して、最後にActionsへの組み込み方法を説明します。 Checkovとは Checkovは、Infrastracture as code(IaC)コード用の静的コード解析ツールです。Checkovを利用することで、セキュリティやコンプライアンスの問
はじめに 手順 環境準備 プロファイル設定 S3バケット作成 EC2用のインスタンスロール作成 EC2用インスタンス作成 インスタンス上でのAWS CLI設定 S3署名付きURLでのオブジェクト取得(GET) AWS CLIでのオブジェクト取得確認 署名付きURLでのオブジェクト取得用のpythonスクリプト配置 署名付きURLでのオブジェクトアップロードのpythonスクリプト配置 参考 はじめに この記事は、S3の署名付きURLの学習のために署名付きURLを利用してS3のオブジェクトをPUT/GETしたときの手順をまとめたものです。 ポイントは以下のとおりです。 S3の署名付きURLは、AWS CLI、SDK、マネージメントコンソールで生成可能 ただしAWS CLIでは、オブジェクトのPUT(アップロード)用の署名付きURLは不可 boto3でS3の署名付きURLを生成する場合は、ge
Lambdaで特定のロググループ & ログストリームにログ出力するコードのサンプルです。 この例では、eventの内容をLogsに出力しています。 コードは以下の記事の内容をベースに一部最適化してます。 Python (Boto3) @ Lambda で CloudWatch Logs の特定のログストリームにログを出力する - Qiita import json import time import boto3 logGroupName = "security-alaert" logStreamName = "development" def lambda_handler(event, context): #Get Session client = boto3.client('logs') #Put Log Event put_logs(client, logGroupName, log
はじめに CloudWatchエージェントとは*1 CloudWatchエージェント設定手順概要 CloudWatchエージェントの初期設定手順 (事前準備) IAMロール&EC2インスタンスの作成 CloudWatchエージェントのインストール CloudWatch設定ファイル作成 CloudWatch設定ファイルのフェッチ CloudWatchエージェントの起動*5 補足 設定フェッチと再起動を1コマンドで実行する CloudWatchエージェントのログファイル Systems Manager Parameter Storeで設定を配布する場合 Parameter Storeへの設定ファイル格納 CloudWatchエージェントを稼働させるAmazon Linux2サーバでの操作 ユーザデータでCloudWatchエージェントを設定する はじめに Amazon Linux2にCloud
はじめに AWS Secrets Managerとは ここでは説明しないこと アーキテクチャ 設定手順(SecretsManagerからの情報取得) SecretsManager用のKMSの鍵作成 新しいシークレットの作成 VPC PrivateLinkの作成 Private Link用のセキュリティグループを作成する Secrets Manager用のVPC PrivateLinkの作成 EC2インスタンスロール インラインポリシー*3 信頼関係ポリシー 作成ロールのSecretsManager用KMS鍵のキーユーザへの登録 APサーバ上のAWS CLI設定 APサーバでのシークレット情報取得テスト リソースポリシーでシークレット情報取得を許可するVPCを制限する リソースポリシーの設定 リソースポリシーのアタッチ*4 動作テスト 設定手順(ローテーションの設定) RDBのDB管理者ユー
はじめに 設定方法 バックアップポリシーの有効/無効 クロスアカウントモニタリングの有効/無効 クロスアカウントバックアップ有効/無効 はじめに AWS Backupの権限分掌の設計を行うにあたって、それぞれの機能の設定をどのロールの人が実施できるのか明確化するために確認したものです。 確認結果としては、「バックアップポリシー」と「クロスアカウントモニタリング」はAWS Organizationsの機能、「クロスアカウントでバックアップ」はAWS Backupの機能でした。(マネコンだとAWS Backupの画面にOrganizationsの機能が統合されていて、利用者からすると便利ですが、権限設計する側からするとわかりずらくてつらい。) 設定方法 バックアップポリシーの有効/無効 バックアップポリシーは、Organizationの中でバックアップを一元管理するための機能です。 こちらの機
はじめに ツール 構成環境 作成するAWS Security Hub構成 ツールの実行環境と実行用IAMロール 作業前提 準備: IAMロールの作成 事前準備 監査アカウントのインスタンスIAMロール Security Hub管理用のIAMロール スクリプト実行環境作成 プロファイル準備 インスタンスの起動 スクリプトによるSecurityHubの有効化 Security Hub管理インスタンスへのログイン SecurityHubのメンバーアカウント一覧(CSV)作成 有効化対象リージョンの設定 Security Hubが利用可能なリージョン一覧の確認 有効化対象リージョン一覧作成 Security Hubの有効化 スクリプトによるSecurityHubの無効化 はじめに AWSが提供しているAWS Security Hubの一括設定ツールを試したのでそのメモです。 なんでこのツールを利用
RHEL7にdockerをインストールしようとして、二年前に確認した手順でセットアップしようとしたらうまくいかず、2時間ぐらい唸っていたら、いつの間にかRHUIがバージョンアップしてレポジトリ名称がごっそり変わっていたらしい。 access.redhat.com 変更例 以前のExtrasリポジトリ名称: rhui-REGION-rhel-server-extras 今のExtrasリポジトリ名称: rhel-7-server-rhui-extras-rpms もう無駄なところでハマるから、メジャーバージョンの中でこう言う変更するのやめてほしい。
こちらはAWS Containers Advent Calendar 2020の13日目の記事です。 本記事は個人の意見であり、所属する組織の見解とは関係ありません。 とてもこまか〜い話ですが、Amazon ECSのタスク定義設定ではCPUのリソース設定に関して以下の2つのパラメータがあります。この2つのパラメータがどんな挙動をするのか気になりましたのでドキュメントと実機での挙動確認から調べてみました。最後にOSレベルですが素潜りもしてみました。(時間があればcgroupのコードも確認したかったのですが時間がなく、残念) タスクサイズのCPU: タスクに使用される CPU量。 コンテナ定義レベルでのCPUユニット: コンテナ用に予約した cpu ユニットの数 長い記事になってしまったので調査結果の結論を先に行ってしまうと、以下の通りになりました。 コンテナのCPUユニットは、 各コンテナに
はじめに dnsmasqとは 作成する構成 RHEL8とRHEL7の違い RHEL8にdnsmasqを設定する 実行環境 設定手順 dnsmasqインストールと実行ユーザ設定 NetworkManagerの設定変更 再起動 動作確認 RHEL7にdnsmasqを設定する 実行環境 設定手順 dnsmasqインストールと実行ユーザ設定 dnsmasq設定ファイルの変更 dnsmasqのDNS参照先設定(/etc/resolv.dnsmasq) dnsmasqサービスの有効化 DHCPのDNSリゾルバー設定変更と反映 動作確認 dnsmasqのキャッシュ保持期間 はじめに AWS環境にRHEL8とRHEL7にdnsmasqを利用したDNSキャッシュを設定した時の手順メモです。ネットワーク設定にDHCPを利用している環境の場合、DHCPとの整合性を合わせる部分が鍵となります。 dnsmasqとは
RHELで、yumレポジトリに接続できない環境のRHELを、最新版でない特定バージョンのカーネルにあげたいという話があり検証した結果です。 1.検証概要 やること:隔離された環境のRHEL7.2(3.10.0-327.el7)をRHEL7.5相当のカーネル(3.10.0-862.14.4)にアップデートする 検証利用AMI:RHEL-7.2_HVM_GA-20151112-x86_64-1-Hourly2-GP2 2.手順 2.1 代替えインスタンでのrpmパッケージダウンロード (1)作業用インスタンスとして、RHEL7.2のインスタンスを作成する インターネット接続が可能なVPCのパブリックサブネット状に、コミュニティAMI(RHEL-7.2_HVM_GA-20151112-x86_64-1-Hourly2-GP2 )からインスタンスを作成する。 (2) yumdownloaderのイ
S3のバケットを削除する場合、まずバケットを空にする必要があります。ここではAWS CLIを利用しバケットを空にし、その後にバケットを削除する手順を記載します。 具体的には list-object-versionsでオブジェクトをリストアップし、delete-objectでオブジェクトを一つづつ削除します。なお記載する例は、バケットの中のオブジェクトが1000個未満の場合に利用できます。(list-object-versionsの1回の実行でリストされるオブジェクトの最大個数がデフォルトでは1000のため*1 ) ちなみにaws s3 rm s3://バケット名 --recursiveやaws s3 rb s3://バケット名 --forceで最初試しましたが、バージョニングが有効な場合これらのコマンドでは削除マークが付くだけですし、バージョニングされた古いオブジェクトは何もされず、オブジ
はじめに AWSでEBSのVolume ID確認 マネコンでの確認 CLIでの確認 LinuxOS上でのVolume ID確認によるEBSの特定 RHELの場合 Amazon Linuxの場合 (蛇足)どのようにVolume id情報を取得しているか RHEL(nvmeコマンド) Amazon Linux(ebsnvme-idコマンド) 参考情報 はじめに m5・c5・t3などのNitroタイプのインスタンスを利用している場合にOS上で認識しているボリュームがどのEBSボリュームかを、Volume IDベースで確認する手順です。 なおXenベースのインスタンス(m4以前、c5以前、t2以前など)は調べた限りでは、残念ながらVolume IDでのボリューム特定方法は見つかりませんでした。(Xenの準仮想化ドライバ blk_frontでデバイス情報を表示する実装がそもそもなさそう) AWSでE
事前設定 作業環境の準備 作業環境として、下記を準備します。 bashが利用可能な環境(LinuxやMacの環境) aws-cliのセットアップ AdministratorAccessポリシーが付与され実行可能な、aws-cliのProfileの設定 CLI実行用の事前準備 これ以降のAWS-CLIで共通で利用するパラメータを環境変数で設定しておきます。 export PROFILE=<設定したプロファイル名称を指定。デフォルトの場合はdefaultを設定> export REGION=ap-northeast-1 テンプレートのダウンロード curl -o TokyoVPC.yaml https://raw.githubusercontent.com/Noppy/ClientVPN/master/TokyoVPC.yaml TokyoVPC作成 #CloudFormation スタック作
はじめに この記事で説明すること 関連記事 Let's Encryptとは 手順 サーバ証明書の取得 (1)"Certbot"を動かす環境を準備する (2)"Certbot"のセットアップ (3)サーバ証明書の取得 apacheサーバへの証明書の組み込み (1)証明書のコピー (2)httpd.confの設定 (3)確認 追伸 はじめに この記事で説明すること この記事では、Let's Encryptから無料のサーバ証明書(ワイルドカード証明書)を取得し、(複数の)apacheサーバに証明書を組み込む手順を説明してます。 Amazon Linux2でLet's EncryptをググるとCertbotを改造するケースが多いですが、この手順では引数を工夫することで改造なしを実現してます。 Let's Encryptの証明書の有効期限は90日で、この記事の手順では更新毎に利用している全apach
はじめに AWS Storage GatewayのファイルゲートウェイをVPCエンドポイントを利用したVPC閉塞環境を、CLIで構築する手順です。この手順ではNFS接続、SMB(ゲスト接続)、SMB(ActiveDirectory認証)の構成を作成します。またキャッシュリフレッシュ、ソフトウェアップデート、およびリフレッシュ完了やS3アップロード完了のCloud Watch Event連携のセットアップ手順も整理しています。 はじめに 作成手順 (1)事前設定 (1)-(a) 作業環境の準備 (1)-(b) CLI実行用の事前準備 (2)VPCの作成(CloudFormation利用) (2)-(a)テンプレートのダウンロード (2)-(b)VPC作成 (3) VPCEndpoint設定 (3)-(a) 構成情報取得 (3)-(b) VPC: VPCEndpointの作成 (4) Stor
はじめに 検証構成 環境構成概要図 データ構成 マスターデータ コピー先ディレクトリ構成 検証コード 環境準備 (1)AWSリソース準備 (2)インスタンス初期設定 (3)テスト用のマスターファイルの作成とS3アップロード (4)CSV生成pythonの設定ファイル作成 (5)ターゲット用CSV生成 検証-1 AWS CLIとpythonスクラッチプログラムの比較 検証概要 検証前提 検証手順 検証結果 検証-2 インスタンスタイプと並列度の検証 検証概要 検証前提 検証手順 検証結果 検証考察 (1) S3のスロットリング (2) KMSのスロットリング (3) 多重度とインスタンスの最適化 検証-3 200万ファイルのランニング検証とS3スロットリング対策 検証概要 検証前提 検証 3-(a) S3スロットリング対策:プレフィクスでの対策 検証 3-(b) 再実行による対策 まとめ 全
CodeCommitに作成したgitレポジトリに接続するための認証に、AWS CLIを利用する方法です。gitの認証ヘルパーに"aws codecommit credential-helper"を利用するのがポイントです。 1.手順: IAMユーザ作成とAWS CLIプロファイル設定 1.1 CodeCommit用のIAMユーザを作成 1.2 ユーザのアクセスキーとシークレットキーを生成 1.3 AWS CLIにプロファイルを作成 2.手順: gitの認証ヘルパー設定 2.1 gitの初期設定(ユーザ設定&pushモード設定) 2.2 gitの認証ヘルパーにAWSコマンドを設定 3.手順: CodeCommitのレポジトリからcloneのテスト リファレンス 1.手順: IAMユーザ作成とAWS CLIプロファイル設定 1.1 CodeCommit用のIAMユーザを作成 グループ"Code
"billingProducts"の確認方法 課金コード(billingProduct)をどうやって取得するのかという話ですが、そのものズバリの記載が下記にあり、下記コマンドで取得できます。 有料 AMI - Amazon Elastic Compute Cloud curl http://169.254.169.254/latest/meta-data/product-codes RHEL8での確認 OSに課金が発生するRHEL8の場合、"billingProducts"に"bp-6fa54006" というのが見えます。 $ curl http://169.254.169.254/latest/dynamic/instance-identity/document/ { "accountId" : "270025184181", "availabilityZone" : "ap-north
VPCのCIDRを"10.1.0.0/16"とした時のCIDR例。 私は検証用途での利用でIPが枯渇するほどインスタンスを起動するわけではなので、IPアドレス範囲をキツキツには設計していない。 ポイント Privateサブネットは少し大きめの19bitで切る。 Publicサブネットは、10.1.0.0/19の範囲をさらに24bitで切って利用する AZ間は間違えないように離れた番号を利用するようにアドレスを割り当てる サブネットのCIDR割り当て例 #大区分小区分項目CIDRIPアドレス範囲1PublicAZ-1PublicSubnet110.1.0.0/2410.1.0.1-10.1.0.2542未使用10.1.1.0/24 〜 10.1.15.0/2410.1.1.1-10.1.15.2543AZ-2PublicSubnet210.1.16.0/2410.1.16.1-10.1.16
定義箇所とインスタンス内からの定義情報取得方法の違い UserDataはEC2インスタンスの機能で、CloudFormationヘルパースクリプトはCloudFormationの機能です。 UserDataはインスタンスのメタデータ*1から情報を取得するため、実質VPC設定やIAMロールを考慮する必要がありません。一方CloudFormationヘルパースクリプトは、CloudFormationのパブリックにあるエンドポイントから取得するためInternet GatewayやCloudFormationのVPC Endpointを用意してパブリックのエンドポイントにアクセスできるようにする必要があります。 機能 機能を提供しているサービス 定義 インスタンスからの取得方法 通信要件 UserData EC2 EC2インスタンス起動オプション インスタンスのメタデータから取得 不要 Cfnヘ
VSCodeでAWS CloudFormationをYAMLで作成する環境の設定手順です。 やること VSCodeのセットアップ YAMLの構文チェック用にエクステンション"YAML Language Support by Red Hat"をVSCodeに追加 CloudFormationの構文チェック用のカスタム設定をVSCode設定に追加 VSCodeのセットアップ MacへのVSCodeインストール(とgit連携)はこちらを参照 nopipi.hatenablog.com YAMLエクステンションの追加 VSCodeにredhatのYAMLエクステンションを追加します。ここではCUIとGUIの両方の手順を記載します。 CUIでインストールする場合 下記コマンドでYAMLエクステンションを追加します。 code --install-extension redhat.vscode-yam
IME設定(デフォルトibus-kkcを入力ソースに追加) IME切替ショートカットの変更(「半角/全角」キーに変更) 忘れないように、自分用のメモ IME設定(デフォルトibus-kkcを入力ソースに追加) Fedora22のデフォルトIMEは、ibus-kkcのようでデフォルトでインストールされている。しかし、入力ソースに含まれておらずインストール直後の状態では日本語入力ができない(私の環境だけ?)。なので、日本語入力できるように追加設定をする。 「アクティビティ」→「設定」を開き、「地域と言語」を選択 「入力ソース」で「+」ボタンを押す 出て来たウィンドウの言語リストから「日本語(かな漢字)」を選択し「追加」ボタンを押す 本のウィンドウの「入力ソース」に新しい入力ソースが追加されていることを確認 IME切替ショートカットの変更(「半角/全角」キーに変更) 個人的に「半角/全角」キーで
はじめに 検証環境のモバイルプッシュ通知の流れ Appleのプッシュ通知サービス Amazon SNSモバイルプッシュとは プッシュ通知の流れ 開発環境 クライアントアプリケーションの開発と実行 APNs設定 簡易クライアントアプリ作成 Xcodeでプロジェクトを作成しセッティングする Device Token取得コードの追加 アプリケーションの実行とデバイストークン確認 Amazon SNSへの登録とプッシュ通知の実行 Amazon SNSのアプリケーションプラットホーム作成 デバイストークン情報の登録 参考 はじめに Amazon SNSでiOS(iPhone)へのモバイルプッシュの検証を行うために準備した環境構築のメモです。 モバイルプッシュ関連のblog記事 Amazon SNSとiOSでモバイルプッシュを試してみる - のぴぴのメモ (2019/1)Appleのデバイスにプッシュ
はじめに ここで説明すること 全体の概要図 前提 手順 iOSアプリ開発用証明書の作成 (1)Xcode連携での証明書作成 (2)Apple Developerでの証明書確認 App ID の作成とNotificationsのSSLアクセス用証明書作成 (1)App ID作成 (2) SSL証明書発行用に証明書署名要求(CSR)を作成 (3)NotificationsのSSL証明書作成 デバイス登録 (1)対象デバイスのUUID確認 (2)デバイスの登録 開発用プロビショニングプロファイルの作成 APNs用個人情報交換ファイル(.p12) の作成 参考 はじめに ここで説明すること APNs(Apple Push Notification service)は、Appleのデバイス(iOSデバイス、tvOS、macOS)に対してプッシュ通知を送るためのプラットフォームサービスです。*1 ここ
次のページ
このページを最初にブックマークしてみませんか?
『nopipi.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く