- 1. Serverless Consoleを使ってVSCodeでのAWSサーバーレス開発を加速させる?
- 2. AWS CLIでAmazon CloudWatch Logsに保存されたログを見たい
- 3. AWS Client VPNとAzure P2S 機能比較 01~AWS Client VPN構築編~
- 4. 【初心者】AWS CI/CD for Amazon ECS ハンズオン をやってみる
- 5. 【初心者】CodeCommit, CodeDeploy, CodePipeline を使ってみる
- 6. aws ec2 の使い方 (aws-cli)
- 7. 【AWS】「AWS Well-Architected Framework」や「ベストプラクティス」を紐解く会(社内勉強会)を実施しました
- 8. ECS Execでトラブルが起きたら、amazon-ecs-exec-checkerを使ってみよう
- 9. lambdaのメモリとCPU数はどこが切れ目なのか調べてみた
- 10. SnykでOSSプロジェクトの脆弱性をチェックしてOSS貢献?!
- 11. 【Terraform】ECSの環境変数をSSMを利用して設定する
- 12. AWS SAP勉強中に学んだこと
- 13. [AWS]VPCエンドポイント:ゲートウェイ型とインタフェース型の違い
- 14. AWS認定DevOpsエンジニアプロフェッショナルを受験した時の話
- 15. AthenaでクエリできるようにGlacierのオブジェクトの復元、コピーを行う
- 16. 雰囲気で分散システム使ってるやついる!?
- 17. 【AWS CLI】s3 rmでdryrunを使って削除対象を確認
- 18. Windowsでgit-secretsを導入するとVisual Studioでコミットできなくなる問題の対応
- 19. Amazon Lookout for Equipmentで予兆保全
- 20. 新卒はアソシエイトを取りたい
Serverless Consoleを使ってVSCodeでのAWSサーバーレス開発を加速させる?
# Serverless Consoleとは
Serverless ConsoleというAWSでのサーバーレス開発にうってつけなVS Code拡張機能を見つけたのでご紹介。https://marketplace.visualstudio.com/items?itemName=devAdvice.serverlessconsole
# 準備
適当なServelessアプリを作ります。“`bash
$ serverless -v
Framework Core: 2.70.0
Plugin: 5.5.2
SDK: 4.3.0
Components: 3.18.1
$ serverless create –template aws-python3 –name MyServerlessApp –path MyServerlessApp
“`“`python:handler.py
import json
import boto3
import logging
from decimal import Decimallogger = logging.getLogger()
AWS CLIでAmazon CloudWatch Logsに保存されたログを見たい
# Whats’?
Amazon CloudWatch Logsに保存されたログを参照する方法について、まとめておきたいなと。
AWS CLI使用前提ですが。
# 環境
今回の環境は、こちらです。
“`shell
$ aws –version
aws-cli/2.7.12 Python/3.9.11 Linux/5.4.0-121-generic exe/x86_64.ubuntu.20 prompt/off
“`AWSのクレデンシャルは、環境変数で設定しているものとします。
“`shell
$ export AWS_ACCESS_KEY_ID=…..
$ export AWS_SECRET_ACCESS_KEY=…..
$ export AWS_DEFAULT_REGION=…..
“`# `aws logs`でAmazon CloudWatch Logsに保存されたログを参照する
参照するドキュメントは、このあたりでしょう。
https://awscli.amazonaws.com/v2/documentation/api/latest
AWS Client VPNとAzure P2S 機能比較 01~AWS Client VPN構築編~
# AWS Client VPNとAzure P2Sを比較してみた
AWS Client VPNでオンプレミスのPCをAWSのVPCに接続し、その際にインターネットに出るIPアドレスをAWSの固定IPアドレスにする、という構成です。
ネットワークの用語でいうと**フルトンネル**(フルトンネリング)という構成です。
NAT GatewayにElastic IPアドレスを設定し、AWS Client VPNでインターネットに出る際、IPアドレスをElastic IPアドレスに固定する(固定IPアドレスにする)というシナリオです。
まずはAWS Client VPNの構築です。## AWS Client VPNの構成図
普段AzureのP2Sを構築していて当然構成図も書いたことがあるのですが、AWSの構成図は初めて書きます。
お作法も分からないのでなってなければご指摘ください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643392/0e493807-629b-0c90-3c66-7
【初心者】AWS CI/CD for Amazon ECS ハンズオン をやってみる
# 1. はじめに
– devops関連の復習をしている。前の記事「[【初心者】CodeCommit, CodeDeploy, CodePipeline を使ってみる](https://qiita.com/mksamba/items/63c87ca7e910eef1e843)」で、初めてcode系サービスのハンズオンを行ったが、もう少し詳しいものをやってみたいと思い、CodeBuildなどが内容に含まれている別のものを実施する。# 2. やったこと
– AWS Japanから公開されている「[AWS CI/CD for Amazon ECS ハンズオン](https://pages.awscloud.com/rs/112-TZM-766/images/AWS_CICD_ECS_Handson.pdf)」を実施する。
– 2020/4に作成されており少し古いため、そのまま実行できない箇所もある様子だが、まあ大丈夫かなと思いチャレンジする。
– ハンズオンに含まれる内容は以下の通り。
– ハンズオン1: ECS環境の構築
– 今回のハンズオンの動作環境となるVP
【初心者】CodeCommit, CodeDeploy, CodePipeline を使ってみる
# 1. 目的
– devops関係の復習をしている。code系のサービスの知識が乏しいため、基礎的なハンズオンから始めて勉強する。# 2. やったこと
– AWS公式チュートリアル[「チュートリアル: シンプルなパイプラインを作成する (CodeCommit リポジトリ)」](https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/tutorials-simple-codecommit.html) を実施する。
– Developers.IOの記事[「CodeCommitからEC2にデプロイするシンプルなパイプラインを作ってみた」](https://dev.classmethod.jp/articles/pipeline-to-deploy-from-codecommit-to-ec2/)に、上記公式チュートリアルの詳細な解説があり、それも見ながら実施する。
– チュートリアル内容は以下の通り。
– CodeCommitにリポジトリを作成し、デプロイしたいアプリケーション(※httpdを起動してind
aws ec2 の使い方 (aws-cli)
インスタンスがひとつの場合の InstanceId の調べ方
“`bash:go_list.sh
aws ec2 describe-instances > tmp01.json
jq .Reservations[0].Instances[0].InstanceId tmp01.json
“`インスタンスのスタート
“`bash:go_start.sh
aws ec2 start-instances –instance-ids i-0f619596fcebda123
“`インスタンスのストップ
“`bash:go_stop.sh
aws ec2 stop-instances –instance-ids i-0f619596fcebda123
“`## 実行中のインスタンスのパブリックIPアドレスを調べる方法 ##
“`bash:get_state.sh
jq .Reservations[0].Instances[0].InstanceId $1
jq .Reservations[0].Instances[0].State $1
jq .Reserva
【AWS】「AWS Well-Architected Framework」や「ベストプラクティス」を紐解く会(社内勉強会)を実施しました
# はじめに
最近、めちゃんこ暑くて、絶賛とろけてます。
換気のために窓を開けると、熱風が注ぎ込んできますね!どーも、のぶこふです。
ついったでも少し呟いたのですが、社内向けに「[W-A](https://aws.amazon.com/jp/architecture/well-architected)」や、[AWS をはじめる 10 のことシリーズ「AWS でアーキテクチャ設計を検討する上で知っておくべき 10 のこと (+1)」](https://pages.awscloud.com/JAPAN-event-OE-At-least-10-Architecting-2020-reg-event-LP.html?aws_introduction_page)を紐解く会を実施しました。
社内向けに「AWS Well-Architected Framework(6)」と「ベストプラクティス(11)」を紐解く会を行う予定。
資料はまだ無い。— のぶこふ (@nobkovskii) June 10, 2022
## モチベーション
クラスメソッドさんの研修に参加させていただいて、W-Aの大切さを改めて実感したので、これは社内にも還
ECS Execでトラブルが起きたら、amazon-ecs-exec-checkerを使ってみよう
ECS Execは、ECSで稼働しているコンテナに対しコマンドを実行できる仕組みです。
ローカル環境だと出ないエラーが出てしまって、原因がわからない場合や、
VPC内のリソース以外からはRDSへの接続が許可されていない場合に活躍します。
仰々しい名前が付いていますが、独立したサービスではなく、SSMでコンテナに接続する感じです。
AWS CLIが入っていれば、ぜひ試してみてください。導入方法は下記のドキュメントを御覧ください。
https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/ecs-exec.htmlさて、ECS Execするための設定なのですが、
簡単そうに見えて、ネットワークなどの設定によっては、一発で繋がらない事もあります。
AWS Execでは色々と隠蔽されているのもあり、トラブルの原因を探るのはなかなか難しい。
(よくあるのは、ssmmessagesへの権限付与が足りないとか..VPC Endpointがないとか..)そんなときに役立つのが、 `amazon-ecs-exec-checke
lambdaのメモリとCPU数はどこが切れ目なのか調べてみた
すでにほかの記事でも触れられていますが、lambdaはメモリを増やすとCPUが増えるようです。
https://qiita.com/hamadu/items/12303d9f9cb800db14d3
https://aws.amazon.com/jp/lambda/faqs/128MBでもすでに2つ割り当てられていたり最大でも6つだったりどこが区切れなのか調べてみました。
ソースコードは以下に置いてあります。
https://github.com/misogihagi/lambda-cpuinfo
## 結果
128MBごとに増やした結果です。ざっくりいうと3GB,5GB,7GB,9GBでスレッドが一つ増えるみたいです。
![visualization.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230043/ad4c5b74-d42a-df4d-bd09-a1e0559eb58a.png)
“`json:vega-light
{
“data”: {
“values”: [
SnykでOSSプロジェクトの脆弱性をチェックしてOSS貢献?!
# Snykとは?
> Snyk helps software-driven businesses develop fast and stay secure. Continuously find and fix vulnerabilities for npm, Maven, NuGet, RubyGems, PyPI and more.
翻訳
> Snyk は、ソフトウェア駆動型ビジネスの迅速な開発と安全性の維持を支援します。npm、Maven、NuGet、RubyGems、PyPIなどの脆弱性を継続的に発見し、修正します。
# 使ってみた。???
初めて使ってみましたが、 **超簡単** です。
ログイン後の画面???
![app.snyk.io_org_moritalous_add(1280×720).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/25c2e6b9-65f1-46bd-0708-75869e2542da.png)
`GitHub`を選択します。???
【Terraform】ECSの環境変数をSSMを利用して設定する
# 初めに
現在作成中のポートフォリオは、`Terraform`を利用して`AWS`にデプロイをしています。
`ECS`のコンテナに対して、`enviroment`から環境変数を渡していましたが変数の追加などがあった際、タスク定義を書き換える必要がありめんどくさいです。
`SSM`を通して環境変数を渡すことでタスク定義を書き換えずに更新できます。
## 環境
– terraform v1.0.2
– provider AWS v3.38.0# 環境変数を SSM に登録する
`task definition`の`secretsのvalueFrom`に`SSMのarn`を追加する必要があります。
まずは`ssm_parameter`を作成します。
変数自体は`terraform.tfvars`に書きます。
“`terraform:ssm.tf
resource “aws_ssm_parameter” “secret” {
name = “ENV_FILE”
type = “SecureString”
value = var.env_file
}
“`
AWS SAP勉強中に学んだこと
# はじめに
今はAWSソリューションアーキテクトプロフェッショナル試験(以下、SAP)の勉強しています。
勉強中に学んだことを記事にしていこうと思います。# セキュリティグループとネットワークACL
セキュリティグループは、EC2、ELB、RDSなどの**インスタンス**に適用するファイアウォール機能です。
ネットワークACLは、**サブネット**に適用するファイアウォール機能です。| | セキュリティグループ | ネットワークACL |
|:-:|:-:|:-:|
| 適用先 | **インスタンス** | **サブネット** |
| 制御項目 | プロトコル(TCPやUDPなど)、ポート範囲、CIDR、**セキュリティグループ** | プロトコル、ポート範囲、CIDR |
| デフォルトの状態 | 全てのアクセス
[AWS]VPCエンドポイント:ゲートウェイ型とインタフェース型の違い
VPCエンドポイントは以下の3種類があります。
a) ゲートウェイ型
b) インターフェイス型
c) Gateway Load Balancer型c)は特徴的で他と動作も異なるので選択に迷う場面は無いと思いますが
a)とb)は似たような機能で違いがわかりにくいので整理してみます。物理的にはゲートウェイ型はルーターとして動作するのに対し、インタフェース型はENIがアタッチされる形になります。この違いを頭の片隅においていると動作の違いもわかりやすくなると思います。
## 料金
| タイプ | 内容 |
|:–|:–|
|ゲートウェイ型| 無料 |
|インタフェース型 | データの転送とサービス利用時間に応じて課金|ここは違いがはっきりしていますね。ゲートウェイ型が無料なのはとても嬉しいです。
## 対応サービス
| タイプ | 内容 |
|:–|:–|
|ゲートウェイ型| AmazonS3、DynamoDBのみサポート|
|インタフェース型 | 主要なサービスをほとんどサポート |利用できるサービスは圧倒的にインタフェース型が多くなります。
対応サー
AWS認定DevOpsエンジニアプロフェッショナルを受験した時の話
## この記事の概要
2022/07/03
**AWS認定DevOpsエンジニア – プロフェッショナル**
(AWS Certified DevOps Engineer – Professional (DOP-C01))
を受験したので、その時の記録復習用ノートとして、また後で見返して今後の資格試験受験時の参考用にまとめます。
## 試験の概要
![aws_devops_professional.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/2bd20a37-a797-da8e-80bc-77e913231d60.png)
**プロフェッショナルレベル**の試験で、**CI/CD**など短い周期でリリースを繰り返す**アジャイルな開発のインフラ環境の構築や運用**などに関する知識が問われます。
この試験では「AWSインフラストラクチャとアプリケーションの**テストとデプロイを自動化**する能力が認定されます。」とのこと。
AWS公式より引用:[引用元](https://aws.
AthenaでクエリできるようにGlacierのオブジェクトの復元、コピーを行う
# AthenaでのGlacierオブジェクトの制限
Athenaでは `Amazon S3 Glacier Flexible Retrieval`と`Amazon S3 Glacier Deep Archive`ストレージクラスのオブジェクトに関してはクエリされません。
また、[マニュアル](https://docs.aws.amazon.com/ja_jp/athena/latest/ug/other-notable-limitations.html)にあるように、`Amazon S3 Glacier Flexible Retrieval`と`Amazon S3 Glacier Deep Archive`ストレージクラスのオブジェクトを復元したとしてもデータの参照は行われないので、参照を行うためにはコピーを行い別オブジェクトを作成する必要があります。
これらの処理を実行するPythonスクリプトを作成してみました。# オブジェクトの復元を行うスクリプト
第1引数にバケット名、第2引数にキー名を指定して実行します。指定したオブジェクトの復元をおこなったら処理が完了します。
雰囲気で分散システム使ってるやついる!?
**???:雰囲気で分散システム使ってるやついる!?**
**???:いねぇよな!!!!!****むっそ:んなわけねぇよ、いるんだよ!!ここによぉ!!**
(終)# はじめに
なんか分散システムっぽいのは使えてるけど、いまいち詳しいことは知らないってひとが多いと思います。私もです。別に分散システムの仕組みを知らなくても問題なかったりするものですが、いざシステム障害などが起きると **これそもそもの仕組み知らんと無力じゃね?** ってなったりします。(無情にもやばいバグが時々起きたりします)
今回は分散システムにわか勢による分散システムを知るのに良さそうなリンクをまとめたり感想を書いていこうかと思います。
# 分散システムを考え始めたきっかけ
## DynamoDB嘘松事件### 事件前の実装
現在開発しているプロダクトで下記のような処理がありました。
(先人の過去の遺物が残っていてあまり良くないアーキテクチャになってます)> フロントエンドのUIでhogeアイテムの変更イベントが発生
⇒ A REST APIをたたく(hogeアイテムのステータスを更新する
【AWS CLI】s3 rmでdryrunを使って削除対象を確認
# S3でファイルを一括で削除したいが必要なファイルは絶対に消したくない!
awscliのs3のrmコマンドで `–recursive` オプションを使ってファイルを一括削除したいが、includeやexcludeの指定を失敗して削除しては行けないファイルを削除してしまうことを防ぎたいと思いました。“`shell
aws s3 rm –recursive s3://example-backet/aiueo/12345/ –include “*foo*” –exclude “*bar*”
“`例えば上記コマンドを実行したいと思っても本当に削除対象が自分が削除したいものなのかは実行してみないとわかりません。
実行してからファイルの復活はできませんし、削除前にコピーしておいて…とかはよっぽど出ない限りやりたくありません。# –dryrunオプションを使う
そういうときにdryrunオプションを使うと、実行はしないが、実行したかのようなcli上の確認が取れます>Checks whether you have the required permissions f
Windowsでgit-secretsを導入するとVisual Studioでコミットできなくなる問題の対応
# 問題点
Windows環境でgit-secretsを導入すると、Git Bash上では問題なく動作しますが、Visual Studio上でコミットすると、`/usr/bin/env: ‘bash’: No such file or directory` というエラーが表示され、コミットできなくなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708575/7ee20767-cf3f-9049-8c1b-5dc48fa5b27e.png)# 原因
git-secretsで利用しているスクリプトのシバンに`#!/usr/bin/env bash`が指定されているのが原因でした。
# 対策
git-secretsで利用しているスクリプトのシバンを`#!/usr/bin/env bash`から`#!/bin/sh`に変更します。具体的には以下のファイルの先頭行を変更しました。
– %USERPROFILE%\\.git-secrets
– (ローカルリポジトリのルート
Amazon Lookout for Equipmentで予兆保全
## はじめに
Amazon Lookout for Equipmentに関してまとめた記事になります。
2022年7月時点ではドキュメントが少ないので、実際に検証した内容に関して記載します。## 製造業における課題
製造業における課題は以下の通り、様々なものが存在します。
1. 機械が完全に壊れると修理費用が高い
1. 機械が使えなくなった際のダウンタイム
2. サプライチェーンの分断
2. メンテナンス作業の属人化
2. システムのブラックボックス化上記以外にもその他、沢山存在しますが、最近では特に1と2がクリティカルな課題とお聞きします。
機械が故障すると、ダウンタイムが発生し、必要とする方々へ必要とする分の供給ができなくなるなど、顧客満足度に影響する課題になりえます。
また、機械が完全に壊れてからの修理費費用と壊れる前のメンテナンス費用では雲泥の差があるとされ、修理期間にも影響を及ぼすそうです。こういった課題を解決としてのAI活用としては、予知保全/予兆保全があげられます。
> 予知保全(Predictive Maintenance)は、機械の故障の兆候をとらえて
新卒はアソシエイトを取りたい
## 自分のスペック
とある会社に新卒で入社し、データ基盤エンジニアの開発や運用などやってます。(今は2年目)
受験時は、実務経験は数ヶ月程度でサーバレス系のサービスとデータ系を知ってる感じでした。
テストはec2などが多いので結局、一部は初心者とさほど変わりません。## 何でAWS認定ソリューションアーキテクト アソシエイトを取ろうと思ったか?
業務でawsを使うことが多いのと、新卒で取れたらかっこいいなと思ったので挑戦しました。
他にも知らないサービスを知ってた方が何かと便利で良いかなぐらいで勉強しました。## 勉強期間
基本は以下の感じで、業務後や休日カフェで勉強したりしてました。
期間:3週間
平日:1-2時間
土日:5-7時間
トータル:45時間## 利用教材
AWS認定資格試験テキスト AWS認定ソリューションアーキテクト – アソシエイト 改訂第2版
→人によってawsの各サービス知識が0の方にはおすすめ、ある程度知ってる人はblackbeltやclassmethodさんの記事で十分かも
https://www.amazon.co.jp/AWS%E8%AA